2016-09-03 56 views
0

我正在做兩個對象在OpenGL的旋轉。其中一個工作:GLM - 旋轉使對象消失

 Model1 = glm::translate(...); 
     Model1 = glm::scale(...); 
     Model1 = glm::rotate(Model1, 90 , glm::vec3(1,0,0)); 

和其中一個犯規:

 Model2 = glm::translate(...); 
     Model2 = glm::scale(...); 
     Model2 = glm::rotate(Model2, 90 , glm::vec3(0,0,0)); 

這讓我的對象消失。

我認爲這是由於乘以0(或相似)造成的。 那麼,我應該如何表示不輪換?

軸角是一種使用旋轉的好方法,或者應該將它們存儲爲四元數並使用不同的函數,或者每次旋轉時都將其轉換回角度軸?

+1

爲什麼不移除「Model2 = glm :: rotate(Model2,90,glm :: vec3(0,0,0));」? – robor78

+0

原因我在** n **對象的循環中執行它,並且我想要每次應用旋轉,即使它的旋轉類似於'glm :: rotate(Model2,90,glm :: vec3(0, 0,0));'(物體是可旋轉的,我必須每次檢查是否沒有這種消失的情況) –

回答

4

那麼,我該如何表示沒有旋轉?

以0(而不是90)的角度。不要通過退化旋轉軸。