在游戏中存储 3d 模型的最佳方法是什么?我存储在向量中:向量三角形(每个三角形包含纹理数,顶点数和法线数),向量点;矢量法线;矢量 texCords;
3
我不知道在这种情况下什么是“最好的方法”,因为这将取决于情况,在你的问题中,它在某种程度上可以解释。
如果您正在谈论如何快速渲染静态对象,则使用Display Lists可以走很长一段路。它们可以用于memoize所有 OpenGL 调用一次,然后在游戏中使用时调用这些指令来渲染对象。如果您构建每个显示列表,则用于计算顶点位置,法线等的所有开销仅执行一次。缺点是您通常不会看到太多的性能变化。
编辑:SurvivalMachine下面提到显示列表已弃用。特别是,它们在 OpenGL 版本 3.0 中弃用,并从版本 3.1 中的标准中完全删除。经过一些研究,似乎Vertex Buffer Object(VBO)扩展是首选的替代方案,尽管我发现许多来源声称性能不如显示列表好。
0
我选择从.ms3d 格式导入模型,虽然我以后可能会重构,但我认为它为我的 3D 模型的数据结构提供了一个不错的基础。
spec(C 头格式)是一个非常简单的阅读;我用 Java 编写我的游戏,所以我简单地移植每个数据结构:顶点,三角形,组,材料和可选的骨骼动画元素。
但实际上,模型只是顶点(或三角形)的三元组,每个顶点都有一个材质,对吗?首先创建这些基本结构,编写一个绘制函数,该函数将模型作为参数并绘制,然后根据需要添加任何其他功能。迭代设计,如果你愿意的话。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(58条)