影子与Phong的照明模型

时间:2014-02-06 18:23:13

标签: opengl glsl shadow fragment-shader phong

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

我目前正遵守以下限制:

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

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

0 个答案:

没有答案