Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Basic 3D Math for ARKit
Search
KBOY
September 15, 2018
Technology
830
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Basic 3D Math for ARKit
KBOY
September 15, 2018
More Decks by KBOY
See All by KBOY
How to make Stripe and RevenueCat coexist in an app
fujikawakei
0
180
iOS15から使えるScreenTimeAPIをFlutterアプリで動かす
fujikawakei
0
170
FlutterエンジニアがFlutterFlowを使ってみた感想
fujikawakei
0
210
Flutterと課金
fujikawakei
0
190
【スタートアップ開発者必見】firebaseとalgoliaとstripeで1人で本格的なiOSアプリを作る方法
fujikawakei
2
650
ARCore-Kotlin-Sampler作ってきました
fujikawakei
0
310
ARKitのための3D算数
fujikawakei
3
5.4k
ARKitでお絵かきする方法2選
fujikawakei
0
2.2k
assertion を積極的に使って 役立った話
fujikawakei
0
2.2k
Other Decks in Technology
See All in Technology
並行性の問題を防げ!実践トランザクション入門
occhi
0
280
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
680
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
6
5.6k
初対面のメンバーがチームを組み、Claude Codeでゼロからサービスをリリース
mkdev10
1
120
ハードウェアコンペでもAI駆動開発が進んでいる話
iotengineer22
1
670
USB PDを使ってスマホを労わりたい
raspython3
0
120
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
350
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
350
Incremental HTTP
kazuho
5
2.1k
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
120
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
0
260
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
280
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
RailsConf 2023
tenderlove
30
1.6k
Bash Introduction
62gerente
615
220k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Producing Creativity
orderedlist
PRO
348
41k
How to train your dragon (web standard)
notwaldorf
96
6.9k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
530
Exploring anti-patterns in Rails
aemeredith
4
530
Code Review Best Practice
trishagee
74
20k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
Transcript
Basic 3D Mathematics for ARKit Kei Fujikawa 2018.9.15@Tokyo iOS Meetup
Who?
Who?
Why is ے?
Spajam 2nd Prized Best Body Japan Held ے.swift Showing in Article Smooth-sailing?
Not so easy.
A bunch of ے
ے 4FOHPLV1FSJPE
AR!
Question!
Spajam 2nd Prized Best Body Japan Held ے.swift Showing in Article
I have to ride on this big wave.
So,
I joined AR startup this January
Graffity Inc.
Apps we’re making
I studied ARKit for so much time
Not so easy.
Let’s think about this example.
Place an airplane at the 30cm in front of screen’s
touched point.
None
Looks way too easy
Getting x,y from touch gesture and Z is 0.3?
Finally
None
It does not show
Ideal
None
Real
None
Not so easy
So,
I studied 3D programming.
Books I read for study IUUQTBN[OUP.4V.F( IUUQTBN[OUP1,'Z5
So,
Today I will explain 3D Programming clearly.
Basic 3D Mathematics for ARKit Kei Fujikawa 2018.9.15@Tokyo iOS Meetup
Today’s goal
Place an airplane at the 30cm in front of screen’s
touched point.
None
We will study •Coordinate systems •Method for coordinate transformation
Coordinate system for ARKit
Coordinates World Object Camera Screen Drawn by iPad Pro
World Coordinate system The biggest coordinates In your iPhone
Object Coordinate system Airplane’s own coordinate
Camera coordinate system ΧϝϥͷϩʔΧϧ࠲ඪ
Camera
Screen
Screen
Coordinates World Object Camera Screen Drawn by iPad Pro
Let’s check the Goal
Place an airplane at the 30cm in front of screen’s
touched point.
30cm Get x,y from tap gesture Place the object In
the world. Place at 30cm In front of camera Convert to world ᶃ ᶄ ᶅ Convert to Screen ᶆ ᶄ’ Convert to screen
ᶃPlace at 30cm in front of camera Minus 30cm
None
ᶄConvert to World
Convert from a coordinate to a coordinate
ᶄ’Convert to screen
World <-> Screen
ᶅGet x,y from tap gesture
ᶆPlace in the world
Screen <-> World
At 30cm Tapped position Convert Convert
Calculate at easy coordinate system
By the way
You can do it all in the screen coordinate
30cm Get x,y from tap gesture Place the object In
the world. Place at 30cm In front of camera Convert to world ᶃ ᶄ ᶅ Convert to Screen ᶆ ᶄ’ Convert to screen Removable
Removabl
It looks easier!!
Yes
You can code shorter
None
But
In fact
This 0.996 is Same with 0.3m in camera coordinate
What is 0.996?
Review for coordinate system
0.0 1.0 Screen’s z 0.001m 1000m Camera’s z
Screen’s Z
https://developer.apple.com/documentation/scenekit/scnscenerenderer/1522631-unprojectpoint Z is 0.0~1.0
Camera’s Z?
None
None
None
debug
None
Z is 0.01~1000
Let’s change zNear.
None
0.0 1.0 Screen’s z 0.001m 1000m Camera’s z
Screen’s z vs Camera’s z
http://www.alecjacobson.com/weblog/?p=3835 -0.001 -1000 0.996 screenZ = f(n + cameraZ)/((f −
n)cameraZ) -0.3 screenZ cameraZ
screenZ = f(n + cameraZ)/((f − n)cameraZ) screenZ = 1000(0.001
+ (−0.3))/((1000 − 0.002)(−0.3)) f = 1000 n = 0.001 cameraZ = − 0.3 screenZ = 0.9966...
Way too hassle
Removable?
Must
So,
Understanding Coordinate’s system And..
None
Make sense?
Let’s study more?
Make a airplane Bigger or Rotation
Scale
Rotate by SCNVector4 Axis Degree
Rotate by Euler angle
Rotate by Euler angle x
Rotate by Euler angle Y
Rotate by Euler angle Z
x Y Z
That’s it
One more thing.
Making ARKit 2.0 repository
End