• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            月下的博客

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              34 Posts :: 0 Stories :: 59 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(5)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

               來自今天openGpu上的一個帖子,以前自己對這塊也是一知半解,導致了曾經在一次面試中在這個問題上卡殼(反正最后是沒過。。哭。。。),這次看到正好最近看shaderX1里有介紹,所以就一鼓作氣理解下吧!!

            這是shaderX1里從vertex到pixelshader之前的pipeline

            我具體解釋下從vertex shader到pixel shader中間的部分:
            face culling:根據triangle的兩邊向量叉乘得到的面法線方向來確定是順時針還是逆時針,從而達到裁剪。
            user clip planes:除了使用投影矩陣定義出的6個clipplane之外我們也可以額外自己定義對應的clipplane來剪裁。
            frustum culling:視錐裁剪,不說了
            homogeneous divide:這就是你說的除以什么w的地方,變換后的定點的xyz均會除以起w,以opengl的列為主(沒記錯的話。。反正就是matrix X vector的那個。。)透視投影矩陣的最后一行為0 0 1 0, 所以w值就是未經變換前的z值,所以根據透視投影的特性使得:-1=<x/w<=1, -1=<y/w<=1, -1=<z/w<=1。但是為何我們要這么做捏。。答案是我沒看懂。。。我覺得純粹是為了下一步。。下面說
            viewport mapping:上一步后x,y,z現在已經是-1到1之間,上一步的齊次坐標系又被稱為normalized device coordinates(NDC),那么我們要將這些頂點映射到屏幕空間就很簡單了,x = NDC(x) * width + width / 2, y = NDC(y) * height + height/2。

            呼。。如果有錯的話還請指正哈!~~
            posted on 2011-05-08 19:46 月下圓舞曲 閱讀(2256) 評論(0)  編輯 收藏 引用 所屬分類: 開發
            草草久久久无码国产专区| 久久精品一区二区三区AV| 国产激情久久久久影院老熟女免费 | 久久精品桃花综合| 亚洲午夜无码久久久久| 日韩精品国产自在久久现线拍| 国产精品综合久久第一页| 色播久久人人爽人人爽人人片AV| 亚洲AV无码久久寂寞少妇| 色综合久久中文综合网| 怡红院日本一道日本久久 | 久久精品久久久久观看99水蜜桃| 国产精品久久久久久久久鸭| 久久久久国产视频电影| 久久精品亚洲日本波多野结衣| 99久久伊人精品综合观看| 天天躁日日躁狠狠久久| 国产精品无码久久久久| 久久成人国产精品| 久久国产AVJUST麻豆| 久久综合九色综合欧美狠狠| 亚洲精品白浆高清久久久久久| 久久99精品久久久久久不卡| 2021精品国产综合久久| 久久国语露脸国产精品电影| 久久久黄片| 99久久国产综合精品网成人影院 | 久久精品视屏| 26uuu久久五月天| 欧美一区二区精品久久| 性做久久久久久久| 亚洲精品无码久久久久去q| 中文字幕久久亚洲一区| 久久久精品波多野结衣| 99久久精品国产综合一区| 国产精品日韩欧美久久综合| 久久免费高清视频| 9999国产精品欧美久久久久久| 99精品久久精品一区二区| 成人a毛片久久免费播放| 狠狠综合久久综合中文88|