gpt4 book ai didi

javascript - GLGE API setRot/setRotX 不起作用

转载 作者:行者123 更新时间:2023-11-29 22:29:27 26 4
gpt4 key购买 nike

我正在尝试制作一个用于查看 3D 模型的小场景。

我修改了 GLGE Collada 示例以从代码添加 .dae 模型。

http://goleztrol.nl/SO/GLGE/01/

我有什么
到目前为止它有效。使用动画旋转相机。

使用“添加”和“删除”按钮,使用以下代码在场景中添加和删除模型(不要介意“鸭子”。在原始示例中它是一只鸭子。)

var duck = null;
function addDuck()
{
if (duck) return;
duck = new GLGE.Collada();

doc.getElement("mainscene").addCollada(duck);

duck.setId("duck");
duck.setDocument("amyrose.dae");
duck.setLocY(-15);
duck.setRotX(1);
duck.setScale(2);
}

function removeDuck()
{
if (!duck) return;
doc.getElement("mainscene").removeChild(duck);
duck = null;
}

问题
现在模型是躺着的,而它应该站起来。元素的各种方法似乎都有效。设置了位置,设置了比例尺,但是似乎忽略了对 setRotX 的调用。我尝试了 api 中的各种其他方法,但 setRotY、setRot、setQuatX 和 setDRotX 似乎都失败了。我没有收到任何错误(当然不是关于此方法)。我尝试了 1.57 的值(应该约为 90 度),但也尝试了其他值,范围从 1 到 180。

我无法找出我做错了什么。当然,我可以在 Blender 中旋转模型本身,但我想使用 GLGE API 来完成。

更新
当我加载演示模型 seymourplane_triangulate.dae 时,旋转起作用了。显然我的模型不同之处在于它不能旋转。我只是不明白为什么。我想这可能是因为模型是由各种不同的网格构建的,但我不明白为什么缩放和移动确实有效。

有谁知道这个模型有什么问题,我可以做些什么来修复它(也许使用 Blender)?

在包含场景的 XML 文件中设置初始旋转确实有效。在另一个元素(如整个场景)上设置旋转也可以。

最佳答案

加载后需要旋转它。

您可以在 setDocument 的回调中执行此操作

duck.setDocument("amyrose.dae", null, function() {
duck.setLocY(-15);
duck.setScale(2);
duck.setRotX(0);
duck.setRotY(0);
duck.setRotZ(3);
});

关于javascript - GLGE API setRot/setRotX 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7730121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com