制作 3D 网格的最佳方法? [关闭]
Posted
技术标签:
【中文标题】制作 3D 网格的最佳方法? [关闭]【英文标题】:Best ways of making a 3D grid? [closed] 【发布时间】:2011-11-23 16:58:59 【问题描述】:创建 3D 网格的最佳方法是什么?
在 java 中,我正在制作一个发生在有点 Minecraft 风格的世界中的游戏。我需要一个 3D 网格来绘制每个块,但我仍然对如何将它们全部放入有点困惑。
我正在使用 LWJGL,希望它能让我的生活变得更轻松。但如果有更好的使用方法,请告诉我。
一个可下载的基于Minecraft世界的教程的链接会很棒!我找不到任何关于该主题的教程(或可下载的)。
基本世界理念:
制作 1024 x 1024 x 128 的 3D 网格 具有灵活土地顶部/底部的不同块类型(因此土地更“真实”) 基于块的土地系统,将被分组为 16 x 16 x 128 块【问题讨论】:
【参考方案1】:如果您想在此网格上更改大小或实现复杂的逻辑,最好基于 List 创建自己的数据结构。但在大多数情况下(仅保存数据)普通数组是合适的。
【讨论】:
那么它最终会是一个 3 深的数组吗? (对于 x、y 和 z 值?)【参考方案2】:这真的取决于你想做什么......你想在哪里应用它?就个人而言,我更喜欢数组。它通常是最便宜和最直接的解决方案。
复杂的数据结构通常只有在您预见到未来的变化(即数据结构会发生变化等)时才需要
您能否提供有关该应用程序的更多详细信息?
【讨论】:
【参考方案3】:我会在您的空间中创建一个表示坐标 (x,y,z) 的“块”对象,并且您的块可以包含“textureTop”和“textureBottom”等成员以及您需要绘制的任何其他成员。
然后,由于您的空间看起来是固定大小的,只需将它们制作一个 3D 数组即可。
Block [] [] [] space = new Block [1024][1024][128];
然后,如果您想创建块,只需定义另一个对象块,它基本上是一个 16x16x128 的块数组。
【讨论】:
以上是关于制作 3D 网格的最佳方法? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 RGL 中的 tmesh3d 在 RGL 中使用 shade3d 或 wire3d 制作 3D 网格