【问题标题】:Orthographic projection in OpenGLOpenGL中的正交投影
【发布时间】:2023-04-01 06:25:01
【问题描述】:

我正在尝试使用 gl.glOrthof 设置正交投影...

但是,我将哪些值传递给函数并不重要,宽度和高度似乎获得恒定的浮点值,并且它们与我的 glOrthof 属性不匹配。

我的surfaceChanged代码:

gl.glViewport(0, 0, w, h);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(0.0f, 10.0f, 10.0f, 0.0f, 0.0f, 1.0f);

我的抽奖代码:

gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glBindTexture(GL10.GL_TEXTURE_2D, texture);  
((GL11Ext) gl).glDrawTexfOES(positionX, positionY, 0.0f, 1.0f, 1.0f);

有什么想法吗?如果您需要知道什么,请告诉我。

【问题讨论】:

  • 我需要多看看你的代码,尤其是完整的绘图功能。
  • @datenwolf:添加了我的完整绘制代码。

标签: opengl-es


【解决方案1】:

glDrawTexfOES 的宽高参数都是以像素为单位的,所以不是

((GL11Ext) gl).glDrawTexfOES(positionX, positionY, 0.0f, 1.0f, 1.0f);

你应该使用

((GL11Ext) gl).glDrawTexfOES(positionX, positionY, 0.0f, texture_width, texture_height);

投影和模型视图矩阵仅影响 x,y 位置的定位,而不影响纹理缩放。使用裁剪矩形选择要使用的纹理部分。

【讨论】:

  • 谢谢 试试这个。我会告诉你的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 2011-04-06
相关资源
最近更新 更多