首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >3d.io浏览器中的预置材料选择

3d.io浏览器中的预置材料选择
EN

Stack Overflow用户
提问于 2018-02-17 18:59:07
回答 1查看 136关注 0票数 3

我想创建一个网页应用程序,让用户选择不同的预置地板和墙壁在一个令人毛骨悚然的3D场景。

https://spaces.archilogic.com/model/template/new?modelResourceId=f67ffde0-278e-11e4-9f8c-7dda0d61ae4a&mode=edit&view-menu=camera-bookmarks&main-menu=interior&logo=false

然而,就像在这个编辑器中一样,我需要更简单的材料菜单(用户从不同的预置纹理中选择,这些纹理是由管理员用相应的漫射、规格、法线和阿尔法映射上传的)。

我浏览了所有的回放,但找不到3D编辑器的源代码,以使它更简单。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-19 16:41:42

这是一个仍然在路线图上的特性,还没有完成,但是有一些方法可以完成类似的任务。

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

让我们把这个拆开。

预定义材料

阿奇洛格有一长串预先定义的材料,现在你可以从中挑选。它们与架构元素的类型无关,所以您可以在任何元素上使用任何材料。这是可用材料的清单

地板和天花板

地板和天花板包含在一个带有io3d-floor组件的单一元素中。

因此,假设您已经在elem元素中获得了地板和天花板,您可以执行以下操作来选择一个预定义的材料:

代码语言:javascript
复制
elem.components['io3d-floor'].data.material_top = 'wood_parquet_oak';
elem.components['io3d-floor'].update()

这将将地板材料更改为给定的预定义材料,在本例中为"wood_parquet_oak“。对于天花板材料,将material_top改为material_ceiling

墙壁的工作原理基本相同,但属性是material_frontmaterial_back,而不是material_topmaterial_ceiling

其他建筑元素

对于其他元素,您可能可以通过查看关联组件的.data中可用的属性(例如,用于墙壁的io3d-wall )来计算。

定制材料

这有点难搞清楚,因为在制作定制材料的过程中涉及到许多特性。

假设您已经将纹理上传到某个地方,您将定义如下内容:

代码语言:javascript
复制
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米,然后再重复自己或传递普通映射或镜面映射,但为了简洁起见,我将它们排除在外。

注:您可以使用这种材料定义的任何东西,也接受上述预定义的材料。--遵循命名约定非常重要,和您需要有一个gzipped纹理以及JPEG版本。

“Source”图像是可选的,但其他两个必须存在,否则就无法工作。

总结一下:这个功能还没有完全准备好(正如您可以从相当人为的方法来判断的那样),但是在更好的方法可用之前,这个解决方案就可以了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48844852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档