我正在尝试渲染屏幕。到目前为止,我已经将光线与场景中的对象相交了,如果有交叉点,我会为该交叉点设置随机的颜色。
接下来我要做的是根据像素的值设置彩色像素。我看了10多个教程,阅读了一些有关为像素着色的网站。但是,我正在读取的文件没有对象的颜色。相反,它具有以下内容:
此外,我知道所发射的光的强度与距离的平方成正比(随着距离的增大,物体上的光会越来越少)。
如果我具有对象的颜色,则可以使用以下算法:
Color3 trace(..)
{
...
Color3 ambient = object.color * 0.3;
Color3 phong = phongModel(..) or object.color;
Color3 reflection = trace(..);
return ambient + phong + reflection;
}
如How to compute reflected color?
中所述我没有物体的颜色,只有反射率值。如何计算物体的颜色?
答案 0 :(得分:0)
但是,我正在读取的文件没有对象的颜色。 相反,它具有以下内容:
...
- 对象具有环境,漫反射,镜面反射,镜面反射率(单位为rgb)和phong指数(值)。
如果所有这些都具有RGB,则 是对象的颜色。
将入射光与物体在给定角度下的反射方式相乘,结果就是可以感知物体的颜色。