我试图实现一个简单的Phong着色器,支持非物理基础的材料和纹理。即使材料对每个光的成分都有一个纹理,我仍然希望各自的材料系数有一定的效果。我怀疑如何处理这两件事。我应该混合、乘或加它们吗?现在我已经把它们相乘了:
ambient = material.ambient_color * light.ambient * texture_ambient;
diffuse = material.diffuse_color * light.diffuse * diffuse_strength * texture_diffuse;
specular = material.specular_color * light.specular * specular_strength * texture_specular;它看起来有点暗,这是正确的方式组合材料系数和纹理吗?
发布于 2018-02-13 18:16:20
当应用不同类型的衰减时,你只是乘以一个小于1的数。这类似于你物质中的每个原子都有一定的吸收光的可能性。
需要注意的是,这些计算应该在线性空间中执行(在伽马校正和颜色空间中)。
如果不在线性空间中进行计算,最终可能会出现过度明亮、过暗、过饱和或饱和的颜色。
https://computergraphics.stackexchange.com/questions/6180
复制相似问题