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();
};