0

我正在创建一个 2048x2048 的渲染纹理,并在其上渲染一个大小为 2048x2048 的精灵,覆盖整个渲染纹理。glOrtho(..) 的参数是如何计算的?glOrtho((float)-1.0f , (float)1.0f , (float)-1.0f , (float)1.0f, -1, 1) 适用于大小为 1024x768 和 512x512 的精灵。渲染目标的最大分辨率有什么限制?

4

1 回答 1

0

如果使用精灵,您的意思是四边形或类似的东西:

调用glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0)既不能用于 2048x2048 的精灵,也不能用于 1024x768 的精灵,也不能用于 512x512 的精灵。或者更好的是它会起作用,但我相信它不会给出预期的结果。sprite 的坐标和 to 的参数glOrtho在同一个空间中(不需要是像素)。

要么使用大小为 2x2 的精灵,要么使用大小glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0)为 1x1glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0)的精灵,或者使用大小为 2048x2048 的精灵,glOrtho(0.0, 2048.0, 0.0, 2048.0, -1.0, 1.0)或者任何你喜欢的精灵坐标与参数匹配glOrtho,这并不重要。

于 2011-10-13T14:20:32.657 回答