加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 游戏如何在物体周围移动(一般情况下)

发布时间:2020-12-16 09:28:16 所属栏目:百科 来源:网络整理
导读:我敢肯定,这不仅仅是一个答案,但是,游戏引擎实际上是在改变内存中的向量,还是使用gltransformations?因为一直推送和弹出矩阵似乎效率低下,但是如果你不断修改顶点,你就无法使用显示列表.所以我想知道它是如何完成的.谢谢 解决方法 取决于你的目标/对象. 通
我敢肯定,这不仅仅是一个答案,但是,游戏引擎实际上是在改变内存中的向量,还是使用gltransformations?因为一直推送和弹出矩阵似乎效率低下,但是如果你不断修改顶点,你就无法使用显示列表.所以我想知道它是如何完成的.谢谢

解决方法

取决于你的目标/对象.

通过设置矩阵来移动永不改变的对象(可以使用glRotatef / glTranslatef等来实现).它肯定比逐个顶点转换对象顶点更快.对象存储在DisplayList,VertexArray或VBO中.您可以每次使用glVertex *命令发送整个对象,但如果对象永远不会更改,则不需要这样做.

使用多个矩阵变换角色(蒙皮/装配),这通常由顶点着色器处理.如果需要,您可以在CPU上执行此操作,但除非您拥有非常先进的绑定/剥皮引擎,否则无需执行此操作.

无法在Videocard上完全执行的计算在CPU上执行.通常它是粒子系统,布料和程序几何,有时是阴影(使用模板阴影计算阴影体积).像这样的对象通常至少部分地存储在存储器中,并且在CPU上执行变换.这严格依赖于硬件.根据视频卡和OpenGL版本的强大功能,可以在视频卡上执行部分或全部任务(不涉及CPU),但并非总是如此.例如,通常不可能在GPU上为程序几何构建阴影体积(即,拓扑在每个帧以及顶点位置上变化).但是,有一些技巧可以避免它,并且情况可能会随着未来的版本而改变.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读