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
Classical Ray Tracing
Search
yumcyawiz
June 03, 2018
Programming
0
670
Classical Ray Tracing
yumcyawiz
June 03, 2018
Tweet
Share
More Decks by yumcyawiz
See All by yumcyawiz
fredholm(rtcamp9)
yumcyawiz
0
61
フォトンマッピングをパス空間から考える
yumcyawiz
0
240
fredholm
yumcyawiz
0
160
Introduction to volume rendering
yumcyawiz
0
1.6k
OSK#p-ray2020年度講義: 古典的レイトレーサーの実装
yumcyawiz
0
230
Ray Tracing: Overview
yumcyawiz
7
1.2k
GLSLでパストレーシングしてコーネルボックスを出す
yumcyawiz
0
350
Pybind11でC++とPythonのいいとこ取りをする
yumcyawiz
0
750
Path Tracing in 5 minutes
yumcyawiz
1
280
Other Decks in Programming
See All in Programming
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
2
170
スクラムガイドのスプリントレトロスペクティブを改めて読みかえしてみた / Re-reading the Sprint Retrospective Section in the Scrum Guide
mackey0225
3
420
2 週間で Twitter Bot を作ってみた
contour_gara
0
380
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
840
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
250
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
Rethinking UI building strategies @ SFI 2024
letelete
0
270
Elm Form Validation
bkuhlmann
0
510
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
780
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
380
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
170
Featured
See All Featured
KATA
mclloyd
15
12k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Navigating Team Friction
lara
178
13k
Scaling GitHub
holman
457
140k
Building a Modern Day E-commerce SEO Strategy
aleyda
17
6.4k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
We Have a Design System, Now What?
morganepeng
43
6.7k
A Philosophy of Restraint
colly
197
16k
Testing 201, or: Great Expectations
jmmastey
28
6.4k
Transcript
RAY TRACING 古典的レイトレーサーからはじめるレイトレーシング
古典的レイトレーシング(CLASSICAL RAY TRACING) • コンピューターグラフィクス黎明期に流行ったもの
古典的レイトレーシング(CLASSICAL RAY TRACING) • コンピューターグラフィクス黎明期に流行ったもの • 物理的に正しくはないが、陰影計算ができる
None
CG感半端ないけどちゃんと影ついてる
古典的レイトレーシング(CLASSICAL RAY TRACING) • コンピューターグラフィクス黎明期に流行ったもの • 物理的に正しくはないが、陰影計算ができる • はじめてのレイトレに最適
古典的レイトレーシング(CLASSICAL RAY TRACING) • コンピューターグラフィクス黎明期に流行ったもの • 物理的に正しくはないが、陰影計算ができる • はじめてのレイトレに最適 これからみんなに作ってもらいます
CLASSICAL RAY TRACER構造図
VEC3クラス • 3次元ベクトルを表すクラス • 四則演算、内積、外積なども定義されている Ԧ +
RAYクラス • Rayを表す Ԧ Ԧ Ԧ + Ԧ
HITクラス • 衝突情報を格納するクラス • 衝突距離、衝突位置、法線などの情報を持つ Sphere Ray
IMAGEクラス • 画像データを格納し、PPM画像として出力する機能を持つ • 指定した画素に色を書き込む機能を持つ
(, ) 画像の座標系(10*8の場合) (0, 0) (10, 8) 10 8
CAMERAクラス • 画素 , に対応するRayを返す機能を持つ (, ) Ray
ピンホールカメラ ピンホール カメラセンサー
SHAPEクラス • 物体の形を表すクラス • 与えられたRayとの衝突計算を行う Sphere Ray
MATERIALクラス • 物体の材質を表すクラス • Diffuse(マットな面), Mirror(鏡面), Glass(ガラス)の3つを用意する • 受け取ったRayを反射させる機能を持つ Sphere
Ray
PRIMITIVEクラス • ShapeとMaterialをデータとして持つクラス • シーンの中の物体はすべてPrimitiveで記述される
ACCELクラス • 物体集合を管理するクラス • すべての物体と衝突計算を行う機能を持つ
ray = cam->getRay(i, j) accel->intersect(ray, hit) hitの中身によって画素に色を書き 込む Ray Tracingの流れ