Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SceneKitでふんわりした影を描画する/potatotips58
Search
noppefoxwolf
January 28, 2019
Programming
2
1.9k
SceneKitでふんわりした影を描画する/potatotips58
noppefoxwolf
January 28, 2019
Tweet
Share
More Decks by noppefoxwolf
See All by noppefoxwolf
Spice up your notifications/try!Swift25
noppefoxwolf
2
420
iOSの隠されたAPIを解明し、開発効率を向上させる方法/iOSDC24
noppefoxwolf
2
730
今から理解するApp Intentエコシステム/WWDC24Recap
noppefoxwolf
0
11
既存アプリをvisionOS対応してリリースした話/visionOS LT vol5
noppefoxwolf
0
190
UIのブラックボックスを探る/iOSDC23
noppefoxwolf
3
4.3k
CoreGraphicsでドット絵を描こう/iOSDC22
noppefoxwolf
0
2.5k
ランタイムデバッグのススメ/iOSDC21
noppefoxwolf
1
4.6k
google/mediapipe で始めるARアプリ開発/iOSDC2020
noppefoxwolf
1
1.5k
モバイルファーストなアプリを作るためにvearがしたこと/xRDCC
noppefoxwolf
0
140
Other Decks in Programming
See All in Programming
CSC307 Lecture 17
javiergs
PRO
0
120
KotlinConf 2025 現地参加の土産話
n_takehata
0
100
エンジニア向け採用ピッチ資料
inusan
0
130
Select API from Kotlin Coroutine
jmatsu
1
180
A2A プロトコルを試してみる
azukiazusa1
2
630
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
290
Gleamという選択肢
comamoca
6
740
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
380
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
750
イベントストーミングから始めるドメイン駆動設計
jgeem
4
860
[初登壇@jAZUG]アプリ開発者が気になるGoogleCloud/Azure+wasm/wasi
asaringo
0
130
CursorはMCPを使った方が良いぞ
taigakono
0
110
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
39
1.8k
Designing for humans not robots
tammielis
253
25k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Facilitating Awesome Meetings
lara
54
6.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
How to Ace a Technical Interview
jacobian
276
23k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Stop Working from a Prison Cell
hatefulcrawdad
269
20k
4 Signs Your Business is Dying
shpigford
184
22k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
4DFOF,JUͰ;ΜΘΓͨ͠ӨΛ࡞Δ QPUBUPUJQT
ϥΠϒ৴ΞϓϦ1PDPDIB IUUQTNFEJVNDPNQPDPDIBFOHJOFFSJOH
OPQQF !OPQQFGPYXPMG ! 1PDPDIBJ04ΤϯδχΞ " ͖ͭͶ͔Θ͍͍ # J04%$ͰඳըपΓͷΛͨ͠ $ ࠷ۙ"3ʹڵຯ͋Γ
ϥΠϒ৴ΞϓϦ
J04͔ΒVTE[Λαϙʔτ VTE["QQMFͱ1JYFSͰڞಉ։ൃͨ͠%ϑΝΠϧϑΥʔ Ϛοτ
'JMFͰϓϨϏϡʔ "3ஔՄೳ
'JMFͷϓϨϏϡʔͷ Өʹ
88%$Ͱ$POUBDU4IBEPXͱදݱ IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED UJNF
$POUBDU4IBEPXʢ ৮Өʣͱ ײɾॏͳΓײΛग़ͨ͢Ίͷ ͷ IUUQTUXJUUFSDPNVOSFBMFOHJOFKQTUBUVT
$POUBDU4IBEPXͬͯΈ͍ͨʂ
4DFOF,JUͰӨΛ͚ͭͯΈΔ w 4$/-JHIUͷDBTUT4IBEPXΛ0/ʹ͢Δ w EJSFDUJPOBM͔ɺTQPUλΠϓΛ͏ IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOTDFOFLJUTDOMJHIU DBTUTTIBEPX
// ΦϒδΣΫτ let scene = SCNScene(named: "stratocaster.scn")! // ϥΠτ let
light = SCNLight() light.type = .directional light.castsShadow = true let lightNode = SCNNode() lightNode.light = light // চ let floor = SCNFloor() ...
4$/-JHIUͰ͖ͬΓͨ͠Өʹ ͳͬͯ͠·͏ɻ
ҰԠ4IEBPX3BEJVT͋Δ͕ɺϘ Χ͠ํ͕ࡶ lightNode.light!.shadowRadius = 16 lightNode.light!.shadowSampleCount = 16
άά͍ͬͯΔͱɺήʔϜͷهࣄ͕ώοτ IUUQCMPHTJNPOSPESJHVF[GSBSUJDMFTBGFXTDOUFDIOJRVFFYBNQMFTIUNM
TDSFFOTQBDFBNCJFOUPDDMVTJPO ମ͕ۙͯ͠ڱ͘ͳͬͨͱ͜Ζ෦ͷ۱ͳͲʹɺपғͷޫʢڥ ޫʣ͕ःΒΕΔ͜ͱʹΑͬͯӨ͕ݱΕΔݱΛΞϯϏΤϯτɾΦΫ ϧʔδϣϯʢڥःṭڥด࠹ɺӳBNCJFOUPDDMVTJPOʣͱݺ Ϳɻ44"0%ը໘ͷϨϯμϦϯά݁ՌʹޙॲཧΛ͔͚ΔϙετΤ ϑΣΫτͷҰछͰ͋ΓɺٖࣅతͳϨϯμϦϯά݁ՌʹՃ͢ΔͷͰ ͋Δɻ IUUQTKBXJLJQFEJBPSHXJLJ44"0
44"0 camera?.screenSpaceAmbientOcclusionIntensity = 5 camera?.screenSpaceAmbientOcclusionNormalThreshold = 0.1 camera?.screenSpaceAmbientOcclusionDepthThreshold = 0.08
camera?.screenSpaceAmbientOcclusionBias = 0.33 camera?.screenSpaceAmbientOcclusionRadius = 3.0
໘Ҏ֎ͷՕॴͷӨ͋Δ
;ΜΘΓͨ͠ӨࣗલͰඳը͠ͳ͍ ͱμϝͦ͏
4$/5FDIOJRVF w ϚϧνύεϨϯμϦϯάͷͨΊͷΫϥε ը໘̍ճͷߋ৽ͷؒʹɺҟͳΔγʔϯΛෳճϨϯ μϦϯάͯ͠߹ͨ݁͠ՌΛදࣔ͢Δػೳɻ .FUBM0QFO(-&4ͰγΣʔμΛॻ͘ࣄ͕ग़དྷΔɻ ೖྗʹγʔϯͷ৭ใਂใ͕͑Δ
ͬͯΈͨ ΧϝϥΛೋͭஔͯ͠ɺԼ͔ΒͷೖྗΛਂʹม͠ ͯϒϥʔΛ͔͚Δɻ
IUUQCMPHTJNPOSPESJHVF[GSBSUJDMFTBGFXTDOUFDIOJRVFFYBNQMFTIUNM
Ө͚ͩ࡞ͬͯΈͨ w Α͘ΈΔͱϞΞϨʢࣶ༷ʣ ͕ʜ w ͦͦΧϝϥஔ͘ͷʜ w γΣʔμਅ໘ʹॻ͜͏ͱ͢Δ ͱαΫοͱग़དྷͳͦ͏
ସҊΛ୳͢
HPCP 4$/-JHIUͷӨΛࣗલͷը૾Ͱඳ ը͢Δػೳ ӨΛൃࣹ͢ΔϥΠτ ϦΞϧλΠϜͰߋ৽ग़དྷͳ͍
HPCP w 4$/5FDIOJRVFͰਂը૾ʹม w 4$/7JFXͷTOBQTIPUͰ6**NBHFΛऔಘ w $*'JMUFSͰϒϥʔΛ͔͚Δ w 4$/-JHIUͷHPCPʹը૾Ληοτ
݁Ռ
՝ w Өͷೱ୶ͳͲ·ͩ'JMFͷදݱʹୡ͍ͯ͠ͳ͍ w 4$/5FDIOJRVFͰશͯ݁ग़དྷΔ͔ w TIBEFS.PEJpFSTͰϥΠςΟϯάγΣʔμ͕࿔ΕΔ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ