【发布时间】:2015-06-16 16:31:35
【问题描述】:
我在细分后计算法线时遇到问题。
目前我有代码可以对高度图进行采样并从中计算法线:
float HEIGHT = 2048.0f;
float WIDTH =2048.0f;
float SCALE =displace_ratio;
vec2 uv = tex_coord_FS_in.xy;
vec2 du = vec2(1/WIDTH, 0);
vec2 dv= vec2(0, 1/HEIGHT);
float dhdu = SCALE/(2/WIDTH) * (texture(height_tex, uv+du).r - texture(height_tex, uv-du).r);
float dhdv = SCALE/(2/HEIGHT) * (texture(height_tex, uv+dv).r - texture(height_tex, uv-dv).r);
N = normalize(N+T*dhdu+B*dhdv);
但是低级镶嵌看起来不太好
我怎样才能摆脱这个?
【问题讨论】:
-
你能把正常的计算移到片段阶段吗?我需要更多关于你实际在做什么的信息,以便提供更全面的答案。
-
我想我可以,上面的代码正在计算镶嵌评估着色器中顶点的法线。
标签: opengl glsl normals tesselation