青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

黎明的剔透里伸出了你沁清的曖昧

Graphics|EngineDev|GameDev|2D&3D Art

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  60 隨筆 :: 1 文章 :: 18 評論 :: 0 Trackbacks

gl_FragCoord和gl_FragDepth分別是片元著色器的輸入和輸出變量。

gl_FragCoord是個vec4,四個分量分別對應x, y, z和1/w。其中,x和y是當前片元的窗口相對坐標,不過它們不是整數,小數部分恒為0.5。x - 0.5和y - 0.5分別位于[0, windowWidth - 1]和[0, windowHeight - 1]內。windowWidth和windowHeight都以像素為單位,亦即用glViewPort指定的寬高。w即為乘過了投影矩陣之后點坐標的w,用于perspective divide的那個值。gl_FragCoord.z / gl_FragCoord.w可以得到當前片元和camera之間的距離。參見Fog in GLSL page 4

gl_FragCoord.z是固定管線計算出的當前片元的深度。它已經考慮了多邊形偏移,并經過了投影變換。它位于[0.0, 1.0]之間。如果用gl_FragColor = vec4(vec3(gl_FragCoord.z), 1.0)將其可視化,多半會看到一片白。這是由于變換的非線性,大多數點的深度都非常接近于1。用gl_FragColor = vec4(vec3(pow(gl_FragColor.z, exp)), 1.0)并將exp取為合適的值,就能看到從黑到白的深度變化了。距離觀察者近的顏色深,接近0.0;距離觀察者遠的顏色淺,接近1.0;這說明一直以來的右手坐標系在投影變換后變成了左手坐標系。關于深度的變換和精確性參見OpenGL FAQ - 12 The Depth Buffer

根據GLSLangSpec.Full.1.30.08(p61),gl_FragCoord.z是固定功能計算所得的結果。如果片元著色器不寫gl_FragDepth,那么這個值將用在后續處理中。OpenGL Shading Language提到(p104),即使將gl_FragCoord.z賦值給gl_FragDepth也不能保證產生和固定功能完全相同的值。但是,可以保證相對正確。加之片元著色器一旦寫入gl_FragDepth,就必須保證在每個分支都有寫入。因此,如果一個著色器需要在某些條件下自己計算深度,其它條件下的正確做法就是gl_FragDepth = gl_FragCoord.z。

在OpenGL的固定管線中,深度坐標是在視口變換期間變換到glDepthRange指定的范圍之內(OpenGL編程指南-原書第五版,88頁)。視口變換也就是光柵化(Rasterization),在進行到片元著色器的時候自然已經編碼完畢了。

自行計算片元深度可以用下面的方法(參考OpenGL FAQ - 12 The Depth Buffer):

 

  1. // Vertex Shader   
  2. varying vec4 position;  
  3. void main(void)  
  4. {  
  5.     position = gl_ModelViewMatrix * gl_Vertex;  
  6.     gl_Position = ftransform();  
  7. }  
  8. // Fragment Shader   
  9. uniform float zFar;  
  10. uniform float zNear;  
  11. varying vec4 position;  
  12. void main()  
  13. {  
  14.     float zDiff = zFar - zNear;  
  15.     float interpolatedDepth = (position.w / position.z) * zFar * zNear / zDiff + 0.5 * (zFar + zNear) / zDiff + 0.5;  
  16.     gl_FragColor = vec4(vec3(pow(interpolatedDepth, 15.0)), 1.0);  
  17. }  

 

這樣計算出的深度與gl_FragCoord.z基本一致。

posted on 2012-03-11 11:06 情絕格調(fresmaster) 閱讀(1662) 評論(0)  編輯 收藏 引用 所屬分類: Graphics
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久三级视频| 国产精品一区二区三区乱码| 国产毛片精品国产一区二区三区| 亚洲视频免费看| 欧美1区免费| 一色屋精品视频在线看| 欧美多人爱爱视频网站| 亚洲精品久久7777| 亚洲国产清纯| 国产伦精品一区二区三| 久久本道综合色狠狠五月| 夜久久久久久| 韩国av一区二区| 欧美大片一区二区三区| 欧美成人久久| 久久久青草婷婷精品综合日韩| 国产麻豆视频精品| 欧美日韩久久| 免费不卡欧美自拍视频| 亚洲欧洲精品一区二区三区| 亚洲人成小说网站色在线| 精品成人一区二区| 亚洲国产另类久久精品| 国语自产精品视频在线看一大j8| 亚洲一区二区动漫| 亚洲主播在线| 久久久久久久久综合| 亚洲欧美日韩国产中文| 91久久综合| 亚洲一区精品电影| 亚洲综合另类| 久久久久久夜精品精品免费| 香蕉精品999视频一区二区| 亚洲欧洲一区| 亚洲黄色在线观看| 香蕉久久夜色| 六月天综合网| 欧美日本不卡视频| 久久在线91| 久久影院午夜片一区| 亚洲成色精品| 国产日韩欧美视频| 国产精品99久久久久久久女警| 亚洲激情偷拍| 99精品视频一区二区三区| 一本一本久久| 欧美性猛交xxxx乱大交蜜桃| 欧美成人精品在线| 国产精品乱人伦一区二区| 国产在线高清精品| 亚洲黄色在线观看| 久久超碰97中文字幕| 久久精品在线观看| 日韩亚洲欧美精品| 欧美日韩亚洲一区三区 | 亚洲美女网站| 欧美福利电影网| 欧美一区二区三区精品| 久久综合久久综合九色| 亚洲国产精品va在线看黑人动漫 | 国产欧亚日韩视频| 国产一区二区欧美日韩| 亚洲在线中文字幕| 亚洲视频在线播放| 欧美成人免费va影院高清| 国产综合色产| 久热国产精品| 亚洲人体一区| 久久久久久噜噜噜久久久精品 | 西瓜成人精品人成网站| 久久综合九色欧美综合狠狠| 999亚洲国产精| 欧美激情片在线观看| 欧美日韩中文字幕综合视频| 男女精品网站| 久久精品免视看| 亚洲一区二区精品在线观看| 欧美在线精品免播放器视频| 在线观看国产精品淫| 亚洲国产高清在线| 久久女同互慰一区二区三区| 国产精品99久久久久久www| 久久亚洲欧美| 久久伊人亚洲| 国产精品国产自产拍高清av| 亚洲男女毛片无遮挡| 欧美在线二区| 亚洲欧美网站| 欧美日韩综合精品| 美女91精品| 国产小视频国产精品| 免费日韩成人| 国产日韩欧美电影在线观看| 亚洲自拍啪啪| 欧美承认网站| 99国产精品自拍| 午夜久久影院| 午夜亚洲性色视频| 国产日韩在线一区二区三区| 国产精品99久久99久久久二8| 欧美高清在线精品一区| 亚洲免费成人av| 亚洲一区二区三区四区在线观看 | 久久gogo国模裸体人体| 狠狠色综合网站久久久久久久| 午夜精品一区二区三区电影天堂 | 一本到12不卡视频在线dvd| 亚洲欧美精品在线观看| 欧美一区二区三区四区视频| 国产视频一区在线| 欧美一级夜夜爽| 日韩一区二区电影网| 一本色道久久综合| 在线精品亚洲| 国产精品一区二区久久久久| 欧美中文字幕| 亚洲国产色一区| 亚洲精品国产系列| 国产精品羞羞答答xxdd| 噜噜噜噜噜久久久久久91| 亚洲国产精品女人久久久| 亚洲乱码国产乱码精品精98午夜| 免费观看在线综合| 亚洲视频欧美视频| 欧美激情精品久久久久久黑人| 亚洲国产一区二区视频| 欧美视频日韩视频| 欧美电影在线| 欧美在线播放一区| 亚洲欧美激情视频| 日韩亚洲在线观看| 在线视频一区二区| 亚洲日本理论电影| 91久久在线播放| 裸体丰满少妇做受久久99精品 | 亚洲欧美日韩电影| 欧美大胆成人| 欧美伊人久久| 亚洲国产成人porn| 欧美激情1区2区| 亚洲精品永久免费精品| 欧美www在线| 久久九九精品99国产精品| 玖玖视频精品| 亚洲第一页在线| 午夜精品福利一区二区三区av| 先锋影院在线亚洲| 夜夜精品视频一区二区| 中文国产一区| 久久精品人人做人人爽电影蜜月| 久久久久久噜噜噜久久久精品| 欧美一区二区三区四区在线观看地址| 一区二区激情视频| 久久精品在线| 噜噜噜91成人网| 欧美日韩亚洲一区| 亚洲第一在线综合在线| 一区在线观看| 亚洲欧美日韩国产中文在线| 久久久久久精| 亚洲一区久久久| 欧美成人第一页| 国产一区二区三区在线播放免费观看| 国产综合视频在线观看| 亚洲综合激情| 欧美激情亚洲综合一区| 久久精品中文| 国产精品va在线播放我和闺蜜| 一区在线免费| 久久综合五月| 老司机精品视频一区二区三区| 国产精品麻豆va在线播放| 亚洲国产你懂的| 欧美一区二区三区精品电影| 日韩视频免费大全中文字幕| 欧美在线一级视频| 日韩亚洲成人av在线| 久久国产黑丝| 欧美日韩三级视频| 欧美亚洲视频在线看网址| 中文日韩在线| 久久免费视频这里只有精品| 国产一区欧美| 欧美韩国日本一区| 欧美精品123区| 亚洲一级黄色片| 午夜在线精品| 在线中文字幕一区| 亚洲视频中文| 一区久久精品| 免费在线播放第一区高清av| 久久精品国产亚洲高清剧情介绍| 国产精品视频第一区| 久久久999精品| 国产精品看片你懂得| 久久精品视频免费播放| 免费观看一区| 亚洲欧洲在线一区| 亚洲一级二级在线| 亚洲青涩在线|