簡體   English   中英

旋轉 3D model 在 opengl

[英]Rotating 3D model in opengl

我正在嘗試根據 9DoF 參數在場景中分配我的 model 和 position。 其中,輪換讓我很難過。 如果我將 x 和 z 旋轉保持為零,那么roty似乎工作正常,並且 model 僅圍繞 y 軸旋轉。 但是,一旦我給 x 和 y 旋轉任何值,model 在進行 y 旋轉的同時圍繞其他兩個軸移動。

下面是我用來給出rotxrotyrotz值的代碼。 我覺得矩陣乘法有一些問題。 因為0 * x + roty * y + 0 * z = roty only 但任何東西* x + roty * y +任何東西* z = 任何東西

model = glm::translate(model, glm::vec3(transX, transY, transZ));
model = glm::rotate(model, toRadians * rotX, glm::vec3(1, 0, 0));
model = glm::rotate(model, toRadians * rotY, glm::vec3(0, 1, 0));
model = glm::rotate(model, toRadians * rotZ, glm::vec3(0, 0, 1));

為了定位 object,首先應用旋轉,然后才考慮平移/旋轉另一個 object:

model = glm::rotate(model, toRadians * rotX, glm::vec3(1, 0, 0));
model = glm::rotate(model, toRadians * rotY, glm::vec3(0, 1, 0));
model = glm::rotate(model, toRadians * rotZ, glm::vec3(0, 0, 1));
model = glm::translate(model, glm::vec3(transX, transY, transZ));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM