我正在寻找关于如何在 Phong 照明模型中表示阴影的描述。您可以在这里查看 Phong 着色:http
://en.wikipedia.org/wiki/Phong_shading
我认为很多人可能在不知不觉中熟悉它。
那么问题来了:我已经在我的图形程序中实现了阴影映射,现在我想知道如何应用阴影,我的片段着色器中有以下内容:
vec3 rgb_to_grayscale_luminosity(vec3 color) {
float value = color.r * 0.21 + color.g * 0.71 + color.b * 0.07;
return vec3(value);
}
void main(void) {
...
//apply shadow and write color
float shadow_value = textureProj(shadow_tex, fs_in.shadow_coord);
if (shadow_value < 0.9999) {
//in shadow
color = vec4(rgb_to_grayscale_luminosity(ambient + diffuse), 1.0);
}
else {
//no shadow
color = vec4(ambient + diffuse + specular, 1.0);
}
}
我目前遵守以下限制:
- 阴影是转换为灰度的原始颜色。
- 阴影没有镜面反射分量。
我首先想知道这是否是一个正确的模型,其次是一个具体的问题:
是否应该在阴影中考虑漫反射照明?