-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