日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GLSL预定义变量

發布時間:2025/7/25 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GLSL预定义变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GLSL預定義變量

GLSL為不同的渲染階段定義了一些特定的變量。這些預定義(也叫做內置變量)有特定的屬性。所有的預定義變量都以gl_開頭。用戶定義的變量不能以此開頭。

下面分類進行介紹。

1)頂點著色器輸入

in?int?gl_VertexID;

in?int?gl_InstanceID;

?gl_VertexID是當前被處理的頂點的索引。對于array?rendering,它是當前頂點在數組中的索引;對于indexed?rendering,它是從element?buffer中獲取的索引值。

gl_InstanceID指出了當前被渲染的instance,當使用instancedrendering的時候。

2)頂點著色器輸出

out?gl_PerVertex

{

??vec4gl_Position;

??floatgl_PointSize;

??float?gl_ClipDistance[];

}

為輸出定義了一個block接口。

gl_Position是當前頂點的輸出坐標(如果沒有幾何著色器,是在clip-space)。指定這個值并不是必須的。但是不指定可能會導致意想不到的結果。如果你使用轉換反饋或者是關閉了光柵化,或者是使用采用用戶定義輸出產生坐標的幾何著色器,則可以忽略指定這個值。

gl_PointSize指定了點的寬度和高度。只有在繪制點的時候指定它的值才是必須的。

gl_ClipDistance允許著色器設置一個頂點到每個剪切平面的距離。正值表示頂點在剪切平面的里面(后面),而負值表示在剪切平面的外面(前面)。

3)幾何著色器輸入

in?gl_PerVertex

{

??vec4?gl_Position;

??float?gl_PointSize;

??float?gl_ClipDistance[];

}?gl_in[];

?

in?int?gl_PrimitiveIDIn;

gl_PerVertex包含了從前面的頂點著色器傳送過來的值。

注意:在幾何著色器中,他們有前綴gl_in,是一個block的數組。這個數組的大小依賴于用于這個幾何著色器的輸入的layout關鍵詞。用戶不用以一個特定的大小重新聲明這個block,系統會自動完成。可以用函數length()獲得其大小。

gl_PrimitiveIDIn是在這次渲染過程中的圖元數量,即先前被glDraw()調用所處理的圖元數量。

GLSL4.00及其以上版本還有以下定義:

in?int?gl_InvocationID;

幾何著色器可以被調用多次,這個值指定了當前調用。

4)幾何著色器輸出

out?gl_PerVertex

{

??vec4?gl_Position;

??float?gl_PointSize;

??float?gl_ClipDistance[];

};

?

out?int?gl_PrimitiveID;

out?int?gl_Layer;

gl_PerVertex和頂點著色器階段有相同的意義。

gl_PrimitiveID是圖元的用戶定義標識符。它直接被傳送到片斷著色器。如果片斷著色器使用了它的相關輸入但是幾何著色器又沒有指定它的值,那么它的值就是預定義的(如果沒有幾何著色器OpenGL會自動生成)。

gl_Layer用于渲染到layeredframebuffer?objects指定了特定圖元要被渲染到的layer

GLSL4.10還定義了如下輸出:

out?int?gl_ViewportIndex;

它代表了當前圖元要被采用得視口變換了裁剪測試。使用和gl_Layer類似。

5)片斷著色器輸入

in??vec4??gl_FragCoord;

in??bool??gl_FrontFacing;

in??float?gl_ClipDistance[];

in??vec2??gl_PointCoord;

in??int???gl_PrimitiveID;

gl_FragCoord包含了當前片斷的window-space坐標。如果入戶沒重載它,其Z分量是要寫入到深度緩沖區的。其W分量是1/Wclip(Wclip是頂點或幾何著色器的輸出gl_PositionW分量)

gl_FrontFacing:如果圖元從其前面觀看,則為真,否則為假。

gl_ClipDistance包含了頂點著色器的輸出,不過是依據圖元進行線性插值后的。

gl_PointCoord:點內部的位置,指定了片斷的位置。它是被歸一化了的值,位于[0,1](0,0)原點位置依賴于OpenGL的點坐標設置,默認是在左下角。

gl_PrimitiveID是幾何著色器的輸出,如果沒有使用幾何著色器,由OpenGL產生。代表了被光柵化的圖元索引。

GLSL4.00增加了一下輸入:

in??int???gl_SampleID;

in??vec2??gl_SamplePosition;

in??int???gl_SampleMaskIn[];

指定了像素區域sample的一些屬性。

6)片斷著色器全局變量

struct?gl_DepthRangeParameters

{

????float?near;

????float?far;

????float?diff;

};

uniform?gl_DepthRangeParameters?gl_DepthRange;

這個struct提供了對glDepthRange近、遠值的訪問。diff等于farnear的差。

7)片斷著色器輸出

out?float?gl_FragDepth;

它是要被寫入到深度緩沖區的值。也將被用于深度測試。片斷著色器不一定要指定它的值。它可能被gl_FragCoord.z.自動填充。需要注意的是:如果在某處指定,在其他地方也必須要進行指定。

GLSL4.00增加了如下輸出:

out?int?gl_SampleMask[];

當采用多重采樣渲染時,它會被寫入。

總結

以上是生活随笔為你收集整理的GLSL预定义变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩欧av| 五级毛片 | 国产一区二区视频免费观看 | 久久精选 | 绿帽视频| www.白白色| 久久激情小说 | 国产欧美三区 | 成人网在线看 | 免费看日韩 | 69pao| 成人免费高清在线观看 | 日韩精品四区 | 亚洲天堂2018av | 精品国产乱码久久久久久牛牛 | 亚洲黄色在线免费观看 | 女人扒开双腿让男人捅 | 阿的白色内裤hd中文 | av免费播放网站 | 伦hdwww日本bbw另类 | 色婷婷狠 | 日韩福利视频网 | 精品三级网站 | 欧美超逼视频 | 亚洲精品一区二区三区四区五区 | 久久网免费视频 | 一级黄色a级片 | 中国a一片一级一片 | 天堂网av中文字幕 | 9l视频自拍九色9l视频成人 | 成人免费黄 | 精品久久精品久久 | 乱子伦一区二区 | 一色桃子juy758在线播放 | 日韩欧美亚洲精品 | 亚洲自拍偷拍av | 中文字幕高清av | 91精品久| 国产视频黄色 | 日韩激情av在线 | 黄色永久免费网站 | 男人天堂网在线 | 手机天堂网 | 三浦理惠子av在线播放 | 国产欧美精品一区二区色综合朱莉 | 青青一区二区 | 成人福利视频在线 | 北条麻妃一区二区三区免费 | 好男人www在线视频 我们的2018在线观看免费高清 | 一区二区三区免费观看视频 | 中文字幕一区二区人妻 | 天天视频国产 | 激情国产视频 | 久久人人超碰 | 亚洲天堂一二三 | 色哟哟网站在线观看 | 六月婷婷久久 | 在线亚洲不卡 | 91直接看 | 久久影库 | 亚洲黄色一区二区三区 | 在线观看日本中文字幕 | 国产av国片偷人妻麻豆 | 国产精品一区麻豆 | 国产精品国产三级国产专区53 | 在线免费观看小视频 | 福利片第一页 | av片网| 免费亚洲视频 | 操丰满女人 | 伊人影音 | 久久久999精品 | 久久久久久五月天 | 欧美三级网 | brazzers欧美一区二区 | 尤物视频在线观看国产性感 | av高清在线免费观看 | 人人妻一区二区三区 | 国产一区二区精品在线 | 波多野结衣中文字幕在线播放 | 国产精品sm调教免费专区 | 亚洲综合免费观看高清完整版在线 | 毛片美女| 爱乃なみ加勒比在线播放 | 亚洲人视频在线观看 | 欧美一级免费视频 | 久久夜色精品 | 日韩欧美视频二区 | 黄色一级视频免费观看 | 日韩高清不卡一区 | 色图自拍偷拍 | 91精品国产色综合久久不卡蜜臀 | 亚洲乱码日产精品bd在线观看 | 粉嫩小泬无遮挡久久久久久 | 色老头一区二区三区 | 少妇aa| 亚洲午夜久久久久久久国产 | 色哟哟视频在线 | 亚洲社区在线 |