将opengl相机放置在特定的纹理上

将opengl相机放置在特定的纹理上,opengl,textures,Opengl,Textures,我试图平移纹理的特定部分(应用于由2D顶点定义的四边形)。我正在使用固定的渲染管道 开始位置和结束位置在纹理中作为像素位置给出: (例如开始:30,12;结束:340220) 有没有办法将相机定位在指定的纹理上?还是我从一个错误的角度来处理这个问题?您需要自己计算位置,OpenGL不能真正为您这样做。您需要将位置从纹理的图像空间(像素)变换为纹理坐标(texel),然后变换为世界空间。有点吹毛求疵,您不希望将摄影机放置在纹理上,而是放置在渲染纹理的位置上,因为纹理位于与摄影机不同的坐标系中 作为

我试图平移纹理的特定部分(应用于由2D顶点定义的四边形)。我正在使用固定的渲染管道

开始位置和结束位置在纹理中作为像素位置给出: (例如开始:30,12;结束:340220)
有没有办法将相机定位在指定的纹理上?还是我从一个错误的角度来处理这个问题?

您需要自己计算位置,OpenGL不能真正为您这样做。您需要将位置从纹理的图像空间(像素)变换为纹理坐标(texel),然后变换为世界空间。有点吹毛求疵,您不希望将摄影机放置在纹理上,而是放置在渲染纹理的位置上,因为纹理位于与摄影机不同的坐标系中


作为一个想法,您也可以在GL_纹理模式下移动纹理,而不是在GL_MODELVIEW模式下移动相机。

如果创建一个有效点,我想要的是像素在四边形上渲染的位置。我必须这样做:
hu=quadWidth/textureWidthInPx
vu=quadWidth/textureHeightInPx
worldCoordX=pixelValX*hu
worldCoordY=pixelValY*vu
。我认为这是匈牙利符号在跟踪坐标系方面实际有用的少数情况之一<代码>wcsWidthFromPx=wcsQuadWidth/pxTextureWidth;wcsPixelPosX=wcsWidthFromPx*pxPixelPosX