-1
我正在實現一個帶有簡單陰影(ambient + diffuse)的基本高度圖。着色在片段着色器上實現,如下所示。像素着色不那麼光滑
#version 330
in vec3 fragNormal;
out vec4 outColor;
uniform vec3 lightDirection;
uniform vec3 lightColor;
uniform vec3 objectColor;
void main()
{
float ambientStrength = 0.1f;
vec3 ambientColor = ambientStrength * lightColor;
vec3 norm = normalize(fragNormal);
float diff = max(dot(norm, -normalize(lightDirection)), 0.0f);
vec3 diffuseColor = diff * lightColor;
outColor = vec4((ambientColor + diffuseColor) * objectColor, 1);
}
我所做的是根據正常的fragNormal計算簡單的漫反射分量。該變量直接從頂點着色器傳遞。
這裏是什麼,我現在有一個截圖:
這是從與像素着色高度圖預期的結果? 我有點惱火,表面不光滑。
但是,如果這是預期的,任何技術,改善我目前有什麼?
要計算法線,我用下面的算法: Finite difference method (Stack Overflow)
奇怪的是,您發佈的最後一個鏈接似乎與我正在實施的算法相同。 – lhahn