3d max 3D坐標(biāo)轉(zhuǎn)4元數(shù)久信,轉(zhuǎn)換代碼現(xiàn)成,一個(gè)3D坐標(biāo)對(duì)應(yīng)多個(gè)4元數(shù)漓摩,所以就想直接寫回到3d max看下效果裙士。坑開始了
1. 衣服骨骼無(wú)法寫入4元數(shù)管毙,只能寫入歐拉angle腿椎,還好,3d Max有轉(zhuǎn)換的API夭咬。
2. 再次用別人寫用bip.rotate.controller來(lái)設(shè)置轉(zhuǎn)換后的eluerAngle啃炸,寫出來(lái)是不對(duì)的,明顯吧卓舵,寫之前bip.rotate.controller讀出來(lái)的和quat2eluerAngle轉(zhuǎn)換出來(lái)的就是不一樣的
3. 但是應(yīng)該是要一樣的啊南用,猜想quat2eluerAngle轉(zhuǎn)換的時(shí)候是不是有問(wèn)題?試了一下掏湾,quat2eluerAngle再eluerAngle2quat轉(zhuǎn)回來(lái)不對(duì)了裹虫,quat最開始為負(fù)數(shù)的都變成正數(shù)了。聽說(shuō)正負(fù)號(hào)不影響融击,是一樣的筑公,那問(wèn)題不應(yīng)該出在這。而且求出來(lái)的eluerAngle和在3d Max里面界面顯示的是一樣的尊浪,也證明quat2eluerAngle是OK的
4. 然后就開始懷疑是不是set錯(cuò)地方了匣屡,畢竟求出來(lái)的eluerAngle和沒set前取出來(lái)的value(直接讀GT,肯定是OK的)都是正確的拇涤。然后發(fā)現(xiàn)bip.rotate.controller是eluerXYZ的class類型捣作,而quat2eluerAngle是eluerAngle類型,直接這樣set必然會(huì)有問(wèn)題(猜想)……
5. Google搜索了一下3d Max seteluerAngle的函數(shù)工育,在一本book上是說(shuō)用bip.rotation=quat2eluerAngle的輸出虾宇,試了一下,set進(jìn)去bip.rotation還是顯示quat如绸,值沒怎么變嘱朽,只有最后一個(gè)分類變了個(gè)負(fù)號(hào)旭贬?然后畫面完全崩了?3d Max展示的也不是我想set進(jìn)去的搪泳,還是再debug看下有沒有真正地set進(jìn)去吧稀轨,set進(jìn)去讀出來(lái)的eluerAngle是不是對(duì)的?不然肯定可以正確的顯示在界面吧
正好明天一邊問(wèn)別人岸军,一邊看有沒有set進(jìn)去