SlideShare ist ein Scribd-Unternehmen logo
1 von 57
進階SShhaaddeerr技術 22001144台北遊戲開發者論壇
bbyy OOwweenn WWuu @@ QQuubbiitt 
GGaammeess
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 發表圖形技術演說
SShhaaddeerr PPiippeelliinnee
SShhaaddeerr PPiippeelliinnee
AAddvvaanncceedd SShhaaddeerr 
NNeeww SShhaaddeerrss 
GGeeoommeettrryy SShhaaddeerr 
TTeesssseellllaattiioonn SShhaaddeerr 
CCoommppuuttee SShhaaddeerr
GGeeoommeettrryy SShhaaddeerr
GGeeoommeettrryy SShhaaddeerr 
處理一個完整的 pprriimmiittiivvee ((ppooiinntt,, lliinnee,, ttrriiaannggllee)) 
可以取得周邊的pprriimmiittiivvee資訊 ((ooppttiioonnaall)) 
可以輸出多個pprriimmiittiivveess 
最大可輸出11002244 ffllooaattss 
可以不輸出任何資料 ((ttoo kkiillll pprriimmiittiivvee))
GGeeoommeettrryy SShhaaddeerr 
AApppplliiccaattiioonn 
PPaarrttiiccllee 生成
BBookkeehh DDOOFF 
毛髮生成
草地生成
GGeeoommeettrryy SShhaaddeerr BBookkeehh 
DDOOFF
GGeeoommeettrryy SShhaaddeerr BBookkeehh 
DDOOFF 
利用DDeepptthh BBuuffffeerr產生每個PPiixxeell的CCooCC值
為每一個PPiixxeell產生一個端點
計算每個PPiixxeell的亮度值,,並依此決定是否需要
產生BBookkeehh SSpprriittee 
利用GGSS來將端點根據CCooCC值產生出SSpprriittee 
利用BBookkeehh TTeexxttuurree來改變BBookkeehh形狀
將BBookkeehh與BBlluurrrreedd RRTT混色
TTeesssseellllaattiioonn
TTeesssseellllaattiioonn 
22 個可程序化的階段
HHuullll SShhaaddeerr 
DDoommaaiinn sshhaaddeerr 
11 個固定管線階段
TTeesssseellllaattoorr
HHuullll SShhaaddeerr 
分成兩部分運作
“CCoonnttrrooll ppooiinntt pphhaassee”” 
在此階段將一種表面形式轉換成另一種
例如:: 將ssuubb--ddiivviissiioonn表面轉換為 
BBeezziieerr ppaattcchheess 
每個ccoonnttrrooll ppooiinntt執行一次
“PPaattcchh ccoonnssttaanntt pphhaassee”” 
在此階段設定所需要的鑲嵌級數以及其他
的 ppeerr--ppaattcchh ccoonnssttaannttss 
每個輸入的pprriimmiittiivvee執行一次
TTeesssseellllaattoorr 
固定管線階段
在輸入的pprriimmiittiivveess內產生出新的
端點
產生多少端點取決於在HHuullll SShhaaddeerr 
所計算出的tteesssseellllaattiioonn ffaaccttoorrss值
LLeevveell 11..00 LLeevveell 11..55 LLeevveell 33..00
DDoommaaiinn SShhaaddeerr 
用來計算出在表面上的每個端
點 
讀入在HHuullll SShhaaddeerr所產生的ccoonnttrrooll 
ppooiinntt資料
可以在此實做出各種不同的表面形式,, 
例如BBeezziieerr曲面
DDiissppllaacceemmeenntt MMaappppiinngg 
從ddiissppllaacceemmeenntt mmaapp紋理中採樣位移
值 
然後將端點沿著法線向量位移
TTeesssseellllaattiioonn TTeecchhnniiqquueess 
DDiissppllaacceemmeenntt mmaappppiinngg wwiitthh ffllaatt tteesssseellllaattiioonn 
需要有hheeiigghhtt mmaapp來做ddiissppllaacceemmeenntt 
可以用來產生高品質的bbuummppyy表面或地形
PPNN--TTrriiaannggllee tteesssseellllaattiioonn 
不需要額外的hheeiigghhtt mmaapp 
可以產生平滑的表面 
需要使用到HHuullll sshhaaddeerr 
PPhhoonngg tteesssseellllaattiioonn 
不需要額外的hheeiigghhtt mmaapp 
可以產生平滑的表面
不需要使用到HHuullll sshhaaddeerr,,效能較高
DDiissppllaacceemmnneett MMaappppiinngg 
TTrriiaannggllee PPaattcchh 
MMeesshh 
TTeesssseellllaatteedd 
MMeesshh
DDiissppllaacceemmnneett MMaappppiinngg 
TTeesssseellllaatteedd 
MMeesshh 
DDiissppllaacceedd 
MMeesshh 
DDiissppllaacceemmeenntt MMaapp
DDiissppllaacceemmnneett MMaappppiinngg 
DDiissppllaacceedd 
MMeesshh 
FFiinnaall IImmaaggee 
DDiiffffuussee TTeexxttuurree NNoorrmmaall MMaapp
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
PPhhoonngg TTeesssseellllaattiioonn 
PPhhoonngg tteesssseellllaattiioonn iiss aallssoo aa ppuurreellyy llooccaall sscchheemmee 
不需要使用hhuullll sshhaaddeerr 去建構複雜的ppaattcchh 
非常簡單的 HHuullll sshhaaddeerr,, 只是傳遞端點位置跟法向量
SSiimmppllee sshhaaddeerr ==== bbeetttteerr ppeerrffoorrmmaannccee 
PPhhoonngg 比 PPNN--TTrriiaanngglleess更容易實作且效率較高
同時可以產生極為相近的外觀
執行效能高出許多!! 
P 
P*
NNoo TTeesssseellllaattiioonn
PPNN--TTrriiaanngglleess
PPhhoonngg TTeesssseellllaattiioonn
TTeesssseellllaattiioonn 
PPNN--TTrriiaannggllee TTeesssseellllaattiioonn PPhhoonngg TTeesssseellllaattiioonn
NNoo TTeesssseellllaattiioonn
PPNN--TTrriiaanngglleess
PPhhoonngg TTeesssseellllaattiioonn
TTeesssseellllaattiioonn最佳化
TTeesssseellllaattiioonn最佳化
CCoommppuuttee SShhaaddeerr
CCoommppuutteerr SShhaaddeerr 
可以直接略整個渲染管線來進行GGPPGGPPUU運算
PPoosstt--pprroocceessssiinngg,, OOIITT,, AAII,, PPhhyyssiiccss,, aanndd mmoorree 
如此可以避免過多的ccoonntteexxtt切換動作
遊戲主程序可以控制執行緒的同步以及發派
可自由設定執行緒數目
CCoommppuuttee SShhaaddeerr線程共享記憶體
TThhrreeaadd GGrroouupp SShhaarreedd MMeemmoorryy ((TTGGSSMM)) 
可以避免重複的計算以及採樣
輸出緩衝的隨機存取
“UUnnoorrddeerreedd AAcccceessss VViieeww”” ((UUAAVV)) 
每個sshhaaddeerr都可以寫入任意位置到輸出緩衝
CCoommppuutteerr SShhaaddeerr 
TThhrreeaaddss 
一個執行緒是CCSS最基本的處理單位
一個執行緒群組((tthhrreeaadd ggrroouupp))是一個三維的線程陣列
CCSS中可以宣告在一個群組中的執行緒數目
EE..gg.. [[nnuummtthhrreeaaddss((XX,, YY,, ZZ))]] 
在同一個線程群組中的線程都執行相同的程序碼
要執行線程,, 就必須呼叫DDiissppaattcchh(( nnXX,, nnYY,, nnZZ )) 函式
nnXX,, nnYY,, nnZZ 代表了執行緒群組的數目
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
TThhrreeaadd GGrroouupp SShhaarreedd 
MMeemmoorryy 
在執行緒之間分享
可以將之視為專為執行緒設計的高速本地記憶體
在sshhaaddeerr中宣告
ggrroouuppsshhaarreedd ffllooaatt44 vvCCaacchheeMMeemmoorryy[[11002244]];; 
上限大小是3322 KKBB 
可以讀寫任何位置
由執行緒寫入的資料要讀回前必須要做執行緒同步
確保所有資料都已經正確寫入
GGrroouuppMMeemmoorryyBBaarrrriieerr(());; 
GGrroouuppMMeemmoorryyBBaarrrriieerrWWiitthhGGrroouuppSSyynncc(());;
SShhaaddiinngg
FFoorrwwaarrdd SShhaaddiinngg 
ffoorr eeaacchh ddyynnaammiicc lliigghhtt 
ffoorr eeaacchh mmeesshh lliigghhtt iinntteerrsseeccttss 
rreennddeerr mmeesshh wwiitthh lliigghhttiinngg 
OO((MM**LL)) 
SShhaaddeerr單純,,每種光源一個sshhaaddeerr 
材質屬性多樣化
MMuullttii--SSaammpplliinngg相容
動態光源數目很大時,,會產生GGeeoommeettrryy 
BBoouunndd
DDeeffeerrrreedd SShhaaddiinngg 
SSccrreeeenn 
SSppaaccee 
LLiigghhttiinn 
gg
DDeeffeerrrreedd SShhaaddiinngg 
ffoorr eeaacchh mmeesshh 
rreennddeerr mmeesshh ((GG--bbuuffffeerrss)) 
ffoorr eeaacchh lliigghhtt 
rreennddeerr lliigghhtt qquuaadd 
OO((MM++LL)) 
SShhaaddiinngg 跟GGeeoommeettrryy PPaassss分離
材質屬性有限制
MMuullttii--SSaammpplliinngg不相容
記憶體需求大
LLiigghhtt PPrree--PPaassss SShhaaddiinngg 
PPrree-- 
LLiigghhttiinngg 
RReennddeerr 
SScceennee
LLiigghhtt PPrree--PPaassss SShhaaddiinngg 
22 GGeeoommeettrryy PPaasssseess ++ 11 LLiigghhttiinngg PPaassss 
速度較DDeeffeerrrreedd SShhaaddiinngg慢一些
材質屬性變化大
記憶體需求低一些
不支援MMRRTT的硬體也適用
MMuullttii--SSaammpplliinngg
MMSSAAAA OOvveerrvviieeww
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}} 
}};;
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
MMSSAAAA ffoorr DDeeffeerrrreedd SShhaaddiinngg
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;; 
}};;
PPoosstt--PPrroocceessssiinngg AAAA 
MMLLAAAA 
FFXXAAAA 
EEddggee ppiixxeellss ddeetteecctteedd bbyy MMLLAAAA ((iinn rreedd))EEddggee ppiixxeellss ddeetteecctteedd bbyy FFXXAAAA ((iinn rreedd))
GGaammmmaa CCoorrrreeccttiioonn
GGaammmmaa CCoorrrreeccttiioonn 
美術產生的貼圖已做過GGaammmmaa CCoorrrreeccttiioonn,,資
料非lliinneeaarr 
因此用來計算lliigghhttiinngg會產生誤差
正確作法應將貼圖的GGaammmmaa修正為lliinneeaarr 
或是美術直接輸出lliinneeaarr貼圖
在PPiixxeell SShhaaddeerr中做sshhaaddiinngg 
最後再將最後結果做一次GGaammmmaa CCoorrrreeccttiioonn後
輸出到螢幕上
新的GGPPUU都有支援硬體GGaammmmaa CCoorrrreeccttiioonn
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格式
GGaammmmaa CCoorrrreeccttiioonn
GGaammmmaa CCoorrrreeccttiioonn
WWee aarree hhiirriinngg!! 
GGaammee DDeessiiggnneerr 
22DD AArrttiisstt 
CCoonnttaacctt :: 
oowweenn..wwuu@@qquubbiitteenntt..ccoomm
QQ&&AA 
oowweenn..wwuu@@qquubbiitteenntt..ccoomm

Weitere ähnliche Inhalte

Ähnlich wie [TGDF 2014] 進階Shader技術

pengenalan perangkat keras komputer
pengenalan perangkat keras komputerpengenalan perangkat keras komputer
pengenalan perangkat keras komputerzee120196
 
MODUL 1 - PERANGKAT KERAS
MODUL 1 - PERANGKAT KERASMODUL 1 - PERANGKAT KERAS
MODUL 1 - PERANGKAT KERASBenar Setya
 
Perangkat Keras Hardware
Perangkat Keras HardwarePerangkat Keras Hardware
Perangkat Keras HardwareJohan19931106
 
CS201- Introduction to Programming- Lecture 38
CS201- Introduction to Programming- Lecture 38CS201- Introduction to Programming- Lecture 38
CS201- Introduction to Programming- Lecture 38Bilal Ahmed
 
Test Automation Myths
Test Automation MythsTest Automation Myths
Test Automation Mythskevinburr
 
Penetration testing: A proactive approach to secure computing - Eric Vanderbu...
Penetration testing: A proactive approach to secure computing - Eric Vanderbu...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 boundariesE commerce   shop beyond the boundaries
E commerce shop beyond the boundariesMike Taylor
 
Ethernet Over CoAxial(EOC)
Ethernet Over CoAxial(EOC)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 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 29CS201- Introduction to Programming- Lecture 29
CS201- Introduction to Programming- Lecture 29Bilal Ahmed
 
CS201- Introduction to Programming- Lecture 13
CS201- Introduction to Programming- Lecture 13CS201- Introduction to Programming- Lecture 13
CS201- Introduction to Programming- Lecture 13Bilal Ahmed
 
Monitoring (with) puppet
Monitoring  (with) puppetMonitoring  (with) puppet
Monitoring (with) puppetKris Buytaert
 
Edit data base menggunakan web
Edit data base menggunakan webEdit data base menggunakan web
Edit data base menggunakan webhaviedz miftah
 

Ähnlich wie [TGDF 2014] 進階Shader技術 (20)

pengenalan perangkat keras komputer
pengenalan perangkat keras komputerpengenalan perangkat keras komputer
pengenalan perangkat keras komputer
 
Hardware
HardwareHardware
Hardware
 
MODUL 1 - PERANGKAT KERAS
MODUL 1 - PERANGKAT KERASMODUL 1 - PERANGKAT KERAS
MODUL 1 - PERANGKAT KERAS
 
Hardware
HardwareHardware
Hardware
 
Perangkat keras komputer
Perangkat keras komputerPerangkat keras komputer
Perangkat keras komputer
 
Perangkat Keras Hardware
Perangkat Keras HardwarePerangkat Keras Hardware
Perangkat Keras Hardware
 
CS201- Introduction to Programming- Lecture 38
CS201- Introduction to Programming- Lecture 38CS201- Introduction to Programming- Lecture 38
CS201- Introduction to Programming- Lecture 38
 
Test Automation Myths
Test Automation MythsTest 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...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 boundariesE commerce   shop beyond the boundaries
E commerce shop beyond the boundaries
 
MS Unit-6
MS Unit-6MS Unit-6
MS Unit-6
 
Ethernet Over CoAxial(EOC)
Ethernet Over CoAxial(EOC)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) 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 29CS201- Introduction to Programming- Lecture 29
CS201- Introduction to Programming- Lecture 29
 
PMANIKANDAN CV-E&I
PMANIKANDAN CV-E&I PMANIKANDAN CV-E&I
PMANIKANDAN CV-E&I
 
CS201- Introduction to Programming- Lecture 13
CS201- Introduction to Programming- Lecture 13CS201- Introduction to Programming- Lecture 13
CS201- Introduction to Programming- Lecture 13
 
Monitoring (with) puppet
Monitoring  (with) puppetMonitoring  (with) puppet
Monitoring (with) puppet
 
Edit data base menggunakan web
Edit data base menggunakan webEdit data base menggunakan web
Edit data base menggunakan web
 
ram new
ram newram new
ram new
 
Dr. Farshad Alikhani-Aban-1395
Dr. Farshad Alikhani-Aban-1395Dr. Farshad Alikhani-Aban-1395
Dr. Farshad Alikhani-Aban-1395
 

Mehr von Owen Wu

Unreal Fest 2023 - Lumen with Immortalis
Unreal Fest 2023 - Lumen with ImmortalisUnreal Fest 2023 - Lumen with Immortalis
Unreal Fest 2023 - Lumen with ImmortalisOwen Wu
 
COSCUP 2023 - Make Your Own Ray Tracing GPU with FPGA
COSCUP 2023 - Make Your Own Ray Tracing GPU with FPGACOSCUP 2023 - Make Your Own Ray Tracing GPU with FPGA
COSCUP 2023 - Make Your Own Ray Tracing GPU with FPGAOwen Wu
 
Unity mobile game performance profiling – using arm mobile studio
Unity mobile game performance profiling – using arm mobile studioUnity mobile game performance profiling – using arm mobile studio
Unity mobile game performance profiling – using arm mobile studioOwen Wu
 
[Unite Seoul 2020] Mobile Graphics Best Practices for Artists
[Unite Seoul 2020] Mobile Graphics Best Practices for Artists[Unite Seoul 2020] Mobile Graphics Best Practices for Artists
[Unite Seoul 2020] Mobile Graphics Best Practices for ArtistsOwen Wu
 
[TGDF 2020] Mobile Graphics Best Practices for Artist
[TGDF 2020] Mobile Graphics Best Practices for Artist[TGDF 2020] Mobile Graphics Best Practices for Artist
[TGDF 2020] Mobile Graphics Best Practices for ArtistOwen Wu
 
[Unity Forum 2019] Mobile Graphics Optimization Guides
[Unity Forum 2019] Mobile Graphics Optimization Guides[Unity Forum 2019] Mobile Graphics Optimization Guides
[Unity Forum 2019] Mobile Graphics Optimization GuidesOwen Wu
 
[TGDF 2019] Mali GPU Architecture and Mobile Studio
[TGDF 2019] Mali GPU Architecture and Mobile Studio[TGDF 2019] Mali GPU Architecture and Mobile Studio
[TGDF 2019] Mali GPU Architecture and Mobile StudioOwen Wu
 
[Unite Seoul 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
[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...[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 ImmortalisUnreal 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 FPGACOSCUP 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 studioUnity 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[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[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[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[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 [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...[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技術