五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

OpenGL實例教程04:著色器

2023-02-16 11:36 作者:阿西拜-江西  | 我要投稿

什么是著色器?

著色器(Shader)是用來實現(xiàn)圖像渲染的,用來替代固定渲染管線的可編輯程序。

OpenGL可編程管線的大致流程

頂點處理器負責(zé)(對通過流水線的每個頂點)執(zhí)行頂點著色器。頂點的數(shù)量由調(diào)用draw時的參數(shù)決定。頂點著色器不知道被渲染基元的拓撲結(jié)構(gòu)。此外,不能在頂點處理器中丟棄頂點。每個頂點只進入頂點處理器一次,經(jīng)過變換后繼續(xù)向下傳遞。

幾何處理器:即幾何圖形處理器,負責(zé)執(zhí)行幾何著色器,輸入是一個圖元的一組頂點幾何著色器可以改變圖形的拓撲結(jié)構(gòu),即就是將一個圖元變換為另一個完全不同的圖元(例如:改變頂點數(shù)量),或者修改圖元的位置。

裁剪器:它將圖元剪切到標準化框(-1,1之間的立方體)中。它還將它們剪切到近Z和遠Z面(離“攝像頭”太近,或太遠的地方)。還支持自定義裁剪面。

光柵器在裁剪器中幸存的頂點將映射到屏幕空間坐標。光柵化器根據(jù)它們的拓撲將它們渲染到屏幕上。例如,對于三角形來說,這意味著找出所有在三角形內(nèi)的像素。對于每個三角形內(nèi)的像素,光柵化器調(diào)用片段處理器(負責(zé)執(zhí)行片段著色器。在這里,你可以選擇通過從紋理中采樣或使用任何你想要的技術(shù)來確定像素的顏色。

C++ 源碼中的著色器管理(OpenGL API調(diào)用)

著色器與C/?C++程序非常相似,生成一個在GPU上運行的著色器程序,就是創(chuàng)建一條虛擬的流水線:

  • 首先,編寫著色器文本,并在程序中使用它(將文本包含在源代碼本身的字符數(shù)組中,或者通過外部文本文件加載到字符數(shù)組中)。

  • 然后一個接一個地將著色器編譯成著色器對象。

  • 之后,將這些著色器鏈對象接到單個程序中,并將其加載到GPU中。

著色器源碼

著色器的編寫采用的是GLSL(GL Shading Language),類似C語言。生成的程序?qū)⒃趫D形卡的GPU (Graphic Processor Unit圖形處理單元)上執(zhí)行。

  • 頂點著色器

    頂點著色器是流水線上的第一道工序,主要負責(zé)導(dǎo)入并處理頂點數(shù)據(jù)。

  • 片段著色器

    片段著色器的工作是確定片段(像素)的顏色。


C++ 代碼展示:

運行效果:


OpenGL實例教程04:著色器的評論 (共 條)

分享到微博請遵守國家法律
赤壁市| 崇义县| 桂东县| 永川市| 门源| 长兴县| 彰武县| 马关县| 遂昌县| 家居| 浏阳市| 栖霞市| 哈尔滨市| 崇礼县| 奉节县| 华坪县| 张家川| 宁安市| 旬阳县| 唐山市| 朝阳市| 金湖县| 沾化县| 西林县| 博客| 宁夏| 合阳县| 巫溪县| 榕江县| 尼木县| 益阳市| 和静县| 长汀县| 榆中县| 崇阳县| 枣庄市| 屏山县| 肇州县| 太原市| 伊春市| 财经|