国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

通過OpenGL理解前端渲染原理(1)

企業動態
OpenGL,是一套繪制3D圖形的API,當然它也可以用來繪制2D的物體。

一、OpenGL

OpenGL,是一套繪制3D圖形的API,當然它也可以用來繪制2D的物體。OpenGL有一大套可以用來操作模型和圖片的函數,通常編寫OpenGL庫的人是顯卡的制造者。我們買的顯卡都支持特定版本的OpenGL。

下圖是用OpenGL做的旋轉的立方體。

[[272530]]

二、渲染原理

 

 

2.1 渲染管道

在OpenGL中,所有東西都在一個3D的空間里,而我們的屏幕和窗口都是2D的,所以OpenGL需要將3D的坐標轉換成2D的坐標,做這件事的是OpenGL中的渲染管道(graphics pipeline)。

渲染管道可以分成兩大部分:第一部分將3D坐標轉換成2D坐標;第二部分把2D的坐標轉換成實際的像素。

2.2 著色器

通常來說,渲染管道把一組3D坐標轉換成屏幕上帶有顏色的2D像素需要經過很多步。上一步的輸出作為下一步的輸入,所有步驟都是高度專一的,每步都有一個特定的函數,且可以很容易地并發執行。顯卡有數千個處理核心來快速處理渲染管道中的數據,而這些是在每個步驟中通過運行在GPU上的多個小程序來處理的,這些小的程序被稱之為程序著色器(shader)。

其中的一些著色器是可以配置的,開發者可以根據需求配置自己的著色器去替代已經存在的那些,這就讓我們能夠更自由和細粒度地控制渲染的過程。同時,因為它們運行在GPU上,又給我們保留了珍貴的GPU時間,在平時的開發中,我們也要充分利用GPU渲染來提高軟件性能。

著色器通常使用GLSL來寫,全稱是OpenGL Shading Language。

2.3 舉個例子

下圖展示了一個抽象的渲染管線中的步驟,其中藍色部分是我們可以注入自己的著色器。

通過OpenGL理解前端渲染原理(1)

通過上圖我們發現,要把頂點數據轉換成全渲染的像素要經過很多步,接下來我們對每一個步驟和代碼進行簡單的解釋。

我們在渲染管線中傳入一組可以組成三角形的3D坐標數據,這組數據即頂點數據。頂點數據是頂點的集合,而一個頂點是一個3D坐標的集合。

渲染管線的第一步是頂點著色器(Vertex Shader)。我們這里傳入的是一個簡單的頂點,頂點著色器可以讓我們做一些基礎的處理操作,比如頂點的屬性。

在初始裝配階段,也就是Shape Assembly階段,從頂點著色器中輸出的頂點會形成一個原始的形狀。本例中,輸出的頂點形成的是一個三角形。

從初始裝配階段到geometry shader階段,我們可以通過發散其他頂點來形成新的圖形,本例中形成了第二個三角形。

在Tessellation Shader階段,可以把上一階段給出的原型圖再分割成若干個小的原型圖。本例中,可以形成更多的三角形來創造一個更加平坦、順滑的環境。這么說可能難以理解,我們結合下圖來進一步闡述,這就是細分曲面著色器的作用。

通過OpenGL理解前端渲染原理(1)

細分曲面著色器的下一階段是光柵化階段(Rasterzation stage),在這一階段會對最終的原型和呈現在屏幕上的對應像素做一個映射,形成fragment,供下一階段的fragment shader使用。

Fragment shader最主要的使命是計算出一個像素的最終顏色,在這個階段我們可以使用OpenGL中一些高級的特效。通常fragment shader會包含3D界面的多個數據,包括燈光、陰影、顏色等等。

當所有對應的顏色都確定以后,最終的原型將會被傳入最后一個步驟,我們稱之為Alpha test and blending階段。這個階段會判斷相應的深度,比如一個物體可能在另一個物體的后面,那它可能采用其他的顏色;或者如果該物體被遮擋,可能會被裁掉。

如上文所述,我們可以看到整個渲染管線的步驟和邏輯是十分復雜的,這其中包含了很多個可以改變的步驟,但我們一般只操作Vertex Shader 和 fragment shader,其他的著色器我們會直接采用默認的。在實際的OpenGL編程中,我們至少需要定義一個Vertex Shader和Fragment shader。(需要說明的是,OpenGL 3.1之前的版本包含了固定管線,從3.1版本開始,固定管線從核心中刪掉了,因此我們必須使用著色器去工作)。

 

 

三、總結

 

 

本文為該系列文章的第一篇,先簡單介紹OpenGL的一些原理,后續文章中會添加新的代碼分析,包括著色器(Shader)、紋理(Textture)、變形(transformation)、坐標系統(Coordinate systems)、相機(Camera)等。

【本文是51CTO專欄機構宜信技術學院的原創文章,微信公眾號“宜信技術學院( id: CE_TECH)”】

戳這里,看該作者更多好文

責任編輯:張燕妮 來源: 宜信技術學院
相關推薦

2014-07-07 09:44:05

前端前端渲染

2012-06-06 15:57:29

Web

2012-06-01 10:28:54

Web

2014-06-18 10:34:41

Android字體渲染器OpenGL ES

2017-04-12 11:46:46

前端瀏覽器渲染機制

2022-06-09 15:53:16

移動端渲染GPU

2020-11-06 15:20:45

瀏覽器前端架構

2011-06-22 10:45:19

JAVA

2010-03-18 08:59:29

JVM字符串JVM常量池

2016-12-08 10:57:08

渲染引擎前端優化

2017-05-03 17:00:16

Android渲染機制

2017-07-19 15:25:16

iOS開發ARKitOpen GL

2017-07-04 12:26:14

ARARKit

2023-02-28 09:07:18

ChatGPTAI

2017-03-08 08:31:48

瀏覽器渲染路徑

2013-05-23 16:01:56

瀏覽器

2013-06-14 13:56:29

瀏覽器渲染原理

2019-08-20 14:01:22

HTTPSSSL協議

2021-07-05 07:51:43

JVM底層Python

2021-07-12 09:45:36

NameServer 核心Conusmer
點贊
收藏

51CTO技術棧公眾號

国产乱xxⅹxx国语对白| 亚洲天堂av线| 麻豆亚洲一区| 99re热精品视频| 亚洲男人天堂九九视频| 国产理论在线观看| 色综合天天在线| 波多野结衣50连登视频| 国产一区二区免费视频| 欧美二级三级| 亚洲看片一区| 91深夜福利视频| 日韩三级在线| 国产精品日韩电影| 日韩美女精品| 91精品国产九九九久久久亚洲| 国产福利91精品一区二区| 亚洲精品久久久久中文字幕二区| 搞黄网站在线观看| 欧美精品亚洲一区二区在线播放| 电影天堂爱爱爱爱| 久久影视电视剧免费网站清宫辞电视| 精品国产丝袜高跟鞋| 亚洲女厕所小便bbb| 伊人再见免费在线观看高清版 | 全色精品综合影院| 一区二区三区小说| 天海翼女教师无删减版电影| 亚洲一二三专区| 午夜影院在线免费观看| 在线观看国产精品网站| 黄网站免费在线播放| 精品久久99ma| 精品国产第一福利网站| 久久国产日韩| 99re视频在线| 日韩国产欧美三级| www.在线观看av| 中文字幕精品一区| 天堂影视av| 欧美日本在线视频| 亚洲男人av| 国内精品400部情侣激情| 红桃视频在线观看一区二区| 97人摸人人澡人人人超一碰| 国产日韩欧美三级| 日韩一区二区高清视频| 欧美国产精品一区二区| 四虎影院在线域名免费观看| 91精品国产综合久久久蜜臀图片| av在线最新| 久久青草福利网站| 影音先锋日韩在线| 日本一本草久p| 亚洲欧美日韩在线| 成人区精品一区二区不卡| 上原亚衣av一区二区三区| 亚洲精华一区二区三区| 久久66热这里只有精品| 成人激情视频网站| 最新在线你懂的| 日韩精品视频在线| 六月丁香久久丫| 精品中文字幕一区| 久久综合999| 92国产在线视频| 美女性感视频久久久| 中文字幕亚洲综合久久五月天色无吗''| 麻豆视频成人| 国产亚洲一区二区三区四区 | 青草热久免费精品视频| 99在线观看免费视频精品观看| 免费网站永久免费观看| 午夜av电影一区| 欧美v亚洲v综合v国产v仙踪林| 国产综合久久久久| 国产精品一区专区| 免费成人av电影| 日韩精品一级中文字幕精品视频免费观看 | 亚洲女同女同女同女同女同69| 一区二区三区视频国产日韩| 日韩一区二区三区在线视频| 91精品啪在线观看国产爱臀| 欧美日韩国产精品一区二区| 国产精品黄色在线观看| 金瓶狂野欧美性猛交xxxx| 97热在线精品视频在线观看| 久久精品卡一| 天堂av免费观看| 日韩视频在线免费| 久久综合九色| 三级在线观看| 91wwwcom在线观看| 成人免费视频视频在线观看免费| 超碰免费97在线观看| 97国产精品视频| 国产一区二区按摩在线观看| sese一区| 国产主播欧美精品| 国产免费成人在线视频| 免费福利视频一区二区三区| 久久青青草原一区二区| 午夜精品成人在线视频| 欧美三级电影在线| 国产精品又粗又长| 亚洲国产精品va在线| 99国产精品视频免费观看一公开| 免费av片风间由美在线| 久久中文字幕一区| 国产乱码一区二区三区| 日本片在线看| 久久99精品国产一区二区三区| 午夜日韩在线观看| 中文字幕伦av一区二区邻居| 免费午夜视频在线观看| 在线日韩日本国产亚洲| 精品亚洲aⅴ乱码一区二区三区| 91吃瓜网在线观看| 亚洲影院色无极综合| 五月激情六月综合| 美女精品一区最新中文字幕一区二区三区 | 国产亚洲欧美日韩日本| 无码小电影在线观看网站免费| 国产伦精品一区二区三区四区视频| 一区二区三区在线高清| 欧美电影完整版在线观看| 日韩精品一区二区三区不卡| 日韩在线视频国产| av在线不卡观看免费观看| 日韩一区二区三区免费| 中文字幕一区二区三区最新| 日韩成人av一区| 国产91精品一区二区麻豆亚洲| 激情开心成人网| 热99这里只有精品| 九九九久久久久久| 国产日韩亚洲欧美综合| 亚洲精品18| 免费av高清| 成人亚洲欧美一区二区三区| 91官网在线观看| 亚洲尤物精选| 69av成人| 日韩毛片在线免费看| 欧美精品videosex性欧美| 国产午夜精品美女毛片视频| 日韩av影院| 婷婷亚洲一区二区三区| 久久久国产精品一区二区三区| 精品久久久久久亚洲综合网| 丁香婷婷综合激情五月色| 伊人久久大香线蕉综合影院首页| 免费毛片小视频| 日本亚洲欧洲色α| 色成年激情久久综合| 视频一区二区三区中文字幕| 欧美男男激情videos| 欧美精品一区二区三区免费播放| 午夜精品一区二区三区在线播放| 五月综合激情日本mⅴ| 性欧美videos另类喷潮| 精品乱码一区二区三区四区| 免费观看的av网站| 欧美13一14另类| 久色乳综合思思在线视频| 亚洲高清在线视频| 青青国产91久久久久久| 警花av一区二区三区| 在线免费国产视频| 亚洲第一导航| 66m—66摸成人免费视频| 欧美日韩中文在线| 日韩激情在线观看| 中文字幕区一区二区三| 国产三级在线| www.av毛片| 91精品国产综合久久香蕉最新版 | 国产无套粉嫩白浆在线2022年| 久久伊人一区二区| 中文字幕视频在线免费欧美日韩综合在线看| 国产日韩欧美综合一区| 欧美成人高清| 成人在线视频免费| 香港日本韩国三级| 一本久道久久综合| 97视频免费在线看| 日韩欧美色综合网站| 国产精品婷婷午夜在线观看| 亚洲黄页一区| 最新国产一区二区| 在线观看h网| 能在线观看av网站| 在线观看污视频| 91在线无精精品一区二区| 亚洲欧洲日韩国产| 一本久道久久综合中文字幕 | 国产精品久久a| 性欧美精品一区二区三区在线播放 | 3p视频在线观看| 少妇一级淫免费放|