看板 C_and_CPP 關於我們 聯絡資訊
: glFrustum()的功能, 是決定你的View Volumn範圍用的.... : 當然, 其實也就是你的3D scene裡投影到View Plane的方式.... : 你原本的View Volumn設定是-320 ~ +320, 用簡單圖解X-Z平面: : \ / : \ / : \ / : \ / : \ / : \ / --> X : eye : 當你改成0 ~ 640的設定之後, 你的View Volumn與投影方式是這樣: : | / : | / : | / : | / : | / : | / --> X : eye : 所以問題在你幹麻要用這樣子歪斜的投影方式來呈現scene呢?? : 純粹只是改參數練習玩玩看??還是是否有什麼特定想法要實作?_? 原來是這樣啊!!!! 我原本以為 glFrustum 可以跟 gluOrtho2D 一樣 可以建立座標系的單位 所以我原本想的是 \ / \ / \ / \ / \ / \ / --> X 的範圍(0 ~ 640 ) Y 的範圍(0 ~ 480 ) 有辦法這樣設定嗎?? 另外, frustum設定的XY 應該是指near plane上面的座標吧? 感謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.151.68
VictorTom:印象中是當作near plane上的l r b t沒錯.... 05/13 13:23
VictorTom:0~?的要求, Projection matrix加一個translate不行嗎?? 05/13 13:24
VictorTom:看起來你是不想改變原本是0~?的vertex data也不想在VS 05/13 13:25
VictorTom:運算裡每個vertex都掛一次translate吧?? 不過基本上這 05/13 13:26
hoson:V大指的意思是...? 再畫圖形前 先做對應的平移嗎? 05/13 13:26
VictorTom:個translate掛在ModelView計算也一樣, 除非你的MV 05/13 13:26
VictorTom:matrix頻繁的改變, 而Project Matrix只會改變一次.... 05/13 13:26
VictorTom:對啊, 就像第二個茶壺一樣, 先translate 320,240啊.... 05/13 13:29
hoson:再次感謝v大 不過其實我一直搞不懂GL裡面座標的關係 05/13 13:38
hoson:如果先用 glOrtho,對於3d座標的關係就很清楚 05/13 13:39
hoson:可是 glFrustum 是四角錐的空間 就不知道他3d的座標的位置.. 05/13 13:40
VictorTom:關於這點, 小弟剛補修比較完整的觀念在前篇回文推文處, 05/13 13:42
VictorTom:也許您可以參考看看; GL裡的座標只是抽象的數值座標概念 05/13 13:42
VictorTom:Modelview/Project matrix整套transformation在GL裡有它 05/13 13:43
VictorTom:的意義與道理在, 但是化為計算, 就只是一堆matrix 05/13 13:43
VictorTom:production, 就跟中學學平面座標轉幾度要怎麼乘matrix 05/13 13:44
VictorTom:道理其實基本上是一樣的:) 05/13 13:45
hoson:感謝v大!!! 05/13 13:46