デモシーンへようこそ
4KBで映像作品を作る技術、およびゲーム開発への応用
TokyoDemoFest Organizers:
Seiya Ishibashi / Julien Guertault
はじめに
About Us
Seiya Ishibashi
(@i_saint)
Julien Guertault
(@Zavie)
Agenda
前回のおさらい
Agenda
前回のおさらい
前回のおさらい
Distance Function & Raymarching
Distance Function & Raymarching
Distance Function & Raymarching
Distance Function & Raymarching
Distance Function & Raymarching
Distance Function & Raymarching
Distance Function & Raymarching
Distance Function & Raymarching
Distance Function & Raymarching
Distance Function & Raymarching
64k intro 制作から学んだこと
Agenda
Professional and hobbyist programmer.��“What do you do on your free time?”
“Same as at work.”
Demoscene: making demos with Ctrl-Alt-Test.
デモシーンについて
Ctrl-Alt-Testと言うグループ
デモシーンについて
64k intro: H - Immersion (2017)
64k intro: H - Immersion (2017)
例・調査船
例・調査船
例・調査船
例・調査船
例・調査船
メッシュ: ~934 バイト
テクスチャ: ~1013 バイト
misc/shared: +20~25% (?)
例・調査船
例・調査船
例・調査船
例・アルテミス神殿
世界の七不思議のひとつに挙げられている
例・アルテミス神殿
例・アルテミス神殿
人間
例・アルテミス神殿
例・アルテミス神殿
石像の
テスト
例・アルテミス神殿
アルテミス神殿のメッシュ: ~1174 バイト
柱のメッシュ: ~817 バイト
塑像のメッシュ: ~1461 バイト
アルテミス神殿のテクスチャ: ~1370 バイト
柱のテクスチャ: ~592 バイト
misc/shared: +20~25% (?)
サイズについて
メッシュ
音楽
テキスチャ
シェーダー
シーン
ベース
共同
Size-codingは楽しい。それに、面白いです。
But not very useful. :-)
So let’s talk about more useful things.
作成について
Ctrl-Alt-Testと言うグループ
⇒ UE4, Unity, Photoshop, Maya, mp3 :-(
⇒ Very limited manpower :-(
作成について
Reduce iteration time:
作成について
Hot reload code:
作成について
Abuse your tools!
デバッグについて
Visual Studio?
デバッグについて
デバッグについて
Have an error message?
→ Will appear in IDE console; double click will jump to location.
デバッグについて
Have an abstraction?
Graphic API abstraction class?
Write a debug implementation.
→ Insert a debug layer.
デバッグについて
H - Immersion
64k intro, 2017
デモ
ゲーム制作への応用
Agenda
Pros:
Cons:
ゲーム制作への応用
ポリゴンモデルとの混在
ポリゴンモデルとの混在
G-Buffer 生成
G-Buffer 生成
G-Buffer 生成
G-Buffer 生成
G-Buffer 生成
G-Buffer 生成
Forward Shading の場合
Object Space Raymarching
Object Space Raymarching
Object Space Raymarching
Object Space Raymarching
Object Space Raymarching
Bounding Volume
Result
Raymarching 高速化
Raymarching 高速化
Hierarchical Raymarching
Hierarchical Raymarching
Hierarchical Raymarching
Temporal Raymarching
Temporal Raymarching
Temporal Raymarching
Conservative Depth Output
Conservative Depth Output
Conservative Depth Output
その他使えるかもしれないテクニック
その他使えるかもしれないテクニック
その他使えるかもしれないテクニック
Enhanced Sphere Tracing
Enhanced Sphere Tracing
その他使えるかもしれないテクニック
事前サンプリングによる近似モデル
事前サンプリングによる近似モデル
ゲームへの応用: まとめ
ゲームへの応用: まとめ
正解するカド (©TOEI ANIMATION)
実プロダクションに使われた例
Questions?
End
Tokyo Demo Fest
http://tokyodemofest.jp/2017/�https://twitter.com/TokyoDemoFest�https://twitter.com/TokyoDemoFestEN�
Ctrl-Alt-Test
References
kkrunchy�http://www.farbrausch.de/~fg/kkrunchy/�https://github.com/farbrausch/fr_public/tree/master/kkrunchy�
PicoC�https://github.com/zsaleeba/picoc
Tweakable values�https://github.com/joeld42/ld48jovoc/blob/master/ld17_island/tweakval.h�https://www.gamedev.net/resources/_/technical/game-programming/tweakable-constants-r2731
Runtime Compiled C++�https://github.com/RuntimeCompiledCPlusPlus/RuntimeCompiledCPlusPlus
References
References
Bonus slides (Zavie)
サイズについて
Removed marching cubes algorithm
Improved shader compression�(ShaderMinifier)
Add back marching cubes + Poseidon statue
サイズについて
Party release at Revision�(April 2017)
__fastcall
New scene
Syntax highlighting?
→ Local/global, variable/function, class/namespace, etc.
デバッグについて
デバッグについて
Macros!
(隠しコード)
Global!�(危ない所かも)
Namespaces�(外のコード)