看板 C_and_CPP 關於我們 聯絡資訊
各位先進大家好 想請問 glTranslatef() 這個是針對眼睛座標系(世界座標系)來做平移 是否有其他的function可以針對物體本身的座標系作平移呢? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.151.68
VictorTom:glTranslate是產生一個matrix並乘入current matrix, 是 05/18 13:28
VictorTom:你的current matrix為ModelView, 你才會覺得它作用在 05/18 13:28
VictorTom:Eye Space; 另外雖然OGL把Model和View綁成同一matrix, 05/18 13:28
VictorTom:但是Eye space與World space還是視為兩個座標系比較好@@ 05/18 13:29
VictorTom:至於物體本身的座標系要平移, 其實就是glVertex的座標 05/18 13:30
VictorTom:下在(0,0,0,1)以外的位置, 那就是object/model space自 05/18 13:31
VictorTom:己的座標....@_@" 05/18 13:31
VictorTom:如果你只是想針對scene裡某個object平移, 畫它之前的 05/18 13:33
VictorTom:translate之前, 先push ModelView, 畫完再pop回來即可. 05/18 13:34
hoson:感謝v大 針對第一個問題 眼睛座標 要視為 05/18 13:39
hoson:攝影機延伸出來的座標系嗎? 05/18 13:39
hoson:那這樣世界座標 要怎麼去看他? 05/18 13:40
VictorTom:obj(model) -> world -> eye(camera) -> ... 05/18 13:59
VictorTom:本來transform的流程如上(到clip/proj前), 只是GL把 05/18 14:00
VictorTom:ModelView綁起來, 看起來obj就直接->到eye space了. 05/18 14:01
VictorTom:你也可以自己抽象的另外分離出Camera用的matrix, 之後 05/18 14:01
VictorTom:每個obj的model matrix再另外乘上抽象的view matrix就好 05/18 14:02
VictorTom:印象中D3D就有獨立的camera可以設...@_@" 05/18 14:02