欧美精品在线一区二区三区_亚洲女同精品视频_日韩一区免费_国产欧美久久久精品免费_国产这里只有精品_僵尸再翻生在线观看_久久99精品国产一区二区三区_亚洲免费一区二区_女教师淫辱の教室蜜臀av软件_中文字幕国产一区二区

3D to H5工作流應(yīng)用手冊:理論篇

2022-1-23    濤濤

前言

設(shè)計(jì)師需求中 3D 視覺平移到互動(dòng) H5 中的項(xiàng)目越來越多,three.js 和 PBR 工作流的結(jié)合卻一直沒有被系統(tǒng)化地整理。

和各位前端神仙一起做項(xiàng)目,也一起磕磕碰碰出了愛與痛的領(lǐng)悟。小小總結(jié),希望 3D 去往 H5 的道路天塹變通途。

本手冊主要分為兩大部分:

Part 1 理論篇:主要讓設(shè)計(jì)師了解計(jì)算機(jī)到底是如何理解和實(shí)時(shí)渲染我們設(shè)計(jì)的 3D 項(xiàng)目,以及 three.js 材質(zhì)和預(yù)期材質(zhì)的對應(yīng)關(guān)系。

Part 2 實(shí)踐篇:基于 three.js 的實(shí)現(xiàn)性,提供場景、材質(zhì)貼圖的制作思路、以及 gltf 工作流,并動(dòng)態(tài)討論項(xiàng)目常常遇到的還原問題。

本文主要面向剛接觸 3D 圖形學(xué)的設(shè)計(jì)師,僅截取了最常用的理論知識(shí)和大家一起學(xué)習(xí);部分涉及技術(shù)美術(shù)或計(jì)算機(jī)圖形學(xué)的描述可能不甚嚴(yán)謹(jǐn),希望大家多多交流討論哈。

其實(shí)無論 H5 開發(fā)用到的是哪種 webGL,設(shè)計(jì)相關(guān)的材質(zhì)制作基本還是基于 PBR 思路進(jìn)行的,所以這邊建議各位親可以先去閱讀一下 Substance 官方寶冊《The PBR Guide》。

Part 1 理論篇

設(shè)計(jì)師在還原 3D 類型的互動(dòng) H5 項(xiàng)目的時(shí)候一定想過這個(gè)宇宙終極問題:為什么 H5/Web 實(shí)現(xiàn)的 3D 效果和 C4D 里渲染出來的差異那么大?

其實(shí)這是我們對實(shí)時(shí)渲染引擎(UE、Unity、three.js 等)和離線渲染工具(Redshift、Octane、Vray 等)的差異存在誤解:一是離線渲染工具是基于真實(shí)光照環(huán)境來計(jì)算每顆像素的著色,實(shí)時(shí)渲染如果要實(shí)現(xiàn)這種效果需要耗費(fèi)更多硬件基礎(chǔ)和算力去模擬光照(沒個(gè)好顯卡都開不動(dòng)光追)。

雖然 UE5 的實(shí)時(shí)渲染技術(shù)和硬件兼容性已經(jīng)讓大家大吃一驚,但在實(shí)際項(xiàng)目,尤其是需要兼容低端設(shè)備的 H5 來說,渲染能力還是相對有限的。二是對于游戲或 H5 互動(dòng)網(wǎng)站實(shí)際應(yīng)用來說,流暢的互動(dòng)體驗(yàn)優(yōu)先級(jí)往往高于畫面精細(xì)度,所以犧牲視覺保性能也是常見情況。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 1-Octane 離線渲染效果 vs three.js 實(shí)時(shí)渲染效果:材質(zhì)細(xì)節(jié)、全局光照及投影、以及抗鋸齒表現(xiàn)差距明顯

當(dāng)實(shí)時(shí)渲染效果與設(shè)計(jì)預(yù)期差距過大時(shí),設(shè)計(jì)師能多了解一些基礎(chǔ)的計(jì)算機(jī)圖形學(xué),也許就能更好地和開發(fā)同學(xué)商討性價(jià)比更高的視覺實(shí)現(xiàn)和資源優(yōu)化方案(以及更多 Battle 的籌碼)。

1. 著色器與著色算法差異(硬核預(yù)警)

首先我們要知道計(jì)算機(jī)之所以能在 2D 屏幕上畫出 3D 的圖像,是因?yàn)橛兄鳎⊿hader)在繪制,它將我們?nèi)S空間里的模型與光照信息進(jìn)行轉(zhuǎn)換,并光柵化為二維圖像。在計(jì)算機(jī)圖形學(xué)中,著色器是用于對圖像的材質(zhì)(光照、亮度、顏色)進(jìn)行處理的程式。

常用的著色器分為四種:像素/片元著色器(Pixel/Fragment Shader)、頂點(diǎn)著色器(Vertex Shader)、幾何著色器(Geometry Shader)、細(xì)分曲面著色器(Tessellation Shader)。

像素/片元著色器與頂點(diǎn)著色器(Vertex Shader)在 webGL 處理過程中都有使用,頂點(diǎn)著色器先將模型中每個(gè)頂點(diǎn)的位置、紋理坐標(biāo)、顏色等信息進(jìn)行轉(zhuǎn)換裝配,再由片元著色器對 3D 信息光柵化并轉(zhuǎn)換成 2D 屏幕信息。(關(guān)于著色器差異,感興趣的同學(xué)可以直接跳到附錄查看。)

著色器是怎么把頂點(diǎn)中所帶有光照、紋理等信息轉(zhuǎn)換并重建在二維圖像的像素中呢?GPU 中是透過不同的著色算法來實(shí)現(xiàn)的。

一種是獲取每個(gè)三角形的插值(Interpolate)來實(shí)現(xiàn),這種方法稱作 Per Vertex Lighting,但是當(dāng)三角型很大的時(shí)候,插值往往不夠精準(zhǔn)。此時(shí)還可以引用另一種方法 Per Pixel Lighting,計(jì)算每個(gè)像素的光照信息,獲得更好的渲染效果,但是往往也帶來更大的計(jì)算量。

一般常見計(jì)算機(jī)圖形著色算法有三類:Flat Shading、Gouraud Shading、Phong Shading。這些算法雖然看起來和我們設(shè)計(jì)師沒啥關(guān)系,但事實(shí)上在后面了解 three.js 材質(zhì)時(shí),就會(huì)發(fā)現(xiàn)他們在呈現(xiàn)時(shí)的差異。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 2-Flat、Gouraud、Blinn-Phong 著色法比較 [ F1, ©?Stefano Scheggi ]

平直著色法 Flat Shading

這種著色法認(rèn)為模型中所有面都是平的,同一個(gè)多邊形上的任意點(diǎn)的法線方向都相同。著色時(shí),會(huì)優(yōu)先選擇多邊形的第一個(gè)頂點(diǎn)或三角形的幾何中心計(jì)算顏色。這種著色法實(shí)踐上的效果很像低面模型,也比較適合使用在高速渲染的場景。值得注意的是,這種著色法難以做出平滑高光效果。

高洛德平滑著色法 Gouraud Shading

這是一種平滑的著色方法,在著色時(shí)會(huì)先計(jì)算三角形每個(gè)頂點(diǎn)的光照特性,利用雙線插值去補(bǔ)齊三角形區(qū)域內(nèi)其他像素的顏色。這個(gè)著色法比起平直著色法增加了插值的細(xì)節(jié),而且也比 Phong 著色法渲染單個(gè)像素的光照特性的性能要高。

但是在渲染高光時(shí),可能會(huì)因?yàn)闊o法獲取精確的光照值而出現(xiàn)一些不自然的過渡(或 T 型連接容易被錯(cuò)誤繪制),此時(shí)可以考慮對模型進(jìn)行細(xì)分或使用漫反射材質(zhì)。

Phong 平滑著色法 Phong Shading

與 Gouraud Shading 不同的是,它會(huì)對頂點(diǎn)的法線進(jìn)行插值,并透過每個(gè)像素的法向量計(jì)算光照特性。這種做法能繪制出精致、精準(zhǔn)的曲面,但是計(jì)算量較大。Blinn-Phong 是 Phong 的進(jìn)階版,著色性能更好,且高光彌散更自然。

2. 基本光照模型 Illumination Model

簡單了解計(jì)算機(jī)如何繪制 3D 圖形后,再來看看它要如何具體理解我們所設(shè)計(jì)的 3D 場景。

3D 轉(zhuǎn)換成 2D,也就是 3D 柵格化的過程中,每一個(gè)像素的顏色是需要基于它所在的環(huán)境計(jì)算出來,而基于被渲染物體表面某個(gè)點(diǎn)的光強(qiáng)度計(jì)算模型就被稱為光照明模型(Illumination Model)或光照模型(Light Model),透過計(jì)算光照模型所得到表面位置對應(yīng)像素顏色的過程被稱為表面繪制(Surface Render)。

*請注意這里說的光照模型并不是指設(shè)計(jì)師理解的 3D 立體模型,而是指模型對象表面光照效果的數(shù)學(xué)計(jì)算模型。

影響光照模型的因素有兩大方面,一是本身給渲染物體材質(zhì)設(shè)置的各種光學(xué)特性(顏色反射系數(shù)、表面紋理、透明度等),二是場景中光源光及環(huán)境光(場景中各個(gè)被照明對象的反射光)。

傳統(tǒng)光照模型都是對漫反射和鏡面反射的理想化模擬,如果要還原基于真實(shí)物理世界的效果,光照模型需要遵循能量守恒定律:一個(gè)物體能反射的光必然少于它接受的光。在實(shí)踐層面則表現(xiàn)為,一個(gè)漫反射更強(qiáng)且更粗糙的物體會(huì)反射更暗且范圍更大的高光,反之亦反。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 3-基于 PBR 的光照模型需要遵循能量守恒定律 [ F2, ©?Joe Wilson ]

光照模型與著色組合在不同的渲染需求下也會(huì)有不同的應(yīng)用:

  • 真實(shí)感渲染(Photorealistic Rendering):目的是基于真實(shí)物理世界對 3D 場景進(jìn)行仿真還原。
  • 非真實(shí)感渲染(Unphotorealistic Rendering):也被成為風(fēng)格化渲染(Stylistic Rendering),會(huì)更抽象化地對模型進(jìn)行重繪。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 4-真實(shí)感渲染及非真實(shí)感渲染對比 [ F3, ©?Autodesk ]

真實(shí)感渲染 Photorealistic Rendering

考慮到真實(shí)感渲染對硬件的依賴,目前 webGL 中使用的一般以簡單的局部光照模型為主(只計(jì)算光源對物體的光照效果,不計(jì)算物體間的相互影響,我們看到的“假反射”通常透過貼圖來進(jìn)行模擬),根據(jù)反射形態(tài),經(jīng)典的光照模型有下列幾種:

  • Lambert 漫反射模型:

這種模型的粗糙表面(如塑料、石材等)會(huì)將反射光從各個(gè)方向反射出去,而這種光反射也稱為漫反射。理想的漫反射體我們通常稱作郎伯反射體(Lambertian Reflectors),也就是我們熟悉的橡膠材質(zhì)。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 5-漫反射模型與其他光照模型對比 [ F4, ©?ViroCore ]

  • Phong 鏡面反射模型:

這是一種以實(shí)驗(yàn)及觀察為合成基礎(chǔ)的非物理模型。它的表面反射同時(shí)結(jié)合了粗糙表面漫反射和光滑表面鏡面反射,但 Phong 模型在高光處的表現(xiàn)有過渡瑕疵。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 6-Phong 鏡面反射模型視覺構(gòu)成 [ F5 ]

  • Blinn–Phong 模型:

是在 OpenGL 和 Direct3D 里默認(rèn)的著色模型,一種調(diào)優(yōu)后的非物理的 Phong 模型,頂點(diǎn)間的像素插值使用 Gouraud 著色算法,比 Phong 著色算法性能更好,而且高光效果也更平滑。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 7-Phong 及 Blinn-Phong 鏡面反射模型對比 [ F6 ]

  • Cook-Torrance/GGX 光照模型:

如果你用過 C4D 的默認(rèn)渲染器,那么一定在材質(zhì)的反射通道設(shè)置中見過它倆。

這是相對高級(jí)的光照模型,不同于 Phong 和 Blinn-Phong 模型僅僅對漫反射及鏡面反射進(jìn)行理想化模擬,這兩個(gè)光照模型基于不同物理材質(zhì)加入了微表面(Microfacet)的概念,并考慮到表面粗糙度對反射的影響,對鏡面反射進(jìn)行了調(diào)優(yōu),使得高光的長尾彌散更加自然,也是目前 PBR 渲染管線(Unity、UE)中較常用的光照模型。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 8-Phong、Blinn-Phong 與 GGX 鏡面反射模型對比 [ F7, ©?ridgestd ]

  • 次表面散射模型 Subsurface scattering/SSS:

終于有一個(gè)設(shè)計(jì)師們常見的概念了。次表面散射是指光穿透不透明物體時(shí)(皮膚、液體、毛玻璃等)的散射現(xiàn)象。現(xiàn)實(shí)生活中,大部分物體都是半透明的,光會(huì)先穿透物體表面,繼而在物體內(nèi)被吸收、多次反射、然后在不同的點(diǎn)穿出物體。以皮膚為例,只有大概 6%的反射是直接反射,而 94%的反射都是次表面散射。

BSSRDF(雙向次表面反射分布函數(shù))是用于描述入射光在介質(zhì)內(nèi)部的光照模型,目前也被應(yīng)用在最新的虛擬角色皮膚實(shí)時(shí)渲染中;但由于 SSS 材質(zhì)的計(jì)算需要依賴深度/厚度數(shù)據(jù),所以 webGL 對這種高級(jí)光照效果的還原程度還是相對有限的。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 9-Unity 中模擬次表面散射光照模型效果 [ F8, ©?Alan Zucconi ]

非真實(shí)感渲染 Unphotorealistic Rendering

也就是我們常說的 3 渲 2,非寫實(shí)渲染風(fēng)格也是從人們對 3D 場景套以 2D 繪畫或自然媒體材質(zhì)需求而演化過來的。因此非寫實(shí)渲染技術(shù)實(shí)際上是不同光照模型+不同著色處理共同作用的風(fēng)格化輸出,目前也被大量應(yīng)用在動(dòng)畫及游戲中,像《英雄聯(lián)盟:雙城之戰(zhàn)》《蜘蛛俠:平行宇宙》都是頂級(jí)三渲二大作。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 10-在不同通道中混合應(yīng)用真實(shí)感渲染及非真實(shí)感渲染效果 [ F9, ©?Polygon Runway]

  • Cel Shading/Toon Shading:

卡通著色,一種最常見的以 3D 技術(shù)模擬扁平風(fēng)格的著色形式,通常以極簡的顏色、漸變及明確的外框線等漫畫元素作為風(fēng)格特征。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 11-Blender 中不同類型的 Toon Shader 效果 [ F10, ©?Blendernpr]

日本創(chuàng)意編程師 Misaki Nakano 制作了一個(gè)非常有趣的 Toon Shading H5 互動(dòng)頁面,大家可以體驗(yàn)一下不同著色形態(tài)下非常模型的視覺表現(xiàn)。點(diǎn)擊體驗(yàn): https://mnmxmx.github.io/toon-shading/dst/index.html

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 12-Misaki Nakano 的 Toon Shader 互動(dòng)網(wǎng)站 [ F11, ©?Misaki Nakano]

  • Customized Shading:

目前越來越多渲染器可支持設(shè)計(jì)師及工程師根據(jù)項(xiàng)目需求對著色進(jìn)行定制化處理,以產(chǎn)出更具風(fēng)格化和藝術(shù)化的著色效果。例如工業(yè)界插畫常用的冷暖著色(Gooch Shading),以及更具繪畫質(zhì)感的素描著色(Hatching)及油畫水墨畫等自然媒體著色,都已經(jīng)深入到了我們?nèi)粘5膭?chuàng)作之中。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 13-在 Unity 中,基于真實(shí)感渲染的貼圖效果與 NPR 水墨風(fēng)格化著色效果對比 [ F11, ©?鄧佳迪]

3. Three.js 材質(zhì)著色對比

說完真實(shí)感與非真實(shí)感渲染差異后,我們再來看看 Three.js 中的材質(zhì)。

和許多渲染引擎一樣,除了原生材質(zhì)外,webGL 的材質(zhì)和著色都是可以根據(jù)需求進(jìn)行定制的,但這往往會(huì)也帶來較高的開發(fā)成本及兼容性風(fēng)險(xiǎn)。考慮到 H5 項(xiàng)目的實(shí)際應(yīng)用場景,下表羅列了 Three.js 原生材質(zhì)的對比,包含了材質(zhì)特性優(yōu)勢、貼圖差異及適用場景,大家可以基于項(xiàng)目需求快速選擇并混合使用:

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 15 – three.js 材質(zhì)對比表

4. 色彩描述與管理 Color Space

雖然著色、光照模型以及材質(zhì)渲染對 3D 表現(xiàn)有著最為直觀的影響,但 3D 工作流仍有一個(gè)隱秘而關(guān)鍵的環(huán)節(jié)——色彩管理。

真實(shí)世界中按照物理定律,如果光的強(qiáng)度增加一倍,那么亮度也會(huì)增加一倍,這是線性的關(guān)系。理想狀態(tài)下,像素在顯示屏上的亮度也應(yīng)為線性關(guān)系,才能符合人眼對真實(shí)世界的觀察效果(如圖 b:橫坐標(biāo)為像素的物理亮度,縱坐標(biāo)為像素顯示時(shí)的實(shí)際亮度)。

但是顯示器的成像由于電壓的影響,導(dǎo)致輸出亮度與電壓的關(guān)系是一個(gè)亮度等于電壓的 1.7-2.3 次冪的非線性關(guān)系,這就導(dǎo)致了當(dāng)電壓線性變化時(shí),亮度的變化在暗處轉(zhuǎn)換時(shí)變慢,如果顯示器不經(jīng)過矯正,暗部成色也會(huì)整體偏暗(如圖 c)。目前大多數(shù)顯示器的 Gamma 值約為 2.2,所以也可以理解 Gamma2.2 是所有顯示器自帶的一個(gè)遺傳病。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 15-紅色上曲線=Gamma0.45=sRGB Space;綠色下曲線=Gamma2.2=顯示器真實(shí)成像缺陷;藍(lán)色斜線=Gamma1.0=Linear Space 真實(shí)物理世界線性關(guān)系

為了矯正顯示器的非線性問題(從圖 c 校正回圖 b),我們需要對它進(jìn)行一個(gè) 2.2 次冪的逆運(yùn)算(如圖 a),在數(shù)學(xué)上,這是一個(gè)約 0.45 的冪運(yùn)算(Gamma0.45)。經(jīng)過 0.45 冪運(yùn)算,再由顯示器經(jīng)過 2.2 次冪輸出,最后的顏色就和實(shí)際物理空間的一致了,這套校正的操作就是伽馬校正(Gamma Correction)。

而我們常見的 sRGB 就是 Gamma0.45 所在的色彩空間,是 1996 由微軟與惠普共同開發(fā)的標(biāo)準(zhǔn)色彩空間。當(dāng)照片素材一開始儲(chǔ)存成 sRGB 空間,相當(dāng)于自帶一個(gè) Gamma0.45 的遺傳病抗體,當(dāng)它被顯示器顯示時(shí),就自動(dòng)中和了顯示器 Gamma2.2 的缺陷,從而顯示出與物理世界相符的亮度。

另一個(gè)校正原因是因?yàn)槿搜墼诮邮芄饩€時(shí)的敏感度也不是線性的,人對于暗部的感知更敏感,對高亮區(qū)域感知較弱,而且人眼感知光強(qiáng)度與光的物理強(qiáng)度也剛好是對數(shù)關(guān)系。為了在暗部呈現(xiàn)更多人眼可感知的細(xì)節(jié),Gamma0.45 的色彩空間中(如圖 a),像素的實(shí)際亮度也會(huì)高于它的物理亮度。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 16-人眼感知光強(qiáng)度與發(fā)射光真實(shí)物理強(qiáng)度對比

上面那一大段確實(shí)有點(diǎn)繞,但也就說回來為什么建議渲染時(shí)使用線性空間(Linear Space)了。因?yàn)樵谟?jì)算機(jī)圖形中,著色器的運(yùn)算基本上都是基于物理世界的光照模型來保證渲染真實(shí)性的,如果模型的紋理輸入值是非線性的(sRGB),那么運(yùn)算的前提就不統(tǒng)一,輸出的結(jié)果自然就不那么真實(shí)了。

而在大多數(shù)工作流及渲染軟件中,大部分貼圖資源都是默認(rèn)輸出 sRGB 的(設(shè)計(jì)師作圖環(huán)境一般也在 sRGB,所見即所得),而法線貼圖、光線貼圖等紋理(純數(shù)值類紋理,只用于計(jì)算)又是 Linear 的,這個(gè)部分就需要我們根據(jù)渲染引擎本身的特性,來判斷是否需要對不同的貼圖進(jìn)行不同的“去 Gamma 化”處理了(WebGL、Unity、Octane 等)。

將所有貼圖進(jìn)行去 Gamma 化,統(tǒng)一為 Linear 空間后,再在渲染輸出時(shí)由引擎統(tǒng)一進(jìn)行 Gamma 校正,這個(gè)時(shí)候在顯示屏里顯示的就是接近真實(shí)世界的效果了。

更多色彩空間的實(shí)際效果比較,大家可以看下 Unity 的文檔:《Linear/Gamma 渲染比較》:https://docs.unity3d.com/Manual/LinearRendering-LinearOrGammaWorkflow.html

回到 H5 所用的 Three.js,它的著色器計(jì)算也是默認(rèn)在 Linear 空間,如果最終渲染時(shí)不轉(zhuǎn)化為 sRGB,在設(shè)備顯示時(shí)可能會(huì)造成色彩失真。在 three.js 中色彩管理的工作流會(huì)根據(jù)導(dǎo)入模型 Asset 的差異而有所不同,如果貼圖與模型是分別導(dǎo)入場景,則建議可嘗試以下流程:

1. 輸入貼圖數(shù)據(jù) sRGB to Linear: 含色彩的貼圖(基礎(chǔ)材質(zhì)、環(huán)境、發(fā)光)設(shè)編碼為 sRGB(texture.encoding = sRGBEncoding),或?qū)秩驹O(shè)置 renderer.gammaInput 設(shè)為 True,可將原為 sRGB 的貼圖轉(zhuǎn)換為 Linear,而原純數(shù)值類貼圖(法線、凹凸等)仍舊保持 Linear;這一操作可保證貼圖輸入數(shù)據(jù)的正確性與統(tǒng)一性。

2. 刷新材質(zhì):當(dāng)材質(zhì)編碼類型被修改后,需要設(shè)置 Material.needsUpdate 為 True,以重新編譯材質(zhì)。

3. 輸出渲染 Linear to sRGB: 校正渲染輸出值的 Gamma:

renderer.gammaOutput = true; renderer.gammaFactor = 2.2;以供顯示屏正確顯色。

《Part1-理論篇》就先告一段落啦,如果你偶發(fā)失眠,建議可以反復(fù)咀嚼延伸閱讀的內(nèi)容。

《Part2-實(shí)踐篇》會(huì)繼續(xù)完善 three.js 場景、材質(zhì)貼圖的制作思路、以及 gltf 工作流,并動(dòng)態(tài)討論項(xiàng)目常常遇到的還原問題。

2022,咱們需求再見。

附錄

1. 著色器差異

像素著色器 Pixel Shader

也稱為片元/片段著色器(Fragment Shader), 為二維著色器。它記錄了每一個(gè)像素的顏色、深度、透明度信息。最簡單的像素著色器可用于記錄顏色,像素著色器通常使用相同的色階來表示光照屬性,以實(shí)現(xiàn)凹凸、陰影、高光、透明度等貼圖。同時(shí),他們也可以用來修改每個(gè)像素的深度(Z-buffering)。

但是在 3D 圖像中,像素著色器可能無法實(shí)現(xiàn)一些復(fù)雜的效果,因?yàn)樗荒芸刂篇?dú)立的像素而并不含有場景中模型的頂點(diǎn)信息。不過,像素著色器擁有屏幕的坐標(biāo)信息,可以依據(jù)屏幕或鄰近像素的的材質(zhì)進(jìn)行采樣并增強(qiáng),例如,Cel Shader 的邊緣強(qiáng)化或一些后期的模糊效果。

頂點(diǎn)著色器 Vextex Shader

是最常見的 3D 著色器,他記錄了模型每個(gè)頂點(diǎn)的位置、紋理坐標(biāo)、顏色等信息。它將每個(gè)頂點(diǎn)的 3D 位置信息轉(zhuǎn)換成 2D 屏幕坐標(biāo)。頂點(diǎn)著色器可以處理位置、顏色、紋理的坐標(biāo),但是無法增加新的頂點(diǎn)。

幾何著色器 Geometry Shader

是最近新興的著色器,在 Direct3D 10 和 Open GL3.2 中被引用。這種著色器可以在圖元外生成新的頂點(diǎn),從而轉(zhuǎn)換成新的圖元(例如點(diǎn)、線、三角等),而優(yōu)勢也是在于可以直接在著色中增加模型細(xì)節(jié),減低 CPU 負(fù)擔(dān)。集合著色器的常用場景包括點(diǎn)精靈(Point Sprite)生成(粒子動(dòng)畫),細(xì)分曲面,體積陰影等。

細(xì)分曲面著色器 Tessellation Shader

在 OpenGL4.0 和 Direct3D 11 中出現(xiàn),它可以在圖元內(nèi)鑲嵌更多三角體。為傳統(tǒng)模型新增了兩個(gè)著色步驟(一是細(xì)分控制著色,又稱為 Hull Shader,二是細(xì)分評(píng)估著色,又稱為 Domain Shader),兩者結(jié)合可以讓簡單的模型快速獲得細(xì)分曲面。(例如,含細(xì)分曲面效果的模型加上置換貼圖就可以獲得極其逼真細(xì)膩的模型)

2. 一些術(shù)語的簡單理解

GL: Graphics Library, 圖形函數(shù)庫。

webGL:Web Graphics Library,Html 5 可接入的 3D 繪圖協(xié)議/函數(shù)庫,可以為 H5 Canvas 提供 3D 渲染的各類 API。

Z-Buffering:深度緩沖,3D 圖像在渲物體的時(shí)候,每一個(gè)生成的像素的深度會(huì)存儲(chǔ)在緩沖區(qū)中。如果另一個(gè)物體也在同一個(gè)像素中產(chǎn)生渲染結(jié)果,那么 GPU 會(huì)比較兩個(gè)物體的深度,優(yōu)先渲染距離更近的物體,這個(gè)過程叫做 Z-Culling。當(dāng)兩個(gè)物體靠很近的時(shí)候(16-bit),可能會(huì)出現(xiàn) Z-Fighting,也就是交疊閃爍的現(xiàn)象,使用 24 或 32bit 的 Buffer 可以有效緩解。

Rendering Pipeline:渲染管線/渲染流水線/像素流水線,為 GPU 的處理工作流,是 GPU 負(fù)責(zé)給圖形配上顏色的專門通道。管線越多,畫面越流暢精美。

硬核干貨!3D to H5工作流應(yīng)用手冊:理論篇

圖 17-渲染管道細(xì)節(jié)工作流 [ F12 ]

Rasterization:光柵化/點(diǎn)陣化/柵格化,就是將管線處理完的圖元轉(zhuǎn)換成一系列屏幕可視的像素,過程包括:圖元拼裝(Primitive assembly)-三角形遍歷(Triangle Traversal)- Pixel Processing-Merging。

文章來源:優(yōu)設(shè) 作者:ISUX


分享此文一切功德,皆悉回向給文章原作者及眾讀者.

免責(zé)聲明:藍(lán)藍(lán)設(shè)計(jì)尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問題,請及時(shí)與我們?nèi)〉寐?lián)系,我們立即更正或刪除。

藍(lán)藍(lán)設(shè)計(jì)www.ocunn.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)


日歷

鏈接

個(gè)人資料

存檔

久久中文免费视频| 成人中文字幕合集| 91精品国产乱码久久久久久久| 亚洲精品高潮| 99精品国产九九国产精品| 美女高潮视频在线看| 91亚洲天堂| 日本免费在线观看| 黄色大片在线免费观看| 尤物网站在线| 宅男视频免费在线观看视频| 黄色aaa大片| 国产激情视频在线播放| 亚洲怡红院av| 国产精品久久久午夜夜伦鲁鲁| 伊人手机在线视频| 久久精品视频7| 亚洲 欧美 成人| 超碰中文字幕在线| 五月天婷婷久久| 黄色污污网站在线观看| 在线免费黄色av| 男人天堂视频网| 成人免费一区二区三区| 亚洲一区二区人妻| www.97超碰| 日韩在线视频第一页| 欧美熟妇交换久久久久久分类 | 亚洲色无码播放| 亚洲视频视频在线| 日韩在线观看视频免费| 理论片在线不卡免费观看| 久久久精品在线观看| 欧美猛交免费看| 欧美尤物巨大精品爽| 国产精品激情av在线播放| 国产在线观看一区二区三区| 97久久天天综合色天天综合色hd| 国产精品亚洲综合| 午夜免费电影一区在线观看| 性欧美18一19内谢| 男人操女人逼免费视频| 向日葵污视频在线观看| 国产亚洲精品成人a| 爱爱免费小视频| 国产高潮流白浆| 亚洲 欧美 视频| 91成人一区二区三区| 后进极品白嫩翘臀在线视频| 最近最新中文字幕在线| √新版天堂资源在线资源| 欧美人与牲禽动交com | 欧美日韩一区二区不卡| 亚洲国产精品视频在线观看| 亚洲视屏在线播放| 午夜精品一区二区三区在线播放| 国产成人精品在线播放| 成人欧美一区二区三区黑人免费| 日韩精品一区二区三区外面| 免费网站在线观看视频| 99久久99精品| 成人无码精品1区2区3区免费看 | 日韩精品在线电影| 欧美激情一区二区三区成人| 国产美女被下药99| 少妇免费毛片久久久久久久久| 国产精品国产三级国产专区51| 污污的网站18| 亚洲第一综合网| 国产精品久免费的黄网站| 亚洲免费黄色片| 在线激情网站| 成人在线高清| 欧美日韩在线播放视频| 天堂久久一区二区三区| 久久久久久久久一| 色婷婷精品久久二区二区蜜臀av | 亚洲国产经典视频| 日本韩国精品一区二区在线观看| 亚洲成人网在线观看| 久久人91精品久久久久久不卡| 91久久精品国产91久久| www.-级毛片线天内射视视| 91国内在线播放| 国产日产在线观看| 国产女人爽到高潮a毛片| 飘雪影院手机免费高清版在线观看 | av资源种子在线观看| 国产a亚洲精品| 91精品国产麻豆国产在线观看 | 日韩专区精品| 国产综合久久久久久久久久久久| 日韩理论片中文av| 日韩欧美在线1卡| 欧美国产第一页| 精品国产乱码久久久久久郑州公司 | 在线观看国产一区二区| 中文字幕免费国产精品| 国产日韩欧美自拍| 久久久久久久9| www.久久国产| 国产又粗又黄又爽视频| 日本成人在线播放| 日韩av影院| 激情丁香综合五月| 婷婷综合在线观看| 日韩中文字幕在线精品| 国产一区不卡在线观看| 午夜国产一区二区三区| 九九热视频精品| 污网站视频在线观看| www.久久.com| 日韩午夜av在线| 中文字幕在线播放不卡一区| 精品人伦一区二区色婷婷| 日韩av电影在线播放| 女人床在线观看| 18久久久久久| 亚洲人成77777| 日韩免费高清一区二区| 91av久久久| 精品捆绑调教一区二区三区| 国产精品久久久久久久久妇女| 91在线看国产| 欧美变态口味重另类| 国产成人精品优优av| 欧美成人三级在线视频| 四虎精品免费视频| 欧美精品少妇| 色天下一区二区三区| 懂色av一区二区三区免费看| 4438x成人网最大色成网站| 国产福利精品av综合导导航| 欧美一区二区三区爽大粗免费 | 欧美特黄一级大片| 26uuu欧美日本| 日韩高清欧美高清| 久久国产手机看片| 中文字幕 亚洲一区| 人人妻人人澡人人爽人人欧美一区 | 能看毛片的网站| 一区二区三区播放| 浪潮色综合久久天堂| 性久久久久久| 欧美性生交xxxxx久久久| 98精品国产自产在线观看| 久久这里只有精品18| 欧美成人免费看| 亚洲一区在线电影| 国产综合在线看| 乱人伦xxxx国语对白| 波多野结衣国产| 成人性生交大片免费看网站 | 精品国产亚洲一区二区三区在线| 日本视频免费一区| 欧美日韩国产免费一区二区 | 亚洲日本电影在线| 另类少妇人与禽zozz0性伦| 免费国产成人看片在线| 久久国产精品波多野结衣| 尤物yw193can在线观看| 黄色免费成人| 国产精品一区二区久激情瑜伽| 欧美人伦禁忌dvd放荡欲情| 成人性生交xxxxx网站| wwwxxxx在线观看| 亚洲欧美综合在线观看| 欧美精品国产白浆久久久久| 国产日韩欧美精品在线| 久久久国产精品亚洲一区| 久久精品无码中文字幕| jizz国产在线| 欧美亚洲人成在线| 成人不卡免费av| 色老头一区二区三区在线观看| 日韩在线视频在线| 欧美日韩一级黄色片| 国产精品99精品一区二区三区∴| 国产高清精品网站| 亚洲欧美激情视频| 97中文字幕在线| 青青艹在线观看| 久久伊人精品| 国产婷婷精品av在线| 欧美国产日韩精品| 国产免费中文字幕| 午夜视频在线观看韩国| 亚洲人体av| 欧美婷婷六月丁香综合色| 国产偷久久久精品专区| 国产av无码专区亚洲av毛网站| 女同视频在线观看| 国产一区999| www国产亚洲精品久久网站| 久久久久久久久久久免费视频| 国产男男gay网站| 日韩精品a在线观看91| 一区二区在线观看不卡| 国产欧美一区二区三区久久人妖| a毛片毛片av永久免费| 宅男在线观看免费高清网站| 精油按摩中文字幕久久| 亚洲偷欧美偷国内偷| 女人天堂av手机在线| 人妻偷人精品一区二区三区| av资源久久| 欧美人与性动xxxx| 51xx午夜影福利| www.日日夜夜| 亚洲精品电影| 日韩一级免费观看| 福利视频免费在线观看| 亚洲h视频在线观看| 亚洲国产一区二区在线观看| 欧美精品久久一区二区三区| 自拍另类欧美| www.看毛片| 中文字幕免费一区二区三区| 337p亚洲精品色噜噜狠狠| ijzzijzzij亚洲大全| www.看毛片| 国产一区日韩欧美| 亚洲精品wwww| 尤蜜粉嫩av国产一区二区三区| 神马电影在线观看| 欧美96一区二区免费视频| 日韩亚洲第一页| 亚洲成人av免费观看| 麻豆传媒在线观看| jvid福利写真一区二区三区| 国产97免费视| 成熟的女同志hd| 一区二区三区视频免费视频观看网站| 亚洲成人777| 视频一区二区三| 国产日韩在线观看一区| 在线观看免费一区二区| 日韩精品免费电影| 亚洲一区二区三区四区精品| 成人毛片av在线| 91美女精品福利| 成人日韩av在线| 永久免费无码av网站在线观看| 少妇一区二区三区| 欧美一级精品在线| av五月天在线| 最新av在线播放| 欧美经典三级视频一区二区三区| 7777精品伊久久久大香线蕉语言| 免费在线不卡视频| 91中文字幕精品永久在线| 亚洲第一偷拍网| 午夜视频在线观| 蜜桃视频www网站在线观看| 中文字幕在线一区| 神马影院我不卡午夜| 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻av无码一区二区三区 | 粉嫩在线一区二区三区视频| 国产精品国内视频| 国产精品999在线观看| 第一会所sis001亚洲| 日韩av在线资源| 亚洲麻豆一区二区三区| 久久久一本精品| 天天综合日日夜夜精品| 99亚洲国产精品| 成人欧美亚洲| 国产女人18毛片水真多成人如厕| 黑人中文字幕一区二区三区| 午夜精品一二三区| 美国三级日本三级久久99 | 精品黑人一区二区三区在线观看 | 91在线免费视频| 一级黄色大片网站| 快she精品国产999| 国产精品美女av| 在线免费观看高清视频| 性欧美videos另类喷潮| 欧洲成人性视频| 国产嫩bbwbbw高潮| 小嫩嫩精品导航| 国产精品成人品| 一级黄色大片网站| 麻豆国产精品777777在线| 成人a视频在线观看| 一级做a爱片性色毛片| 日精品一区二区三区| 国产精品第10页| 一区二区 亚洲| 久久精品久久久精品美女| 亚洲va欧美va在线观看| 亚洲精品国产精| 国产69精品久久久久毛片| 99se婷婷在线视频观看| 香蕉久久国产av一区二区| 成人av一区二区三区| 欧美福利一区二区三区| 神马久久久久| 亚洲日本护士毛茸茸| 人妻无码久久一区二区三区免费| 国产黄色大片在线观看| 日韩欧美国产成人| 久久精品视频在线观看免费| 国产电影一区二区| 精品偷拍各种wc美女嘘嘘| 中文字幕第二区| 国产韩国精品一区二区三区| 国内精品小视频在线观看| 无码人妻av免费一区二区三区 | 女同视频在线观看| 欧美日韩一区二区三区在线看| 亚洲成人激情小说| 任我爽精品视频在线播放| 日韩视频―中文字幕| 黄网在线观看视频| 欧美aaaaaa午夜精品| 国产一区二区黄色| av中文字幕在线| 色视频欧美一区二区三区| 色综合久久久无码中文字幕波多| 精品丝袜久久| 大胆人体色综合| 中文字幕激情视频| 成人手机电影网| 女同性恋一区二区| 九色porny丨入口在线| 日韩一区二区三区四区| 色婷婷国产精品免| 亚洲成人资源| 国产99在线播放| 91激情在线| 精品视频在线看| 俄罗斯毛片基地| av不卡在线看| 国产在线欧美日韩| 在线你懂的视频| 日韩欧美一级在线播放| 天天做夜夜爱爱爱| 日本不卡高清视频| 亚洲精品二区| 日韩精品三区| 一区二区三区动漫| 精品国产www| 日本一区二区三区国色天香| 色婷婷综合久久久久中文字幕| 国产乱码精品一区二区三区亚洲人 | 国产免费久久久| 国产精品毛片久久久久久久| 日本www高清视频| 亚洲影院天堂中文av色| 日本在线观看天堂男亚洲| 在线播放你懂的| 一本大道久久a久久综合婷婷| 国产 中文 字幕 日韩 在线| 97超级碰在线看视频免费在线看| 欧美一区二区三区激情| 亚洲综合色自拍一区| 中国免费黄色片| 伊人久久婷婷| 日产中文字幕在线精品一区| 天堂av中文在线观看| 亚洲无线码在线一区观看| 国产精品成人无码| 中文一区在线播放| 中文在线字幕观看| 欧美视频二区| 欧美国产一区二区在线| 久草免费在线视频| 丝袜美腿精品国产二区| 99久久久无码国产精品免费| 亚洲欧洲中文日韩久久av乱码| 精品国产免费久久久久久婷婷| 国产在线欧美| 日韩av电影免费在线观看| 欧美精品高清| 欧美日本高清一区| 一级视频在线观看视频在线啦啦| 欧洲精品在线观看| 久久免费小视频| 91在线小视频| 久久综合桃花网| 亚洲美女色禁图| 一区二区三区四区不卡| 青草伊人久久| 国产精品亚洲第一区| 午夜羞羞小视频在线观看| 亚洲天堂男人天堂| 丰满熟妇人妻中文字幕| 欧美性色视频在线| xxxx 国产| 国产精品人人做人人爽人人添| 欧美做受高潮中文字幕| 日精品一区二区三区| 鲁一鲁一鲁一鲁一澡| 99成人在线视频| 日韩精品电影网站| 精品国产18久久久久久洗澡| 亚洲淫片在线视频| 综合在线影院| 国产精品视频一区二区高潮|