久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【風(fēng)宇沖】Unity3D教程寶典之Shader篇:基礎(chǔ)講 基礎(chǔ)知識(shí)

 雪柳花明 2016-05-30

原創(chuàng)文章如需轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自風(fēng)宇沖Unity3D教程學(xué)院


                           基礎(chǔ)講:基本知識(shí)


以下內(nèi)容不需要入門的時(shí)候立刻閱讀和理解,,建議逐漸深入學(xué)習(xí)后,不時(shí)回來看看即可,。

什么是GPU?
GPU:Graphic Processing Unit,,中文翻譯為“圖形處理器”,。顯卡包括(GPU,顯存,,顯卡BIOS,顯卡PCB板)。
什么是Shader?
Shader程序:GPU執(zhí)行的,,針對(duì)3D對(duì)象進(jìn)行操作的程序,。

Shader有哪幾種?
CG:與DirectX 9.0以上以及OpenGL 完全兼容,。運(yùn)行時(shí)或事先編譯成GPU匯編代碼,。
HLSL: 主要用于Direct3D。平臺(tái):windows,。
GLSL: 主要用于OpenGL,。  平臺(tái):移動(dòng)平臺(tái)(iOS,安卓),mac(only use when you target Mac OS X or OpenGL ES 2.0)

為什么Shader中選擇CG?
因?yàn)镃G/HLSL 比GLSL支持更多的平臺(tái),。

Unity3d里CG輸出什么,?
windows平臺(tái):Direct3D, GPU匯編代碼
mac:OpenGL GPU匯編代碼
flash:flash GPU匯編代碼
ios/android:unity會(huì)將CG轉(zhuǎn)換成GLSL代碼。
總結(jié):也就是除了移動(dòng)平臺(tái)會(huì)把CG轉(zhuǎn)換成GLSL代碼,,其余平臺(tái)都是轉(zhuǎn)換成匯編代碼,。

什么是緩沖?
一個(gè)像素有如下緩沖
顏色緩存color buffer/pixel buffer:儲(chǔ)存該點(diǎn)即將顯示的顏色,,RGBA值
深度緩存depth buffer/z buffer:儲(chǔ)存該點(diǎn)的深度,z
模板緩存stencil buffer:通常用作限制渲染區(qū)域,。 更高級(jí)用法需結(jié)合深度緩沖,例如某像素的模板緩沖值會(huì)隨著其是否通過深度緩沖測(cè)試而改變,。
累積緩存Accumulation Buffer: 與顏色緩沖類似,,同樣儲(chǔ)存一個(gè)RGBA值。累積緩存是為合成多幅圖像而設(shè)計(jì)的,,累積緩存提供了一種在保持好的顏色分辨率下實(shí)現(xiàn)在場(chǎng)景中“多重曝光(multiple exposures)”的方法,。使用累積緩存可以產(chǎn)生許多圖像效果來提高圖像的真實(shí)性,其中包括:反走樣,、運(yùn)動(dòng)模糊,、軟陰影、深度域(景深)和卷積,。要產(chǎn)生這些效果,,必須將圖像渲染多次,對(duì)場(chǎng)景位置(或所選的物體)進(jìn)行微小的,、漸增的改變,,然后累積結(jié)果。

什么是圖元裝配(Primitive Assembly)
經(jīng)過變換的頂點(diǎn) 被 裝配成幾何圖元

什么是光柵化(又譯作柵格化,,Rasterization)
柵格化這個(gè)術(shù)語可以用于任何將矢量圖形轉(zhuǎn)換成柵格圖像的過程,。
在3D渲染中主要是指, 三角形等圖元(矢量)轉(zhuǎn)換成像素碎片的過程,?;蛘哒f決定哪些像素幾何圖元覆蓋的過程。光柵化的結(jié)果是像素位置的集合和片段的集合

什么是光柵操作(Raster Operation)
指在碎片fragment處理后,,在更新幀緩存前最后執(zhí)行的一系列操作,。通過包括裁剪,深度測(cè)試,,alpha測(cè)試,,alpha混合等。

碎片F(xiàn)ragment等于像素嗎,?
像素點(diǎn):(屏幕上能顯示)的最小圖像單元
像素:幀緩存中某個(gè)像素點(diǎn)的內(nèi)容,,通常即指顏色,。
碎片:更新像素潛在需要的一個(gè)狀態(tài)。
碎片輸出的是當(dāng)前的fragment函數(shù)在這個(gè)像素點(diǎn)的顏色,,并不代表這像素點(diǎn)的最終顏色,。最后顯示的顏色是這個(gè)點(diǎn)的所有碎片經(jīng)過疊加等運(yùn)算形成的最終結(jié)果。

針對(duì)3D對(duì)象進(jìn)行操作,、并被GPU所執(zhí)行的程序

什么是地形著色器(Geometry Shader):
幾何著色器可以從多邊形網(wǎng)格中增刪頂點(diǎn),。它能夠執(zhí)行對(duì)CPU來說過于繁重的生成幾何結(jié)構(gòu)和增加模型細(xì)節(jié)的工作。Direct3D版本10增加了支持幾何著色器的API, 成為Shader Model 4.0的組成部分,。OpenGL只可通過它的一個(gè)插件來使用幾何著色器,,但極有可能在3.1版本中該功能將會(huì)歸并。幾何著色器的輸出連接光柵化器的輸入,。但是并不實(shí)用,。

什么是Tessellation?
針對(duì)DX11. 該技術(shù)需要消耗大量硬件資源,,因此開發(fā)人員不會(huì)在場(chǎng)景中的每個(gè)地方都使用它,,一般只考慮玩家視角近景和輪廓邊緣。利用GPU硬件加速,,將現(xiàn)有3D模型的三角形拆分得更細(xì)小,、更細(xì)致,也就是大大增加三角形數(shù)量,,使得渲染對(duì)象的表面和邊緣更平滑,、更精細(xì)。



                                 坐標(biāo)系

計(jì)算機(jī)3D中,,3D坐標(biāo)系采用的主要是,,
笛卡兒坐標(biāo)系(Cartesian坐標(biāo)系),也稱直角坐標(biāo)系,。
當(dāng)x軸朝右,,y朝上,z朝屏幕里的時(shí)候,,為左手坐標(biāo)系,。
當(dāng)x軸朝右,y朝上,,z朝屏幕外即面朝你的時(shí)候,,為右手坐標(biāo)系,。
所以,,Unity使用的是左手坐標(biāo)系。
D3D左手 即 裁剪空間里(x,y,z,w) z= z/w   即[0,1]
OpenGL使用右手 ,,即 裁剪空間里(x,y,z,w) z= (z/w + 1)/2 即[-1,1]

左右手坐標(biāo)系的差別是矩陣的運(yùn)算,!左手是行主序,,右手是列主序。運(yùn)算結(jié)構(gòu)是一樣的,。

#pragma target 3.0    :定義Shader模型為Shader Model 3.0,
2.0,, Direct3D 9 (默認(rèn)缺省值)。支持32張貼圖 + 64個(gè)計(jì)算
3.0,, Direct3D 9,。支持512張貼圖 + 512個(gè)計(jì)算
4.0, 只支持DirectX 11,。
5.0,, 只支持DirectX 11。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多