- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个简单的 Android OpenGL-ES 应用程序,并且由于所有模型都非常简单(<10 个顶点!)我已经实现了一个全局“世界”类来跟踪所有顶点,并执行一对 GL 命令在帧渲染上。
每个模型对象都将其顶点添加到全局缓冲区,这些顶点在一次操作中“发送”到 GL:
gl.glVertexBuffer(...);
gl.glDrawElements(...);
我的问题(也许是一个明显的答案,但我想确定)是,这是否意味着我必须手动完成所有自己的旋转?
我的基础对象只定义了一堆添加到缓存中的顶点,例如三角形、正方形、五角星等。然后我的世界对象获取大量顶点,并将它们转储到 GL。如果我想旋转所有这些,我是否正确地认为我必须执行我自己的顶点坐标操作(三角函数!)?
我想必须创建一些实用函数来旋转模型中的所有顶点并不是世界末日,但如果没有必要,我宁愿不这样做。
最佳答案
是的,不幸的是,这是为多个模型执行单个绘制调用所付出的代价。如果您使用标准的 Scale-Rotate-Translate 顺序,计算真的非常简单。对于每个顶点:
Xrel = X-Xcenter
和 Yrel = Y-Ycenter
Xscaled = scalex*Xrel
和 Yscaled = scalex*Yrel
。Xrot = Xscaled*cos(d)-Yscaled*sin(d)
and Ynew = Xscaled*sin(d)+Yscaled *cos(d)
.Xnew = Xrot + translatex
和 Ynew = Yrot+translatey
。简单!干杯,Aert。
关于android - 使用全局顶点缓存并仍然利用 glRotate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3719933/
我想我明白为什么调用 glRotate(#, 0, 0, 0) 会导致被零除。旋转向量 a 被归一化:a' = a/|a| =一个/0 这是 glRotate 可能导致被零除的唯一情况吗?是的,我知道
介绍:我正在用 opengl 开发一个小塔防游戏,目前我只是对一个小问题感到绝望...... 我希望塔上的射弹能够以头部面向单位进行瞄准。所以我的问题更多的是一个数学问题,但它属于 opengl :)
我有一个简单的 Android OpenGL-ES 应用程序,并且由于所有模型都非常简单(<10 个顶点!)我已经实现了一个全局“世界”类来跟踪所有顶点,并执行一对 GL 命令在帧渲染上。 每个模型对
我想获得鼠标效果。 省略鼠标坐标采集等,问题的要点是: 使用固定的 opengl 函数,这可以做到 glRotate(angley,0,1,0); glRotate(anglex,1,0,0); 使用
我正在尝试绕轴旋转立方体,我正在做的是: glTranslatef(0.0f, 0.0f, -60.0f); glRotatef(angle, 0.0f, 1.0f, 0.0f); 我
我有一个八边形,我需要将其旋转和平移到 10,000 个不同的位置/角度。角度和坐标动态变化。 如果我在即时模式下使用 glRotate 和 glTranslate,由于客户端/服务器之间的所有来回,
我正在使用 glRotate 和 glTranslate 函数来围绕自身旋转模型。但是当我运行我的程序时,我的模型正在围绕它旁边的一个点旋转。这是我的模型定义: private static fina
我需要一个函数来将类似 glTranslate() 的翻译应用于一个点。有人知道像 glTranslate() 和 glRotate() 这样的函数可以修改和检索要相乘的矩阵吗? 最佳答案 有成千上万
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 3 年前。 Improve this ques
我一直在研究在 OpenGL 中实现滚动、俯仰和偏航式旋转的问题,但在线提供的相关资料有限。问题的关键是在对象旋转时找到更新的局部轴。例如,围绕 X 旋转会导致局部 Y 轴和 Z 轴发生变化。随后的旋
我正在绘制一个矩形 block : GLfloat cubeVertexV[] = { // FRONT -0.5f, -1.0f, 0.5f, 0.5f, -1.0f,
假设我使用 glRotate 根据一些任意用户输入来转换当前 View (即,如果按下左键则 rtri+=2.5f) glRotatef(rtri,0.0f,1.0f,0.0f); 然后我在旋转后的位
我正在编写一个 GUI,用于使用 Python 显示 6 轴运动传感器的输出。窗口应该有一个实时显示旋转的 OpenGL Widget。通常我会为我的 openGLWidget 编写一个单独的类,但由
我正在寻找矩阵的解释(或图像)以及在对其进行平移、旋转和缩放时矩阵如何变化...(一个单元格带有 sin(angle),另一个单元格的 x 坐标为翻译) 最佳答案 现在,忽略平移,这是一个比旋转和缩放
在 MacOSX 上,“man glRotate”会显示 glRotate 联机帮助页。 在 ubuntu 上,安装了 manpages-dev 和 manpages-posix-dev,“man g
我已阅读此处的文档:http://www.opengl.org/sdk/docs/man2/xhtml/glRotate.xml 它指定角度以度为单位。它说 X、Y、Z 是向量。如果我说 glRota
我有一个 C++/OpenGL 程序,它以不同的旋转角度创建许多圆柱体,因此它们看起来都是相连的。我添加了一个导出方法来为 Maya 编写具有相同绘制方法的 Python 脚本,这样我就可以加载脚本。
在 OpenGL ES 1.x 中,可以先执行 glTranslate,然后执行 glRotate,以修改旋转中心的位置(即 围绕给定点旋转 )。据我了解,在 OpenGL ES 2.0 中,矩阵计算
我是一名优秀的程序员,十分优秀!