OpenGL修改下列代码 Ray GenerateRay(float u, float v) { //请改掉此函数,使得生成正确的光线 return Ray(_origin, _lower_left_corner + 0.5 * _horizontal + 0.5 * _vetical - _origin); }
时间: 2024-04-23 21:24:28 浏览: 98
Ray GenerateRay(float u, float v) {
Vec3 direction = _lower_left_corner + u * _horizontal + v * _vertical - _origin;
return Ray(_origin, direction);
}
修改后的函数中,我们首先计算出了方向向量 direction,它由向量 _lower_left_corner、_horizontal、_vertical 和参数 u、v 计算而来。然后我们使用 _origin 和 direction 创建一个新的光线 Ray 对象,并将其返回。
阅读全文