Aframe 3d.io查看器中的Archilogic材质预设选项

Aframe 3d.io查看器中的Archilogic材质预设选项,aframe,archilogic,3d.io,Aframe,Archilogic,3d.io,我想创建一个web应用程序,让用户在archilogic 3D场景中的地板和墙壁的不同预设之间进行选择 不过,就像在这个编辑器中一样,我需要更简单的“材质”菜单(用户可以从不同的预设纹理中进行选择,这些纹理是管理员先前上传的,带有相应的漫反射贴图、等级库贴图、法线贴图和alpha贴图) 我浏览了archilogic的所有repo,但为了简化它,找不到3D编辑器的源代码 有人知道它是否可用吗?如果没有,我应该朝哪个方向开发这样一个应用程序?这是一个仍在路线图上的功能,尚未完成,但有一些方法可以实

我想创建一个web应用程序,让用户在archilogic 3D场景中的地板和墙壁的不同预设之间进行选择

不过,就像在这个编辑器中一样,我需要更简单的“材质”菜单(用户可以从不同的预设纹理中进行选择,这些纹理是管理员先前上传的,带有相应的漫反射贴图、等级库贴图、法线贴图和alpha贴图)

我浏览了archilogic的所有repo,但为了简化它,找不到3D编辑器的源代码


有人知道它是否可用吗?如果没有,我应该朝哪个方向开发这样一个应用程序?

这是一个仍在路线图上的功能,尚未完成,但有一些方法可以实现类似的功能

最重要的是,以下描述是由于所有这些还没有准备好和完善。这是一种实现目标的实验性方法。

让我们来分析一下

预定义材质 Archilogic现在有一个很长的预定义材质列表,您可以从中选择。它们与建筑元素的类型无关,因此可以在任何元素上使用任何材质

地板和天花板 楼板和天花板包含在具有
io3d楼板
构件的单个图元中

因此,假设您的地板和天花板位于
elem
元素中,您可以执行以下操作来选择预定义的材质:

elem.components['io3d-floor'].data.material_top = 'wood_parquet_oak';
elem.components['io3d-floor'].update()
这会将地板材质更改为给定的预定义材质,在本例中为“wood_parquet_oak”。对于天花板材料,将
材料顶部
更改为
材料顶部

墙 墙的工作原理基本相同,但属性是
前面的材质
后面的材质
,而不是
顶部的材质
天花板的材质

其他建筑元素 对于其他元素,您可能可以通过查看相关组件的
.data
中可用的属性(例如,墙的
io3d-wall
)来解决此问题

定制材料 这是一个有点难以得到正确的,因为有一个在定制材料涉及到一堆属性

假设您已将纹理上载到某个位置,则可以如下定义材质:

elem.components['io3d-floor'].data.material_top = {
  mapDiffuse: "https://example.org/texture.hi-res.gz.dds",
  mapDiffusePreview: "https://example.org/texture.lo-res.jpg", 
  mapDiffuseSource: "https://example.org/texture.source.jpg"
}
您还可以为其提供其他参数,例如
size:[3,3]
在重复自身或传递法线贴图或镜面反射贴图之前,缩放纹理以覆盖模型中的3x3米,但为了简洁起见,我排除了这些参数

注意:您可以对任何也接受上述预定义材质的对象使用这种材质定义遵循命名约定很重要,您需要有一个Gzip DDS纹理以及JPEG版本

“源”映像是可选的,但其他两个映像必须存在,否则将无法工作


总结:此功能还没有完全准备好(您可以通过精心设计的方法来实现这一点),但在有更好的方法可用之前,此解决方案将一直有效。

非常感谢您的详细回复。我现在明白了为什么它还在被打磨的路上。我还是a-frame的新手,我一直在尝试搜索一个资源,在那里我可以学习如何使用鼠标光标选择元素,但找不到任何元素。