学习光线追踪(5)---材质

0.简介

材质,这里我不会讲的和教科书上的一样,所以也不要把我接下来要说的东西当作正确的,或者是标准的,因为这是我自己设计的,可能会有缺陷。

1.材质参数

材质一般会影响物体表面的反光,颜色,折射等。那么就将反光系数(正反光参数,漫反射参数),折射率,折射衰减,漫反射衰减,透光度,自发光参数,作为材质参数,自身颜色。

class Material
{
public:
	//折射率,控制折射角度的
	float refract;
	//透光度,对于透明物体,影响折射光线作用效果的
	float transparent;
	//正反射亮度,影响镜面反射的作用效果
	float specular;
	//漫反射亮度,影响漫反射作用效果的
	float diffuse;
	//光源强度
	float light;
	//颜色
	vec3 color;
	Material();
	Material(float _light, float _specular, float _diffuse, float _refract, float _transparent) :
		light(_light), specular(_specular), transparent(_transparent), diffuse(_diffuse), refract(_refract) {}
	~Material();
};

有了材质,将材质加入到物体中去,要修改一下多边形基类的代码,在其中加入材质。

class Polygon
{
public:
	//位置
	vec3 position;
	//世界坐标矩阵
	mat3 transforms;
	//材质
	Material m;
	Polygon();
	~Polygon();
};

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值