OpenGL网格纹理水平翻转

时间:2013-05-20 12:55:55

标签: opengl 3d fbo

我正在研究3D渲染器,当我加载各种测试模型时,我注意到一切看起来都不错,除了纹理都在x轴上翻转这一事实。

这实际上是预览的,因为我将我的GBuffer blit到屏幕上,因此它不能成为FBO渲染问题。

在我加载每个.obj文件后,我准备了它的VBO。这是设置纹理坐标的片段:

for(Face f : master.faces) {
    for(int i = pointsPerFace - 1; i >= 0; i--) {
        uv[0] = f.texCoords[i].x;
        uv[1] = f.texCoords[i].y;
        texcoords.append(uv);
    }
}

1 - coordinate替换坐标这样的事情确实不起作用,因为这会翻转整个位图,而不仅仅是当前的三角形。

什么可能导致所有内容呈现x翻转?

Everything looks fine, except it's flipped sideways

1 个答案:

答案 0 :(得分:3)

  

除了纹理都在x轴上翻转之外。

我认为实际发生的是,模型的几何体在Z轴上翻转。与OpenGL一起使用的常用转换设置使用右手坐标系。如果对象设计为左手保存,则交换一个轴,这当然也会影响纹理应用。

  

用1坐标替换坐标这样的事情并没有真正起作用

是的,因为......

  

因为那会翻转整个位图,而不仅仅是当前的三角形。

......如果这样做的话,这正是你所需要的。但首先我要检查模型几何是否正确加载,即右手。如果没有,我只需翻转几何体的Z轴。