Opengl es 仅旋转部分顶点?
我正在将OpenGL渲染器添加到我的2D游戏引擎中,我想知道是否有一种方法可以在单个绘制调用中将mvp矩阵仅应用于部分顶点 我计划按纹理分组绘制调用,因此我将传递一个包含许多顶点和texcoords的缓冲区,现在我想对不同的四边形应用不同的旋转角度。有没有一种方法可以在着色器中实现它,或者我应该放弃着色器中的mvp矩阵,使用cpu执行相同的操作 编辑:每个顶点添加3个浮动属性(旋转和旋转中心.xy)怎么样 什么性能更好 (1) 做CPU轮换 (2) 每个顶点提供3个以上的浮动 (3) 分开抽签 还有其他选择吗?这里有一种可能性:Opengl es 仅旋转部分顶点?,opengl-es,rotation,opengl-es-2.0,Opengl Es,Rotation,Opengl Es 2.0,我正在将OpenGL渲染器添加到我的2D游戏引擎中,我想知道是否有一种方法可以在单个绘制调用中将mvp矩阵仅应用于部分顶点 我计划按纹理分组绘制调用,因此我将传递一个包含许多顶点和texcoords的缓冲区,现在我想对不同的四边形应用不同的旋转角度。有没有一种方法可以在着色器中实现它,或者我应该放弃着色器中的mvp矩阵,使用cpu执行相同的操作 编辑:每个顶点添加3个浮动属性(旋转和旋转中心.xy)怎么样 什么性能更好 (1) 做CPU轮换 (2) 每个顶点提供3个以上的浮动 (3) 分开抽签
从性能/存储的角度来看,不确定上述内容是否适用。我认为,尽管出于许多不同的性能原因对绘制调用进行分组是一件好事,但更改代码以满足基本要求并不是一个好主意,因为轮换不是一个好主意 绘图批处理是一件好事,但是,如果您被迫保留一个附加属性(因为您不能肯定地使用制服来执行此操作,您将无法获得单个实体的信息),那么它就不值得了 附加属性意味着更多的内存带宽使用,这通常是当今系统性能的主要致命因素 另一方面,图纸配料很重要,但并不总是关键的,它取决于许多因素,例如:
我希望这在某种程度上有所帮助。仅此而已,请使用两个不同的对象 对于对象部分的旋转,没有其他解决方法 例如:
一款带有坦克的游戏,你想把炮塔和剩下的身体分开旋转。就像在这里的例子中,这两个对象被视为单独的对象。我希望使用cpu,因为仅仅更改特定顶点可能超出了着色器的功能。不可能回答“什么是更好的性能”。这将取决于cpu的速度、gpu的速度、顶点的数量、绘制调用的数量等。只需选择一个适合您的,如果您发现它太慢,那么尝试其他一些方法,并配置最好的。我将配置代码,但我更感兴趣的是,是否有其他更好的方法来实现这一目标?