gpt4 book ai didi

c++ - 游戏如何围绕物体移动(一般来说)

转载 作者:太空狗 更新时间:2023-10-29 20:18:50 26 4
gpt4 key购买 nike

我敢肯定,这个问题不仅只有 1 个答案,而且游戏引擎是否真的会更改内存中的 vector ,或使用 gltransformations?因为一直推和弹出矩阵似乎效率低下,但如果你不断修改verticies,你就无法使用显示列表。所以我想知道它通常是如何完成的。谢谢

最佳答案

取决于您的目标/对象。

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

角色(蒙皮/绑定(bind))使用多个矩阵进行转换,这通常由顶点着色器处理。如果你愿意,你可以在 CPU 上完成,但除非你有非常先进的装配/蒙皮引擎,否则没有必要这样做。

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

关于c++ - 游戏如何围绕物体移动(一般来说),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3002022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com