Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGL纹理映射到已投影的形状?_Opengl - Fatal编程技术网

OpenGL纹理映射到已投影的形状?

OpenGL纹理映射到已投影的形状?,opengl,Opengl,OpenGL新手 我有一些非常简单的非OpenGL代码,用于围绕单个轴旋转矩形,并将结果投影到屏幕坐标。我现在尝试使用OpenGL将位图映射到生成的形状。设置旋转动画时,位图的透视图会严重扭曲。这是意料之中的事吗?有什么我能做的吗 我知道我可以用OpenGL来做整个事情,而且效果很好,但是对于我目前的项目,如果我能绕过这个透视问题,上面的方法会更适合我。。。我在想,在我将旋转的矩形投影到二维空间后,OpenGL可能没有足够的信息来正确映射具有正确透视图的位图 任何意见都将不胜感激 谢谢, 丹尼尔

OpenGL新手

我有一些非常简单的非OpenGL代码,用于围绕单个轴旋转矩形,并将结果投影到屏幕坐标。我现在尝试使用OpenGL将位图映射到生成的形状。设置旋转动画时,位图的透视图会严重扭曲。这是意料之中的事吗?有什么我能做的吗

我知道我可以用OpenGL来做整个事情,而且效果很好,但是对于我目前的项目,如果我能绕过这个透视问题,上面的方法会更适合我。。。我在想,在我将旋转的矩形投影到二维空间后,OpenGL可能没有足够的信息来正确映射具有正确透视图的位图

任何意见都将不胜感激

谢谢, 丹尼尔

澄清:
我使用正交投影,自己做3D计算和2D投影。然后,我只使用OpenGL渲染带有纹理的结果形状。

如果您自己投影坐标并在2D屏幕坐标中进行纹理映射,您将丢失所有投影信息,纹理将严重扭曲

您可以通过使用透视纹理贴图来解决此问题。有很多不同的方法可以做到这一点。可以通过编写真实的透视纹理贴图器,也可以通过伪造并使用普通纹理贴图器

解释这是如何工作的超出了单个问题的范围。我假设您首先阅读了关于透视纹理贴图的wiki页面,然后尝试细分方法:


然后回来询问细节问题。

如果您自己投影坐标并在2D屏幕坐标中进行纹理映射,您将丢失所有投影信息,纹理将严重扭曲

您可以通过使用透视纹理贴图来解决此问题。有很多不同的方法可以做到这一点。可以通过编写真实的透视纹理贴图器,也可以通过伪造并使用普通纹理贴图器

解释这是如何工作的超出了单个问题的范围。我假设您首先阅读了关于透视纹理贴图的wiki页面,然后尝试细分方法:


然后回来询问详细问题。

我发现下面的页面详细解释了细分方法:


它工作得很好!感谢Nils为我指出了正确的方向。

我找到了下面一页,详细解释了细分方法:


它工作得很好!感谢Nils为我指出了正确的方向。

使用glRotatef旋转矩形。同时检查纹理坐标,它们与顶点坐标无关。我想你正在纹理坐标中使用顶点坐标。如果没有任何关于它对你的印象,很难说。预计不会变形。请使用glRotatef旋转矩形。同时检查纹理坐标,它们与顶点坐标无关。我想你正在纹理坐标中使用顶点坐标。如果没有任何关于它对你的印象,很难说。预计它不会被扭曲。非常感谢,我们会调查这件事然后回来。非常感谢,我们会调查这件事然后回来。