Suche senden
Hochladen
[TGDF 2014] 進階Shader技術
•
Als PPT, PDF herunterladen
•
27 gefällt mir
•
4,729 views
Owen Wu
Folgen
The slides I presented at TGDF 2014.
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 57
Jetzt herunterladen
Empfohlen
CS201- Introduction to Programming- Lecture 08
CS201- Introduction to Programming- Lecture 08
Bilal Ahmed
2016 台灣獨立遊戲開發大調查
2016 台灣獨立遊戲開發大調查
YI-HONG LI
Unity Shader教學: 準備貼圖系列之如何製作反光貼圖
Unity Shader教學: 準備貼圖系列之如何製作反光貼圖
徐芳真 Hsu
Unity Shader教學:Unity ShaderLab簡介 part2
Unity Shader教學:Unity ShaderLab簡介 part2
徐芳真 Hsu
Unity Shader教學:Unity ShaderLab簡介 part1
Unity Shader教學:Unity ShaderLab簡介 part1
徐芳真 Hsu
Unity Shader教學: 初窺Shader 從內建Normal Shader Family認識Unity Shader
Unity Shader教學: 初窺Shader 從內建Normal Shader Family認識Unity Shader
徐芳真 Hsu
Unity Shader教學: 準備貼圖系列之如何製作法向量貼圖
Unity Shader教學: 準備貼圖系列之如何製作法向量貼圖
徐芳真 Hsu
使用內建shader: Transparent Shader Family
使用內建shader: Transparent Shader Family
徐芳真 Hsu
Empfohlen
CS201- Introduction to Programming- Lecture 08
CS201- Introduction to Programming- Lecture 08
Bilal Ahmed
2016 台灣獨立遊戲開發大調查
2016 台灣獨立遊戲開發大調查
YI-HONG LI
Unity Shader教學: 準備貼圖系列之如何製作反光貼圖
Unity Shader教學: 準備貼圖系列之如何製作反光貼圖
徐芳真 Hsu
Unity Shader教學:Unity ShaderLab簡介 part2
Unity Shader教學:Unity ShaderLab簡介 part2
徐芳真 Hsu
Unity Shader教學:Unity ShaderLab簡介 part1
Unity Shader教學:Unity ShaderLab簡介 part1
徐芳真 Hsu
Unity Shader教學: 初窺Shader 從內建Normal Shader Family認識Unity Shader
Unity Shader教學: 初窺Shader 從內建Normal Shader Family認識Unity Shader
徐芳真 Hsu
Unity Shader教學: 準備貼圖系列之如何製作法向量貼圖
Unity Shader教學: 準備貼圖系列之如何製作法向量貼圖
徐芳真 Hsu
使用內建shader: Transparent Shader Family
使用內建shader: Transparent Shader Family
徐芳真 Hsu
pengenalan perangkat keras komputer
pengenalan perangkat keras komputer
zee120196
Hardware
Hardware
rahmanitayulia
MODUL 1 - PERANGKAT KERAS
MODUL 1 - PERANGKAT KERAS
Benar Setya
Hardware
Hardware
beneathz
Perangkat keras komputer
Perangkat keras komputer
dimasaryasetiawan
Perangkat Keras Hardware
Perangkat Keras Hardware
Johan19931106
CS201- Introduction to Programming- Lecture 38
CS201- Introduction to Programming- Lecture 38
Bilal Ahmed
Test Automation Myths
Test Automation Myths
kevinburr
Penetration testing: A proactive approach to secure computing - Eric Vanderbu...
Penetration testing: A proactive approach to secure computing - Eric Vanderbu...
Eric Vanderburg
E commerce shop beyond the boundaries
E commerce shop beyond the boundaries
Mike Taylor
MS Unit-6
MS Unit-6
A.S. Krishna
Ethernet Over CoAxial(EOC)
Ethernet Over CoAxial(EOC)
Vishal Katara
Puppet Camp Düsseldorf 2014: Monitoring with Puppet (Beginner)
Puppet Camp Düsseldorf 2014: Monitoring with Puppet (Beginner)
Puppet
CS201- Introduction to Programming- Lecture 29
CS201- Introduction to Programming- Lecture 29
Bilal Ahmed
PMANIKANDAN CV-E&I
PMANIKANDAN CV-E&I
Manikandan Paramasivam
CS201- Introduction to Programming- Lecture 13
CS201- Introduction to Programming- Lecture 13
Bilal Ahmed
Monitoring (with) puppet
Monitoring (with) puppet
Kris Buytaert
Edit data base menggunakan web
Edit data base menggunakan web
haviedz miftah
ram new
ram new
RAM PRAKASH PATEL
Dr. Farshad Alikhani-Aban-1395
Dr. Farshad Alikhani-Aban-1395
Dr. Farshad Alikhani
Unreal Fest 2023 - Lumen with Immortalis
Unreal Fest 2023 - Lumen with Immortalis
Owen Wu
COSCUP 2023 - Make Your Own Ray Tracing GPU with FPGA
COSCUP 2023 - Make Your Own Ray Tracing GPU with FPGA
Owen Wu
Weitere ähnliche Inhalte
Ähnlich wie [TGDF 2014] 進階Shader技術
pengenalan perangkat keras komputer
pengenalan perangkat keras komputer
zee120196
Hardware
Hardware
rahmanitayulia
MODUL 1 - PERANGKAT KERAS
MODUL 1 - PERANGKAT KERAS
Benar Setya
Hardware
Hardware
beneathz
Perangkat keras komputer
Perangkat keras komputer
dimasaryasetiawan
Perangkat Keras Hardware
Perangkat Keras Hardware
Johan19931106
CS201- Introduction to Programming- Lecture 38
CS201- Introduction to Programming- Lecture 38
Bilal Ahmed
Test Automation Myths
Test Automation Myths
kevinburr
Penetration testing: A proactive approach to secure computing - Eric Vanderbu...
Penetration testing: A proactive approach to secure computing - Eric Vanderbu...
Eric Vanderburg
E commerce shop beyond the boundaries
E commerce shop beyond the boundaries
Mike Taylor
MS Unit-6
MS Unit-6
A.S. Krishna
Ethernet Over CoAxial(EOC)
Ethernet Over CoAxial(EOC)
Vishal Katara
Puppet Camp Düsseldorf 2014: Monitoring with Puppet (Beginner)
Puppet Camp Düsseldorf 2014: Monitoring with Puppet (Beginner)
Puppet
CS201- Introduction to Programming- Lecture 29
CS201- Introduction to Programming- Lecture 29
Bilal Ahmed
PMANIKANDAN CV-E&I
PMANIKANDAN CV-E&I
Manikandan Paramasivam
CS201- Introduction to Programming- Lecture 13
CS201- Introduction to Programming- Lecture 13
Bilal Ahmed
Monitoring (with) puppet
Monitoring (with) puppet
Kris Buytaert
Edit data base menggunakan web
Edit data base menggunakan web
haviedz miftah
ram new
ram new
RAM PRAKASH PATEL
Dr. Farshad Alikhani-Aban-1395
Dr. Farshad Alikhani-Aban-1395
Dr. Farshad Alikhani
Ähnlich wie [TGDF 2014] 進階Shader技術
(20)
pengenalan perangkat keras komputer
pengenalan perangkat keras komputer
Hardware
Hardware
MODUL 1 - PERANGKAT KERAS
MODUL 1 - PERANGKAT KERAS
Hardware
Hardware
Perangkat keras komputer
Perangkat keras komputer
Perangkat Keras Hardware
Perangkat Keras Hardware
CS201- Introduction to Programming- Lecture 38
CS201- Introduction to Programming- Lecture 38
Test Automation Myths
Test Automation Myths
Penetration testing: A proactive approach to secure computing - Eric Vanderbu...
Penetration testing: A proactive approach to secure computing - Eric Vanderbu...
E commerce shop beyond the boundaries
E commerce shop beyond the boundaries
MS Unit-6
MS Unit-6
Ethernet Over CoAxial(EOC)
Ethernet Over CoAxial(EOC)
Puppet Camp Düsseldorf 2014: Monitoring with Puppet (Beginner)
Puppet Camp Düsseldorf 2014: Monitoring with Puppet (Beginner)
CS201- Introduction to Programming- Lecture 29
CS201- Introduction to Programming- Lecture 29
PMANIKANDAN CV-E&I
PMANIKANDAN CV-E&I
CS201- Introduction to Programming- Lecture 13
CS201- Introduction to Programming- Lecture 13
Monitoring (with) puppet
Monitoring (with) puppet
Edit data base menggunakan web
Edit data base menggunakan web
ram new
ram new
Dr. Farshad Alikhani-Aban-1395
Dr. Farshad Alikhani-Aban-1395
Mehr von Owen Wu
Unreal Fest 2023 - Lumen with Immortalis
Unreal Fest 2023 - Lumen with Immortalis
Owen Wu
COSCUP 2023 - Make Your Own Ray Tracing GPU with FPGA
COSCUP 2023 - Make Your Own Ray Tracing GPU with FPGA
Owen Wu
Unity mobile game performance profiling – using arm mobile studio
Unity mobile game performance profiling – using arm mobile studio
Owen Wu
[Unite Seoul 2020] Mobile Graphics Best Practices for Artists
[Unite Seoul 2020] Mobile Graphics Best Practices for Artists
Owen Wu
[TGDF 2020] Mobile Graphics Best Practices for Artist
[TGDF 2020] Mobile Graphics Best Practices for Artist
Owen Wu
[Unity Forum 2019] Mobile Graphics Optimization Guides
[Unity Forum 2019] Mobile Graphics Optimization Guides
Owen Wu
[TGDF 2019] Mali GPU Architecture and Mobile Studio
[TGDF 2019] Mali GPU Architecture and Mobile Studio
Owen Wu
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
Owen Wu
[GDC 2012] Enhancing Graphics in Unreal Engine 3 Titles Using AMD Code Submis...
[GDC 2012] Enhancing Graphics in Unreal Engine 3 Titles Using AMD Code Submis...
Owen Wu
Mehr von Owen Wu
(9)
Unreal Fest 2023 - Lumen with Immortalis
Unreal Fest 2023 - Lumen with Immortalis
COSCUP 2023 - Make Your Own Ray Tracing GPU with FPGA
COSCUP 2023 - Make Your Own Ray Tracing GPU with FPGA
Unity mobile game performance profiling – using arm mobile studio
Unity mobile game performance profiling – using arm mobile studio
[Unite Seoul 2020] Mobile Graphics Best Practices for Artists
[Unite Seoul 2020] Mobile Graphics Best Practices for Artists
[TGDF 2020] Mobile Graphics Best Practices for Artist
[TGDF 2020] Mobile Graphics Best Practices for Artist
[Unity Forum 2019] Mobile Graphics Optimization Guides
[Unity Forum 2019] Mobile Graphics Optimization Guides
[TGDF 2019] Mali GPU Architecture and Mobile Studio
[TGDF 2019] Mali GPU Architecture and Mobile Studio
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
[GDC 2012] Enhancing Graphics in Unreal Engine 3 Titles Using AMD Code Submis...
[GDC 2012] Enhancing Graphics in Unreal Engine 3 Titles Using AMD Code Submis...
[TGDF 2014] 進階Shader技術
1.
2.
進階SShhaaddeerr技術 22001144台北遊戲開發者論壇 bbyy OOwweenn
WWuu @@ QQuubbiitt GGaammeess
3.
18年以上遊戲開發經驗 曾開發過三套遊戲引擎 曾在加拿大ATI/AMD擔任七年的資深繪圖工程師
支援AAA遊戲圖型引擎開發,曾支援過的遊戲 UE3,Max Payne 3,Splinter Cell series ,Lost Planet series,Devil May Cry 4, etc… 曾在國際的遊戲研發會議如 GDC SF , GDC China , Korean G-Star 發表圖形技術演說
4.
SShhaaddeerr PPiippeelliinnee
5.
SShhaaddeerr PPiippeelliinnee
6.
AAddvvaanncceedd SShhaaddeerr NNeeww
SShhaaddeerrss GGeeoommeettrryy SShhaaddeerr TTeesssseellllaattiioonn SShhaaddeerr CCoommppuuttee SShhaaddeerr
7.
GGeeoommeettrryy SShhaaddeerr
8.
GGeeoommeettrryy SShhaaddeerr 處理一個完整的
pprriimmiittiivvee ((ppooiinntt,, lliinnee,, ttrriiaannggllee)) 可以取得周邊的pprriimmiittiivvee資訊 ((ooppttiioonnaall)) 可以輸出多個pprriimmiittiivveess 最大可輸出11002244 ffllooaattss 可以不輸出任何資料 ((ttoo kkiillll pprriimmiittiivvee))
9.
GGeeoommeettrryy SShhaaddeerr AApppplliiccaattiioonn
PPaarrttiiccllee 生成 BBookkeehh DDOOFF 毛髮生成 草地生成
10.
GGeeoommeettrryy SShhaaddeerr BBookkeehh
DDOOFF
11.
GGeeoommeettrryy SShhaaddeerr BBookkeehh
DDOOFF 利用DDeepptthh BBuuffffeerr產生每個PPiixxeell的CCooCC值 為每一個PPiixxeell產生一個端點 計算每個PPiixxeell的亮度值,,並依此決定是否需要 產生BBookkeehh SSpprriittee 利用GGSS來將端點根據CCooCC值產生出SSpprriittee 利用BBookkeehh TTeexxttuurree來改變BBookkeehh形狀 將BBookkeehh與BBlluurrrreedd RRTT混色
12.
TTeesssseellllaattiioonn
13.
TTeesssseellllaattiioonn 22 個可程序化的階段 HHuullll
SShhaaddeerr DDoommaaiinn sshhaaddeerr 11 個固定管線階段 TTeesssseellllaattoorr
14.
HHuullll SShhaaddeerr 分成兩部分運作 “CCoonnttrrooll
ppooiinntt pphhaassee”” 在此階段將一種表面形式轉換成另一種 例如:: 將ssuubb--ddiivviissiioonn表面轉換為 BBeezziieerr ppaattcchheess 每個ccoonnttrrooll ppooiinntt執行一次 “PPaattcchh ccoonnssttaanntt pphhaassee”” 在此階段設定所需要的鑲嵌級數以及其他 的 ppeerr--ppaattcchh ccoonnssttaannttss 每個輸入的pprriimmiittiivvee執行一次
15.
TTeesssseellllaattoorr 固定管線階段 在輸入的pprriimmiittiivveess內產生出新的 端點 產生多少端點取決於在HHuullll SShhaaddeerr
所計算出的tteesssseellllaattiioonn ffaaccttoorrss值 LLeevveell 11..00 LLeevveell 11..55 LLeevveell 33..00
16.
DDoommaaiinn SShhaaddeerr 用來計算出在表面上的每個端 點
讀入在HHuullll SShhaaddeerr所產生的ccoonnttrrooll ppooiinntt資料 可以在此實做出各種不同的表面形式,, 例如BBeezziieerr曲面 DDiissppllaacceemmeenntt MMaappppiinngg 從ddiissppllaacceemmeenntt mmaapp紋理中採樣位移 值 然後將端點沿著法線向量位移
17.
TTeesssseellllaattiioonn TTeecchhnniiqquueess DDiissppllaacceemmeenntt
mmaappppiinngg wwiitthh ffllaatt tteesssseellllaattiioonn 需要有hheeiigghhtt mmaapp來做ddiissppllaacceemmeenntt 可以用來產生高品質的bbuummppyy表面或地形 PPNN--TTrriiaannggllee tteesssseellllaattiioonn 不需要額外的hheeiigghhtt mmaapp 可以產生平滑的表面 需要使用到HHuullll sshhaaddeerr PPhhoonngg tteesssseellllaattiioonn 不需要額外的hheeiigghhtt mmaapp 可以產生平滑的表面 不需要使用到HHuullll sshhaaddeerr,,效能較高
18.
DDiissppllaacceemmnneett MMaappppiinngg TTrriiaannggllee
PPaattcchh MMeesshh TTeesssseellllaatteedd MMeesshh
19.
DDiissppllaacceemmnneett MMaappppiinngg TTeesssseellllaatteedd
MMeesshh DDiissppllaacceedd MMeesshh DDiissppllaacceemmeenntt MMaapp
20.
DDiissppllaacceemmnneett MMaappppiinngg DDiissppllaacceedd
MMeesshh FFiinnaall IImmaaggee DDiiffffuussee TTeexxttuurree NNoorrmmaall MMaapp
21.
PPNN--TTrriiaanngglleess PPNN--ttrriiaanngglleess iiss
aa ppuurreellyy llooccaall sscchheemmee CCoonnssttrruucctt aa ccuubbiicc BBeezziieerr ppaattcchh aaccccoorrddiinngg ttoo tthhee tthhrreeee vveerrtteexx ppoossiittiioonnss aanndd nnoorrmmaallss ooff aa ttrriiaannggllee iinn tthhee HHuullll sshhaaddeerr CCoonnttrrooll ppooiinnttss ooff ttrriiaanngguullaarr BBeezziieerr ppaattcchh NNoorrmmaall ccoommppoonneenntt ooff PPNN--TTrriiaannggllee
22.
PPhhoonngg TTeesssseellllaattiioonn PPhhoonngg
tteesssseellllaattiioonn iiss aallssoo aa ppuurreellyy llooccaall sscchheemmee 不需要使用hhuullll sshhaaddeerr 去建構複雜的ppaattcchh 非常簡單的 HHuullll sshhaaddeerr,, 只是傳遞端點位置跟法向量 SSiimmppllee sshhaaddeerr ==== bbeetttteerr ppeerrffoorrmmaannccee PPhhoonngg 比 PPNN--TTrriiaanngglleess更容易實作且效率較高 同時可以產生極為相近的外觀 執行效能高出許多!! P P*
23.
NNoo TTeesssseellllaattiioonn
24.
PPNN--TTrriiaanngglleess
25.
PPhhoonngg TTeesssseellllaattiioonn
26.
TTeesssseellllaattiioonn PPNN--TTrriiaannggllee TTeesssseellllaattiioonn
PPhhoonngg TTeesssseellllaattiioonn
27.
NNoo TTeesssseellllaattiioonn
28.
PPNN--TTrriiaanngglleess
29.
PPhhoonngg TTeesssseellllaattiioonn
30.
TTeesssseellllaattiioonn最佳化
31.
TTeesssseellllaattiioonn最佳化
32.
CCoommppuuttee SShhaaddeerr
33.
CCoommppuutteerr SShhaaddeerr 可以直接略整個渲染管線來進行GGPPGGPPUU運算 PPoosstt--pprroocceessssiinngg,,
OOIITT,, AAII,, PPhhyyssiiccss,, aanndd mmoorree 如此可以避免過多的ccoonntteexxtt切換動作 遊戲主程序可以控制執行緒的同步以及發派 可自由設定執行緒數目 CCoommppuuttee SShhaaddeerr線程共享記憶體 TThhrreeaadd GGrroouupp SShhaarreedd MMeemmoorryy ((TTGGSSMM)) 可以避免重複的計算以及採樣 輸出緩衝的隨機存取 “UUnnoorrddeerreedd AAcccceessss VViieeww”” ((UUAAVV)) 每個sshhaaddeerr都可以寫入任意位置到輸出緩衝
34.
CCoommppuutteerr SShhaaddeerr TThhrreeaaddss
一個執行緒是CCSS最基本的處理單位 一個執行緒群組((tthhrreeaadd ggrroouupp))是一個三維的線程陣列 CCSS中可以宣告在一個群組中的執行緒數目 EE..gg.. [[nnuummtthhrreeaaddss((XX,, YY,, ZZ))]] 在同一個線程群組中的線程都執行相同的程序碼 要執行線程,, 就必須呼叫DDiissppaattcchh(( nnXX,, nnYY,, nnZZ )) 函式 nnXX,, nnYY,, nnZZ 代表了執行緒群組的數目
35.
CCoommppuutteerr SShhaaddeerr DDaattaa
ssiizzee :: 1122 xx 88 ppDDeevv1111-->>DDiissppaattcchh((33,, 22,, 11));; //// DD33DD AAPPII ccaallll [[nnuummtthhrreeaaddss((44,, 44,, 11))]] //// CCSS 55..00 HHLLSSLL TToottaall tthhrreeaaddss = 33**22**44**44 = 9966
36.
TThhrreeaadd GGrroouupp SShhaarreedd
MMeemmoorryy 在執行緒之間分享 可以將之視為專為執行緒設計的高速本地記憶體 在sshhaaddeerr中宣告 ggrroouuppsshhaarreedd ffllooaatt44 vvCCaacchheeMMeemmoorryy[[11002244]];; 上限大小是3322 KKBB 可以讀寫任何位置 由執行緒寫入的資料要讀回前必須要做執行緒同步 確保所有資料都已經正確寫入 GGrroouuppMMeemmoorryyBBaarrrriieerr(());; GGrroouuppMMeemmoorryyBBaarrrriieerrWWiitthhGGrroouuppSSyynncc(());;
37.
SShhaaddiinngg
38.
FFoorrwwaarrdd SShhaaddiinngg ffoorr
eeaacchh ddyynnaammiicc lliigghhtt ffoorr eeaacchh mmeesshh lliigghhtt iinntteerrsseeccttss rreennddeerr mmeesshh wwiitthh lliigghhttiinngg OO((MM**LL)) SShhaaddeerr單純,,每種光源一個sshhaaddeerr 材質屬性多樣化 MMuullttii--SSaammpplliinngg相容 動態光源數目很大時,,會產生GGeeoommeettrryy BBoouunndd
39.
DDeeffeerrrreedd SShhaaddiinngg SSccrreeeenn
SSppaaccee LLiigghhttiinn gg
40.
DDeeffeerrrreedd SShhaaddiinngg ffoorr
eeaacchh mmeesshh rreennddeerr mmeesshh ((GG--bbuuffffeerrss)) ffoorr eeaacchh lliigghhtt rreennddeerr lliigghhtt qquuaadd OO((MM++LL)) SShhaaddiinngg 跟GGeeoommeettrryy PPaassss分離 材質屬性有限制 MMuullttii--SSaammpplliinngg不相容 記憶體需求大
41.
LLiigghhtt PPrree--PPaassss SShhaaddiinngg
PPrree-- LLiigghhttiinngg RReennddeerr SScceennee
42.
LLiigghhtt PPrree--PPaassss SShhaaddiinngg
22 GGeeoommeettrryy PPaasssseess ++ 11 LLiigghhttiinngg PPaassss 速度較DDeeffeerrrreedd SShhaaddiinngg慢一些 材質屬性變化大 記憶體需求低一些 不支援MMRRTT的硬體也適用
43.
MMuullttii--SSaammpplliinngg
44.
MMSSAAAA OOvveerrvviieeww
45.
MMSSAAAA SSaammpplliinngg LLooccaattiioonn
MMSSAAAA 22xx MMSSAAAA 44xx MMSSAAAA 88xx ffllooaatt22 MMSSAAAA__22xx = {{ {{--00..2255,, --00..2255}},, {{ 00..2255,, 00..2255}} }};; ffllooaatt22 MMSSAAAA__44xx = {{ {{--00..112255,, --00..337755}},, {{ 00..337755,, --00..112255}},, {{--00..337755,, 00..112255}},, {{ 00..112255,, 00..337755}} }};; ffllooaatt22 MMSSAAAA__88xx = {{ {{ 00..00662255,, --00..11887755}},, {{--00..00662255,, 00..11887755}},, {{ 00..33112255,, 00..00662255}},, {{--00..11887755,, --00..33112255}},, {{--00..33112255,, 00..33112255}},, {{--00..44337755,, --00..00662255}},, {{ 00..11887755,, 00..44337755}},, {{ 00..44337755,, --00..44337755}} }};;
46.
MMSSAAAA ffoorr DDeeffeerrrreedd
SShhaaddiinngg PPiixxeell FFrreeqquueennccyy PPaassss 利用SStteenncciill紀錄eeddggee ppiixxeellss RReennddeerr SScceennee SSaammppllee FFrreeqquueennccyy PPaassss 讀取SStteenncciill只計算eeddggee ppiixxeell 使用SSVV__SSAAMMPPLLEEIINNDDEEXX作ppeerr--ssaammppllee sshhaaddiinngg RReennddeerr SScceennee ttoo MMSSAAAA RRTT
47.
MMSSAAAA ffoorr DDeeffeerrrreedd
SShhaaddiinngg
48.
MMSSAAAA ffoorr DDeeffeerrrreedd
SShhaaddiinngg 1) Use of the ““ssaammppllee”” keyword ssttrruucctt PPSS__IINNPPUUTT {{ ssaammppllee ffllooaatt22 TTeexx11 :: TTEEXXCCOOOORRDD;; }};; 22)) SSeemmaannttiicc ddeeccllaarraattiioonn:: SSVV__SSAAMMPPLLEEIINNDDEEXX ssttrruucctt PPSS__IINNPPUUTT {{ ffllooaatt22 TTeexx22 :: TTEEXXCCOOOORRDD;; uuiinntt uuSSaammppllee :: SSVV__SSAAMMPPLLEEIINNDDEEXX;; }};;
49.
PPoosstt--PPrroocceessssiinngg AAAA MMLLAAAA
FFXXAAAA EEddggee ppiixxeellss ddeetteecctteedd bbyy MMLLAAAA ((iinn rreedd))EEddggee ppiixxeellss ddeetteecctteedd bbyy FFXXAAAA ((iinn rreedd))
50.
GGaammmmaa CCoorrrreeccttiioonn
51.
GGaammmmaa CCoorrrreeccttiioonn 美術產生的貼圖已做過GGaammmmaa
CCoorrrreeccttiioonn,,資 料非lliinneeaarr 因此用來計算lliigghhttiinngg會產生誤差 正確作法應將貼圖的GGaammmmaa修正為lliinneeaarr 或是美術直接輸出lliinneeaarr貼圖 在PPiixxeell SShhaaddeerr中做sshhaaddiinngg 最後再將最後結果做一次GGaammmmaa CCoorrrreeccttiioonn後 輸出到螢幕上 新的GGPPUU都有支援硬體GGaammmmaa CCoorrrreeccttiioonn
52.
GGaammmmaa CCoorrrreeccttiioonn tt
eexx == tt eexx22DD(( SSiimmppll eerr,, TTeexxttuurree)) ;; tt eexx == ppooww(( tt eexx,, 22.. 22)) ;; ////DDoo tthhee ll ii gghhtt ii nngg…… rreettuurrnn ppooww(( oouutt ,,11//22.. 22)) ;; OORR 使用支援SSRRGGBB的貼圖及RRTT格式
53.
GGaammmmaa CCoorrrreeccttiioonn
54.
GGaammmmaa CCoorrrreeccttiioonn
55.
56.
WWee aarree hhiirriinngg!!
GGaammee DDeessiiggnneerr 22DD AArrttiisstt CCoonnttaacctt :: oowweenn..wwuu@@qquubbiitteenntt..ccoomm
57.
QQ&&AA oowweenn..wwuu@@qquubbiitteenntt..ccoomm
Jetzt herunterladen