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
High performance GIF playback/iOSDC25
noppefoxwolf
1
290
Spice up your notifications/try!Swift25
noppefoxwolf
3
750
iOSの隠されたAPIを解明し、開発効率を向上させる方法/iOSDC24
noppefoxwolf
2
920
今から理解するApp Intentエコシステム/WWDC24Recap
noppefoxwolf
0
25
既存アプリをvisionOS対応してリリースした話/visionOS LT vol5
noppefoxwolf
0
200
UIのブラックボックスを探る/iOSDC23
noppefoxwolf
3
4.5k
CoreGraphicsでドット絵を描こう/iOSDC22
noppefoxwolf
0
2.8k
ランタイムデバッグのススメ/iOSDC21
noppefoxwolf
1
4.9k
google/mediapipe で始めるARアプリ開発/iOSDC2020
noppefoxwolf
1
1.6k
Other Decks in Programming
See All in Programming
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
100
オープンソースソフトウェアへの解像度🔬
utam0k
17
3.2k
CSC305 Lecture 09
javiergs
PRO
0
320
モテるデスク環境
mozumasu
3
1.4k
登壇は dynamic! な営みである / speech is dynamic
da1chi
0
390
NIKKEI Tech Talk#38
cipepser
0
320
Node-REDのノードの開発・活用事例とコミュニティとの関わり(Node-RED Con Nagoya 2025)
404background
0
100
「ちょっと古いから」って避けてた技術書、今だからこそ読もう
mottyzzz
12
7.2k
Webサーバーサイド言語としてのRustについて
kouyuume
1
5k
CSC305 Lecture 12
javiergs
PRO
0
240
スキーマ駆動で、Zod OpenAPI Honoによる、API開発するために、Hono Takibiというライブラリを作っている
nakita628
0
330
Google Opalで使える37のライブラリ
mickey_kubo
3
160
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Balancing Empowerment & Direction
lara
5
700
Side Projects
sachag
455
43k
Practical Orchestrator
shlominoach
190
11k
Six Lessons from altMBA
skipperchong
29
4k
Being A Developer After 40
akosma
91
590k
Building Adaptive Systems
keathley
44
2.8k
Faster Mobile Websites
deanohume
310
31k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Bash Introduction
62gerente
615
210k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
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ͰϥΠςΟϯάγΣʔμ͕࿔ΕΔ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ