0.简介
光线追踪中,计算的是光线,我们这次设计一个光线类。
1.光线类
光线中,包含了几种属性,方向,出发点,颜色,强度,还有一个获取光线打到的点的函数。
class Ray
{
public:
//光线起点
vec3 position;
//光线方向
vec3 direction;
//光线颜色
vec3 color;
//光的强度
float intensity;
//获取光线打到的位置
vec3 getEndPoint(float distance);
Ray();
Ray(vec3 _direction, vec3 _position, float _intensity, vec3 _color) :direction(_direction), position(_position), intensity(_intensity), color(_color) {}
~Ray();
};
vec3 Ray::getEndPoint(float distance)
{
return position + distance * direction;
}
这样,我们的光线类就完成了。