在AFrame.io中创建大量多维数据集的简洁方法

时间:2016-09-09 09:00:35

标签: javascript graphics 3d voxel aframe

我有一个系统,它读取SVG图像,然后根据该数据生成体素世界。基本上,SVG图像告诉程序,在哪里放置哪个块。

到目前为止,它适用于Minecraft,但我想改变它,以便以浏览器友好的方式创建体素世界(即,以便人们可以在不安装Minecraft和所需基础设施的情况下查看模型)。

那里会有很多立方体。一个显而易见的方法是生成包含大量<a-box position="-1 0.5 -3" rotation="0 0 0" color="#4CC3D9"></a-box>语句的HTML页面,但我认为它不优雅,并且可能导致大型模型出现问题。

在外部(非JavaScript)应用程序中创建基于AFrame.io的体素世界有哪些选择?我寻求一种解决方案,它将以无头模式工作(即我将SVG文件发送到服务器并在那里将其转换为AFrame.io体素世界)。

2 个答案:

答案 0 :(得分:1)

使用https://ngokevin.github.io/aframe-magicavoxel-projects/查看https://github.com/ngokevin/aframe-magicavoxel-projects等示例,它可能足以满足您的需求。

据我所知,您合并到一个对象并获得性能但没有灵活性,或者您没有合并但期望性能受到影响。如果没有测量并粗略估计场景的大小和目标平台,我会说...尝试不先合并或导出。

答案 1 :(得分:1)

您可以使用模板组件:https://github.com/ngokevin/aframe-template-component/。这样您就可以在HTML中使用for循环。

或实体生成器组件:https://github.com/ngokevin/aframe-entity-generator-component。将它传递给mixin,它将使用该mixin创建X个实体。然后,您可以与布局或随机化器等其他组件结合使用来自定义