由于我已经开始学习渲染到纹理,我逐渐明白glCopyTexSubImage2D()
将复制屏幕的指定部分。我尝试了几个简单的事情,以防止/解决这个问题,但找不到一个优雅的解决方案。
那么,我如何修复glCopyTexSubImage2D
捕获的纹理的上下方向?
你将使用纹理图像做什么?实际上,尝试将它们颠倒过来通常比在其他地方移动代码需要更多的工作。
如果您尝试使用图像而不导出图像,只需在您使用结果的任何地方翻转纹理坐标都是最有效的方法。
如果您尝试导出它,那么您要么在渲染后自己翻转它们。
在相关的说明中,如果您正在制作2D游戏,为什么要打开背面剔除?
如果我的理解是正确的,那取决于你的起源。该函数似乎假设您的原点位于左下角,而大多数2D材料假定左上角的原点,这就是为什么它看起来是颠倒的。
我想您可以将原点更改为左下角,执行捕获,然后将原点更改回左上角并在执行交换之前再次渲染。但这是一个可怕的解决方案,因为你有效地渲染了两次,但如果你不打算每帧都这样做可能会很好。
使用glReadPixels()复制到缓冲区,翻转图像,然后使用glTexImage2D()将其写回。