gpt4 book ai didi

opengl - 如何一次加载模型并在 OpenGL 中重用它

转载 作者:行者123 更新时间:2023-12-01 13:01:29 25 4
gpt4 key购买 nike

我加载了一个波前模型文件(.OBJ 和 .MTL)并将顶点/索引存储在 VBO 中用于渲染。现在我只在加载模型时填充 VBO 一次。我的问题是...重用此顶点数据以重绘模型的多个实例的最佳方法是什么?目前,我只是为模型的每个实例存储一个变换矩阵(旋转、缩放和平移),并使用相关变换矩阵为每个实例调用 draw() 函数。

这是一种完全不正确的方法吗?有哪些更好/替代方法可以达到相同的结果?

显然,这仅适用于对象相对于自身静止的非常基本的模型(即无论模型的世界方向如何,模型的任何部分都不会移动)。这就是让我相信确实有更好的方法来做到这一点的原因。

希望我的胡言乱语是有道理的...

最佳答案

如果你只是想改变模型的位置,改变变换矩阵是一个合理的方法。在以后的 OpenGL 版本中,您可以使用实例化绘图在一次调用中使用不同的变换多次渲染模型,这样可能会获得一些额外的性能,但是每次只改变变换矩阵的循环是一个很好的开始点。

如果您实际上是在为模型制作动画,那就不同了,因为顶点坐标本身必须改变。对于基于关键帧的动画,您可以将每个关键帧加载到单独的缓冲区中,并让顶点着色器使用您作为统一提供的时间值进行插值。但这种事情与仅仅改变整个模型无关。

关于opengl - 如何一次加载模型并在 OpenGL 中重用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5704273/

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