Android OpenGL矩阵-无法计算正确的矩阵

Android OpenGL矩阵-无法计算正确的矩阵,android,opengl-es,opengl-es-2.0,projection,render-to-texture,Android,Opengl Es,Opengl Es 2.0,Projection,Render To Texture,编辑:总结我想做的事情,更简洁: 将大小为wi,hi的纹理渲染到输出纹理wo,ho,以便保持输入纹理的纵横比,并使其适合输出纹理,如果纵横比不同,则最终使用黑色边框。为此,我想使用透视投影,因为我可能会旋转或将其他变换应用于输入纹理 然后我希望这个输出纹理显示在屏幕上,大小ws,hs,其中hs可能大于ws。同样,保持纵横比并使用黑色边框进行拟合。在这里,正交投影应该足够了,因为只需要渲染到屏幕,不需要进一步处理 我想做它没有黑客,为了使我的生活更容易,以防我以后要旋转,缩放原始纹理。我可以通过反

编辑:总结我想做的事情,更简洁:

将大小为
wi,hi
的纹理渲染到输出纹理
wo,ho
,以便保持输入纹理的纵横比,并使其适合输出纹理,如果纵横比不同,则最终使用黑色边框。为此,我想使用透视投影,因为我可能会旋转或将其他变换应用于输入纹理

然后我希望这个输出纹理显示在屏幕上,大小
ws,hs
,其中
hs
可能大于
ws
。同样,保持纵横比并使用黑色边框进行拟合。在这里,正交投影应该足够了,因为只需要渲染到屏幕,不需要进一步处理


我想做它没有黑客,为了使我的生活更容易,以防我以后要旋转,缩放原始纹理。我可以通过反复试验来确定如何修改参数,以获得我现在想要的,但我更愿意按照预期的方式使用每个矩阵。

可以发布一些您获得的图像吗?我的2个元素;以非均匀方式缩放对象以适应目标纹理/显示比率是非常罕见的,处理比率的常用方法是只使用平截头体的左/右/下/上参数(实际上大多数3d游戏将使用perspectiveM,它只需要一个参数来处理比率:纵横比)@VB_overflow:同意。我阅读了一些关于这些矩阵的文献,但不知道如何将其应用于这种特定情况(因此我根据矩阵的角色使用矩阵)。编辑后,我很难理解这个问题。通常的过程是这样的:你把一些东西(一个3d模型,一个精灵…)渲染成一个纹理
Ti
,大小
wi,hi
,现在你想把
Ti
渲染成另一个纹理
to
(或屏幕)的维度
wo,ho
,保持纵横向和居中;为此,您需要使用经典的二维正交矩阵,在
的内部渲染一个用
Ti
映射的四边形。然后问题是找到四边形的位置
x,y
和大小
w,h
。这是你想做的吗?@VB\u overflow:在你的描述中,这些步骤被改变了。在我的问题中,我考虑第一纹理(图像)作为I(输入),渲染纹理作为输出(O)和屏幕大小WS,HS。不要把它看成是游戏,而是一般的处理。通过在矩形wo、ho内缩放具有原始尺寸wi、hi的矩形进行拟合。然后在矩形ws,hs内,通过缩放而不修改纵横比再次拟合wo,ho。我想用OpenGL矩阵来实现这一点。实际上我有一个解决方案,但既然我已经提供了一笔赏金,我会让它打开,也许会改进我的解决方案。