小编sig*_*ill的帖子

OpenGL中奇怪的方形照明人工制品

我有一个生成高度图的程序,然后将其显示为OpenGL的网格.当我尝试添加光照时,最终会形成覆盖网格的奇怪方形.它们在某些方面比其他方面更明显,但总是在那里.

我使用的是四边形网格,但切换到三角形网格后没有任何变化.我使用至少三种不同的方法来计算顶点法线,所有方法都具有相同的效果.我正在使用着色器手动进行照明,但使用内置的OpenGL照明系统时没有任何变化.

我最新的常规生成代码(faces是一个顶点索引数组,顶点数组):

int i;
for (i = 0; i < NINDEX; i += 3) {
    vec v[3];
    v[0] = verts[faces[i + 0]];
    v[1] = verts[faces[i + 1]];
    v[2] = verts[faces[i + 2]];

    vec v1 = vec_sub(v[1], v[0]);
    vec v2 = vec_sub(v[2], v[0]);

    vec n = vec_norm(vec_cross(v2, v1));

    norms[faces[i + 0]] = vec_add(norms[faces[i + 0]], n);
    norms[faces[i + 1]] = vec_add(norms[faces[i + 1]], n);
    norms[faces[i + 2]] = vec_add(norms[faces[i + 2]], n);
}

for (i = 0; i < NVERTS; …
Run Code Online (Sandbox Code Playgroud)

c opengl lighting

7
推荐指数
1
解决办法
866
查看次数

标签 统计

c ×1

lighting ×1

opengl ×1