【发布时间】:2017-02-03 15:42:15
【问题描述】:
我正在使用 Three.js 和 aruco-js 开发一个增强现实项目。我编写了代码,以便在开始时将所有 3D 对象添加到场景(空)中,但数据最初是在标记检测时加载的。 现在我想创建一个用于更改对象外观的界面,从缩放对象的可能性开始。
所以我创建了一个 updateObject() 函数来设置新值,如下所示:
function updateObject(object, rotation, translation)
{
...
...
...
// first method
object.scale.x = 200;
object.scale.y = 200;
object.scale.z = 200;
// second attempt
object.scale.set(300, 300, 300);
};
我尝试了上面显示的两种方法来设置我的对象的比例,但它对我得到的渲染图像没有影响。有趣的是,我的 scene3d DOM 对象中的对象的值是我在函数中设置的值。但是为什么对输出没有任何影响呢? 我对 WebGL 或 Three.js 中的 3d 编程不是很熟悉,所以如果您能给我任何提示,问题可能出在哪里,我将非常感谢您的回答。
修复: 我仔细查看了我正在加载的 3D 对象,发现它们在另一个子对象内部有一个称为“网格”的子对象。通过尝试仅更改网格的比例,我发现它以这种方式工作。但我觉得它看起来很丑:
scene3d.children[visibleModels[0][0]+3].children[0].children[0].scale.set(2, 2, 2);
//visibleModels is a list of the markers/models that should be loaded
这只是对单个对象进行更改的测试,但至少我找到了解决此问题的方法。这是改变物体比例的普通方法吗?如果您有更好的解决方案或任何要添加的内容,请随时贡献。
【问题讨论】:
标签: three.js