- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个 Web 应用程序,让用户可以在建筑 3D 场景中的地板和墙壁的不同预设之间进行选择。
就像在这个编辑器中一样,但是,我需要更简单的 Material 菜单(用户从管理员之前上传的不同预设纹理以及相应的漫反射、规范、法线和 alpha 贴图中进行选择)。
我浏览了 archilogic 的所有存储库,但找不到 3D 编辑器的源代码以使其更简单。
有谁知道它是否可用,如果没有,我应该朝哪个方向发展这样的应用程序?
最佳答案
此功能仍在路线图上,尚未完成,但有一些方法可以完成类似的任务。
所以最重要的是,以下描述是由于所有这些还没有准备好和完善。这是实现目标的一种实验性方法。
让我们来分解一下。
Archilogic 现在有一长串预定义 Material 可供您选择。它们与建筑元素的类型无关,因此您可以在任何元素上使用任何 Material 。 Here is the list of available materials .
地板和天花板包含在带有 io3d-floor
组件的单个元素中。
因此,假设您已在 elem
元素中找到地板和天花板,则可以执行以下操作来选择预定义 Material :
elem.components['io3d-floor'].data.material_top = 'wood_parquet_oak';
elem.components['io3d-floor'].update()
这会将地板 Material 更改为给定的预定义 Material ,在本例中为“wood_parquet_oak”。对于天花板 Material ,将 material_top
更改为 material_ceiling
。
墙的工作方式几乎相同,但属性是 material_front
和 material_back
而不是 material_top
和 material_ceiling
.
对于其他元素,您可以通过查看相关组件的 .data
中可用的属性来解决这个问题(例如,io3d-wall
表示墙壁)。
这有点难以正确实现,因为制作自定义 Material 涉及到许多属性。
假设您已在某处上传纹理,您可以像这样定义 Material :
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 米,但我为了简洁起见,排除这些。
注意:您可以将这种 Material 定义用于任何也接受上述预定义 Material 的东西。 遵循命名约定非常重要,并且您需要有可用的 gzip 压缩 DDS 纹理以及 JPEG 版本。
“源”图像是可选的,但其他两个图像必须存在,否则将不起作用。
总结:此功能尚未完全准备就绪(正如您可以通过使其工作的相当人为的方式看出的那样),但在出现更好的方法之前,此解决方法将起作用。
关于aframe - 3d.io 查看器中的建筑 Material 预设选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48844852/
我正在使用 aframe 0.8.2 加载此 Collada (DAE) 模型,并使用 aframe-ar 将其显示在 Hiro 标记上:
从 Aframe 中的 Assets 管理器加载对象时,模型显得太大,所以我想重新缩放它。 在 Aframe 网站上,它指出 如果您没有看到您的模型,请尝试将其缩小。与 A-Frame 的规模相比,O
我有一个带有 obj 和 mtl 文件的 3d 对象,该文件在 Aframe 中显示。我想在它上面应用动画,逐渐改变它的 Alpha 值以获得淡出效果。 我浏览了 AFrame 文档。但找不到与 3d
如何将圆角边缘/边界半径添加到 a 平面? 我必须做一个带圆角的正方形 最佳答案 带 a-plane 的圆角不可能。您可以使用 slice9 component 关于aframe - 如何向平面 (A
我在 AFRAME 中遇到了一个大问题。在我当前的项目中,用户可以通过按下按钮来更改带有纹理的平面的比例。当然,然后我需要更改平铺(或重复,它在 AFRAME 中的调用方式)——但无论我如何尝试,我都
我不希望玩家穿墙。我尝试了 aframe extras,但它在当前的 aframe 版本中不起作用。在 Aframe 1.3.0 中还有其他方法或解决方案吗? 最佳答案 您可以使用 AdaRoseCa
当我尝试在我的 AFRAME 项目界面中使用一些西类牙语单词时,所有带重音的字符都消失了: 只显示“Men”而不是“Menú”。 在我尝试添加的 html 页面中: 没有效果。 ¿如何正确显示那种
我正在使用 aframe-ar 并且需要将视频流显示在与嵌入场景相同的 div 中。 我正在尝试使用默认场景: 渲染的框成功嵌入到周围的 div 中,但我的网络摄像头的视频流是全屏的
我正在尝试让 Aframe 和 vuejs 相互配合良好,但控制台返回警告消息。我猜这是由于 aframe 在 vue 有机会更改它们之前检查了属性值。 警告信息 core:schema:warn U
我正在使用 a-frame js 创建平面游览。我想自动移动相机。目前我正在使用鼠标这样做。有人可以帮助我吗? 最佳答案 要在 A-Frame 中进行补间,您可能会使用 a-animation 系统:
这里是新手,如果我没有使用正确的语言或指的是正确的东西,那么先发制人的道歉。 我正在使用下面的代码加载 360 度图像作为我的场景。 .... 一切都很好。但是,当我测试时
我有一个实体,我想像这样设置它: 所以我可以在 #ui 上发出 mobileMenuOpen 事件,让实体及其所有平面淡入淡出并向上移动。但是,#ui 上的 opac
我有一个几何体设置为平面图元的实体。我如何知道我使用 raycaster/cursor 组件单击(在实体上)的点的坐标? 最好是知道系统中的坐标,其中在交点处定义了几何体的顶点。 最佳答案 检查交叉点
我想知道是否有办法获得通过 3dio.js 插入的模型的边界框,或者以其他方式计算它们的中心点?我希望将它们集中在原点上。 下图显示了相对于红色框指示的场景原点的两个模型。 最佳答案 您可以像这样访问
首先,我很抱歉我的英语不好,我是法国人。 我想知道如何添加纹理(图片是透明的 gif),并“隐藏”框以仅看到纹理。 致以诚挚的问候 最佳答案 对盒子进行纹理处理,并使透明部分透明: " 此外,尝试使用
当相机靠近球体时,我尝试显示一些文本。这个想法是,当用户看到球体移得更近时,就会显示文本,比如说“你好”。但现在我只知道如何使用实体添加固定位置的文本,我不知道如何检测相机和球体之间的距离,并在用户看
我最近使用 aframe 和 glitch 创建了一个网站,当网站出现故障时一切正常,但是一旦我上传到我的主机,每次都会出现一个弹出窗口,要求设备传感器许可“通过 HTTPS 访问此站点以进入 VR
我使用以下代码来获得视觉反馈: 问题在于,此代码应用于光标与场景中每个基本实体“碰撞”的地方。我希望它仅适用于特定元素。 (或者,禁用特定元素上的动画)。我该怎么
使用 Aframe 如何手动更改相机旋转,以便它在移动设备上工作并仍然使用外观控制? 我已经尝试通过 html 属性,如下所示: document .querySelector('[camera]
首先,我很抱歉我的英语不好,我是法国人。 我想知道如何添加纹理(图片是透明的 gif),并“隐藏”框以仅看到纹理。 致以诚挚的问候 最佳答案 对盒子进行纹理处理,并使透明部分透明: " 此外,尝试使用
我是一名优秀的程序员,十分优秀!