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
710
Classical Ray Tracing
yumcyawiz
June 03, 2018
Tweet
Share
More Decks by yumcyawiz
See All by yumcyawiz
rtcamp 10 (vk-illuminati)
yumcyawiz
1
340
ReSTIRの数理と実装 (rtcamp10)
yumcyawiz
1
950
fredholm(rtcamp9)
yumcyawiz
0
110
フォトンマッピングをパス空間から考える
yumcyawiz
0
420
fredholm
yumcyawiz
0
280
Introduction to volume rendering
yumcyawiz
0
2.2k
OSK#p-ray2020年度講義: 古典的レイトレーサーの実装
yumcyawiz
0
270
Ray Tracing: Overview
yumcyawiz
7
1.2k
GLSLでパストレーシングしてコーネルボックスを出す
yumcyawiz
0
510
Other Decks in Programming
See All in Programming
カウシェで Four Keys の改善を試みた理由
ike002jp
1
100
AI時代の開発者評価について
ayumuu
0
200
Cursorを活用したAIプログラミングについて 入門
rect
0
100
Dissecting and Reconstructing Ruby Syntactic Structures
ydah
2
1.3k
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
1
3.5k
The Implementations of Advanced LR Parser Algorithm
junk0612
1
830
KawaiiLT 登壇資料 キャリアとモチベーション
hiiragi
0
150
Deoptimization: How YJIT Speeds Up Ruby by Slowing Down / RubyKaigi 2025
k0kubun
0
1.4k
生成AIを使ったQAアプリケーションの作成 - ハンズオン補足資料
oracle4engineer
PRO
3
260
AHC045_解説
shun_pi
0
560
ComposeでWebアプリを作る技術
tbsten
0
120
Instrumentsを使用した アプリのパフォーマンス向上方法
hinakko
0
130
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
135
33k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
GraphQLとの向き合い方2022年版
quramy
46
14k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Product Roadmaps are Hard
iamctodd
PRO
52
11k
Rebuilding a faster, lazier Slack
samanthasiow
81
8.9k
The Cost Of JavaScript in 2023
addyosmani
49
7.7k
Music & Morning Musume
bryan
47
6.5k
BBQ
matthewcrist
88
9.6k
Documentation Writing (for coders)
carmenintech
69
4.7k
Become a Pro
speakerdeck
PRO
27
5.3k
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の流れ