0

我正在寻找关于如何在 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);
    }
}

我目前遵守以下限制:

  • 阴影是转换为灰度的原始颜色。
  • 阴影没有镜面反射分量。

我首先想知道这是否是一个正确的模型,其次是一个具体的问题:
是否应该在阴影中考虑漫反射照明?

4

0 回答 0