<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    相機與矩陣

    這兩天終于閑了下來有時間寫點東西了,只記得想寫相機已經是很久遠的事情了,開發(fā)中涉及到相機相關的內容也已經是兩個月之前了。

    在3D的世界里相機與矩陣是密不可分的,首先在投影之前,有模型矩陣和視圖矩陣,這兩者并沒有本質上的區(qū)別,一個是站在模型的角度,另一個就是站在觀察者的角度了。模型的左移相當于相機右移,有鑒于此,OPENGL中并不區(qū)分Model Matrix 和 View Matrix,而是將兩者統稱為ModelView Matrix.

     以gluLookAt函數為例,該函數根據眼睛的位置,場景中心的位置,以及一個從觀察者視角向上的向量定一個視圖轉換,實際上做的還是應用一個ModelView Matrix。原點位置和眼睛位置確定了z方向向量,向上的向量確定了y方向向量,兩者正交,叉積就是z方向向量了,這樣就可以確定一個視圖矩陣了。

    相機不僅僅與ModelView Matrix有關,而且也與投影矩陣有關系。有了相機,再結合ViewPort大小,FOVy(Y方向Field Of View)或者Aspect Ratio,近裁減面,遠裁減面就可以確定透視投影矩陣了。

    一個4*4的矩陣如何與模型/視圖變換聯系起來呢?看這個圖,前三個列向量分別代表新坐標系的x,y,z軸方向,而最后一個向量則代表平移量(新坐標原點),而矩陣的(4,4)元素則是一個放大因子,他同時將所有點之間的距離放大。如果我們把一個四維向量與之相乘,就可以得到新的坐標了。

    什么是萬向節(jié)鎖(Gimbal Lock)呢?這是采用歐拉角的方式表示相機時出現的問題。這個問題源于繞軸旋轉時自由度的丟失。因為旋轉到軸向時將無法確定是從哪個方向旋轉過來的。這就有點像是北極與南極點的經度無法確定一個道理。而且在這個地方,可能出現角度的不連續(xù)變化。即直接從0度跳轉到180度。在相機方向平行于X軸向時,繞X軸的旋轉不會有任何效果,也就是說,從數學上來講此時的ModelView Matrix始終是不變的。在計算時,由于角度變化不連續(xù),所以計算的結果是很不穩(wěn)定的。例如漫游旋轉時,簡單的增加角度,可能在某些臨界值上出現錯誤的情況,典型的就是繞某一個軸的來回震蕩,這也就是所謂Lock的意義了吧。

    posted on 2007-08-04 17:06 雁過無痕 閱讀(794) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    <2007年8月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    導航

    統計

    常用鏈接

    留言簿(7)

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲乱妇老熟女爽到高潮的片| 亚洲人成电影亚洲人成9999网 | 最近2019中文免费字幕在线观看| 国产精品成人无码免费| 亚洲av无码一区二区三区在线播放 | a成人毛片免费观看| 亚洲永久精品ww47| 特级做A爰片毛片免费看无码 | 亚洲av无码av在线播放| 四虎在线播放免费永久视频| 国产精品无码亚洲一区二区三区| 精品久久洲久久久久护士免费| 在线观看亚洲专区| 国产亚洲成人久久| 天黑黑影院在线观看视频高清免费| 亚洲国产精品VA在线看黑人| 久久久久国色AV免费观看性色| va天堂va亚洲va影视中文字幕 | 一级特黄录像免费播放肥| 亚洲精品乱码久久久久久中文字幕| 免费观看一区二区三区| 亚洲精品第五页中文字幕| 成人免费a级毛片无码网站入口| 国产区图片区小说区亚洲区| 中文字幕亚洲无线码a| 日本免费中文字幕| 久久精品国产亚洲AV久| 国产在线播放免费| 永久在线观看免费视频| 亚洲最新黄色网址| 亚洲精品成人a在线观看| 久久久久成人片免费观看蜜芽| 亚洲av乱码一区二区三区香蕉| 亚洲成年人啊啊aa在线观看| 日本中文字幕免费高清视频| 亚洲日韩看片无码电影| 国产精品亚洲A∨天堂不卡| 国内精品乱码卡1卡2卡3免费| jizz在线免费播放| 亚洲一级高清在线中文字幕| 亚洲国产精品成人久久蜜臀|