【问题标题】:Creating faces from only the vertices?仅从顶点创建面?
【发布时间】:2013-06-05 12:25:19
【问题描述】:

我正在尝试通过将正确位置的立方体合并到一个几何体中,然后创建一个网格并绘制它来创建一个我的世界类型(仅限立方体)地形。目前,我正在从 Node.JS 服务器发送一个数组,其中包含构成每个“块”的块类型。然后代码知道给每个块的材料索引。例如,10x10x10 块的数据将是:

[1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,
 2,1,1,1,2,2,1,1,1,2,
 etc ...             ]

这可以正常工作,但是将这些块中的每一个合并到一个几何体中非常耗时,因此不适用于我的用例。

我现在的想法是在服务器端合并立方体,然后只将顶点与块类型数组一起发送到客户端(与上面相同)。所以我的问题是,是否可以为这些顶点创建面,使几何图形显示为具有不同材料的多个立方体?

我觉得这样会更好,因为不仅客户端的压力会更小,而且服务器只需要合并每个块一次,而目前每个客户端都需要合并它。

任何帮助将不胜感激!谢谢。 :)

编辑:
reading this 之后有了一个想法。如果在初始化时我创建了一个包含块的整个块的几何图形,因此为 10x10x10,那么当发送数据数组(如上)时,我可以隐藏不应该存在的块的面。通过隐藏,我的意思是给脸一个看不见的材料。我相信这会更快,甚至不需要我发送顶点。

在这种情况下,谁能解释我如何确定要隐藏哪些面孔?谢谢。

【问题讨论】:

    标签: javascript merge three.js


    【解决方案1】:

    您可以直接在服务器上创建“本机”Three.js JSON 模型,然后使用 JSONLoader 加载它。应该很快。它的文档有点简短,但在这里:https://github.com/mrdoob/three.js/wiki/JSON-Model-format-3.1,您可以研究示例文件夹中的示例文件。这很容易理解。

    在 JSON 中,可以有多种材质,并定义每个面的材质索引。

    【讨论】:

    • 谢谢你。本来打算发整个 JSON 模型的,但是发现尺寸太大了。 10x10x10 的块约为 1.3MB,就好像我只发送顶点一样,它约为 100KB。这就是为什么我想知道是否可以仅使用顶点(以及数组中的块数据)将面添加到模型中。有任何想法吗? :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 2014-01-17
    • 2015-11-02
    相关资源
    最近更新 更多