OpenGL网格纹理水平翻转

OpenGL网格纹理水平翻转,opengl,3d,fbo,Opengl,3d,Fbo,我正在处理一个3D渲染器,当我加载各种测试模型时,我注意到一切看起来都正常,除了纹理都在x轴上翻转 这实际上是在我将我的GBuffer快速放到屏幕上时预览的,所以这不可能是FBO渲染问题 加载每个.obj文件后,我准备它的VBO。下面是设置纹理坐标的代码段: for(Face f : master.faces) { for(int i = pointsPerFace - 1; i >= 0; i--) { uv[0] = f.texCoords[i].x;

我正在处理一个3D渲染器,当我加载各种测试模型时,我注意到一切看起来都正常,除了纹理都在x轴上翻转

这实际上是在我将我的GBuffer快速放到屏幕上时预览的,所以这不可能是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翻转

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

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

像用1坐标替换一个坐标这样的事情实际上不起作用

是的,会的,因为

因为这将翻转整个位图,而不仅仅是当前三角形

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

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

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

像用1坐标替换一个坐标这样的事情实际上不起作用

是的,会的,因为

因为这将翻转整个位图,而不仅仅是当前三角形


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

这很有意义。。。我加载的资产来自一个D3D游戏。但是,加载几何体时,只需简单地
*=-1
-ing几何体就会产生不完整的结果,就像只显示背面一样。没关系,我还必须反转面顶点的渲染顺序。它现在开始工作了,这是有道理的。。。我加载的资产来自一个D3D游戏。但是,加载几何体时,只需简单地
*=-1
-ing几何体就会产生不完整的结果,就像只显示背面一样。没关系,我还必须反转面顶点的渲染顺序。它正在工作。