问题标签 [dat.gui]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 将 dat.GUI 下拉菜单字符串映射到值
在生成 dat.GUI 下拉菜单时,我给出了一个字符串数组,这些字符串将作为下拉菜单条目。在用户选择时,相应的数据属性被更新为选择的菜单字符串。
有没有办法将菜单中的字符串与相应的值(可以是任何类型)分开?
例如,假设我的菜单是['King', 'Queen', 'Rook']
,我希望我的属性能够获得相应的值。['A','B','C']
或[-1, 9, 5]
。
text - dat.gui 显示简单文本
是否可以在 dat.gui 中显示简单的文本?
可以实现一个文本输入框,但是我想用dat.gui来显示注释,比如应用程序控件。这甚至可能吗?
javascript - 从对象数组中动态添加 Dat.gui 元素
我正在尝试扩展 dat.gui 菜单以支持用户添加的多个数据集。
目的是在加载新数据集时重建 gui。所以在下面的代码片段中,它应该为数组数据中的每个对象添加一个新的滑块。
最后一行引发错误:
我知道这this
是错误的对象,但无法弄清楚我做错了什么。
javascript - dat.GUI 及其列表输入问题
我今晚来找你是因为我对 three.js 有疑问。我正在做一个教程,但最后,我无法在列表中选择形状或网格,尽管我设置了视频中所示的控件(在此处)这是我们正在谈论的一段代码关于 :
其余的一切都很好,但只是那个控制把这一切搞砸了。
大家有没有看出哪里不对劲?
谢谢。
javascript - dat.GUI 自定义位置未显示
因此,我尝试使用自定义放置教程将 dat.GUI 放置在画布的右上角:
这是一个显示不工作的自定义放置的代码笔:http: //codepen.io/eternalminerals/pen/avZBOr
我正在尝试使用自定义放置属性,因为此页面http://eternalminerals.com/testa/上的自动放置的 dai.GUI是不可点击的。我想如果我将它自定义放置到画布而不是页面上,它应该可以工作。
我试过:
在 codepen 和 live 站点上,“my-gui-container”是“canvas”,但每当我这样做时,dat.GUI 就会完全消失。也许我必须将画布包装在一个 div 中?我将继续修补此 dat.GUI 并随时通知您。
谢谢。
javascript - 如何访问使用 OBJMTLLoader 加载的 OBJ 的不同部分?
我用 3DS Max 制作了一个建筑模型,其中每个房间都是一个修改过的立方体,我使用 OBJMTLLoader 用他自己的 MTL 加载 OBJ 文件。问题是我需要根据用户要求强调某些房间。
我使用 dat.gui 显示一个菜单,用户可以在其中选中/取消选中房间以对其进行注释(我想我会更改房间大小或材料以强调它)。
这是我的装载机的代码
我可以玩整个模型,我有一个透明度功能,可以将透明度调整为 dat.gui 栏(称为 opciones.Opacidad 的那个)
它可以正常工作,但是当我尝试访问几何的内部立方体以在线框(例如)中对它们进行注释时,问题就来了,我使用:
为了在线框中找到并显示它,因为 OBJ 文件用它的 3DS Max 名称命名每个模块。但它不起作用,看起来该项目已找到,因为我没有收到任何错误,但它没有出现在线框中,当我使用另一个房间名称时,有时程序会在线框中显示很多可以包含的东西请求的一个与否,另一个它发现“未定义”我认为它与 OBJMTLLoader 创建的组有关。
我也试过
但结果是一样的。
所以我的问题是,如何访问加载了 OBJMTLLoader 的模型的内部模块?如您所见,我尝试使用“Object3D”方法来访问整个模型的内部立方体,我做得对吗?如果需要,我可以提供所有代码和文件,您可以在此处查看我的问题的解决方法:
3DBuilding 链接 您还可以在那里查看所有代码;)
感谢您的关注,我希望有人可以帮助我。
编辑:当我这样做时:
将其标记为红色或仅: .material.wireframe=true; 它显示了许多未发生的事情。当我使用 scene.getObjectById(ObjectId, true); 时也是如此 但它不会在 DOM 树中显示对象的名称。
我正在尝试使用其他导出工具来查看问题是否只是 OBJ 导出器。这真的很烦人。
这是问题的一些屏幕。
我想说的是:
如您所见,它只是一个编辑框
备注:
如果我们转到 OBJ 文件,我们可以看到如下内容:
如您所见,3DS Max 正在为我的几何体创建多边形组,据我所知,OBJMTL 忽略“g”组,所以当我尝试评论某事时,它会评论很多事情......尝试与其他出口商...手动解析OBJ文件会很烦人...
再次编辑
我一直在探索这些选项,并且 OBJ 由 3DS MAX 生成,但是当我探索 de DOM Tree 时,我可以将 THREE.Mesh 视为一个数组,其中只有一些对索引具有他自己的预期对象名称和奇数索引具有某种几何形状,如果没有分配任何名称,我将无法控制,并且由于某种奇怪的原因,在几何实例中创建了一些毫无意义的“顶点”组,我上传了一些屏幕和 OBJ/ MTL 文件使我的问题更清楚:
看看这个,我现在将尝试评论一个名为“Conserjeria”的模块。这是位于 DOM 树中的模块:
在这里,在第一列我们可以看到,第一个问题,我的 OBJ(所有几何)文件只有大约 298 个对象,那么为什么有 1056 个网格对象呢?这不是很相关,因为它们中的大多数名称都是空的。
第二个问题,在第二列,您可以看到“Conserjeria”房间的几何属性,我认为这里是问题产生的地方......在第三列,我向您展示了我的“Conserjeria”对象的奇怪“顶点”数组. 我说很奇怪,因为它是由 6272 个索引组成的……我的 OBJ 文件中没有 6272 个顶点……你可以在这里看到 OBJ,如果你想查看它的结构,你可以找到Conserjeria (52v、11vn、80f ) . 这可能是为什么当我尝试仅评论某些对象时它会评论很多对象的原因吗?
我还尝试了3 个盒子的简化模型,其中 2 个被正确注释,但第一个没有,看看(使用复选框来注释它们)我无法想象为什么会发生这种情况。(当场景中只有 3 个立方体时,数组中还有 7 个 THREE.MESH 索引...)
任何帮助只评论我的房间?如果需要,我可以分享我拥有的一切(代码、OBJ、MTL、3ds ......)
感谢所有试图帮助我的人。
three.js - Three.js & Dat.gui - TrackballControls renderer.domElement 禁用旋转和平移
我正在尝试将 dat.gui 与一个非常简单的 three.js (r73) 场景一起使用,但是在将“renderer.domElement”添加到 trackballControls 初始化后遇到了旋转和平移无法正常工作的问题。缩放按预期工作。
如果没有 renderer.domElement,我可以获得有效的旋转、缩放、平移功能,但 dat.gui 界面滑块在单击时会“锁定”,这很烦人且不起作用。此处描述的问题:在 three.js 示例中使用 dat.GUI 时出现问题。
在这里查看了更多信息,但没有看到很好的解决方案:https ://github.com/mrdoob/three.js/issues/828
也发现了这个问题。定义容器元素又名 renderer.domElement 不起作用。如果不旋转场景,我无法在画布区域之外单击。 仅当鼠标在画布上时才允许鼠标控制 three.js 场景
最近有没有人遇到同样的事情?如果是这样,有哪些解决方法是可能的?任何帮助表示赞赏。
-
代码设置如下:
javascript - 如何修改场景中使用 OBJMTLLoader 加载的对象的参数?
我有一个带有 3 个立方体和一个 DAT.GUI 菜单的场景,我只想在菜单上选中任何立方体时将其设置为线框(单独)。
我所做的适用于我的 3 个立方体中的 2 个,但我不知道为什么,第一个立方体没有被修改,你可以在这里查看示例:
这是主要代码:
如果您查看 DOM 树,这是为 3 个立方体创建的结构。
立方体在位置 1、3 和 5 的位置。其余位置包含一些无法识别的混乱(哈哈,明白了吗?网格......好吧......算了)。
有人可以帮我找出问题吗?为什么我无法访问第一个立方体,以及创建的所有没有名称的网格是什么?
javascript - 如何使用 dat.gui 或 three.js 处理多个图像?
我目前正在研究 dat.gui/three.js api。我正在使用上述 api 获取单个图像的示例(https://workshop.chromeexperiments.com/examples/gui/#1--Basic-Usage),但是如何处理多个图像以便我可以分别应用使用 dat.gui 或 three.js 设置(添加颜色、创建文件夹、为每个图像提供一些输入值)?