我正在嘗試爲查看3D模型製作一個小場景。GLGE API setRot/setRotX不起作用
我修改了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文件中設置初始旋轉是行不通的。在另一個元素上設置旋轉(如整個場景)也適用。
更新:嘗試過各種東西,其中包括其加載'西摩Plane'模型。它確實被旋轉了,但是當我像這樣加載它時,它不會加載它的皮膚。顯然AmyRose和Seymour Plane之間有很大的區別。任何人都知道如何使用Blender修復它? – GolezTrol