1.3K Views
September 26, 19
スライド概要
2019/9/25-6に開催されたUnite Tokyo 2019の講演スライドです。
パウロ シルバ(エヌビディア)
こんな人におすすめ
・Unityでレイトレーシングをやってみたい人、もしくは、やってみたけどうまくいかなかった人
・Unityを使って美しいレンダリングをしてみたい人
受講者が得られる知見
・Unityのレイトレーシング機能に関する基本的な理解
・Unityのレイトレーシング機能の効果的な使い方と最適化の方法
Unityのイベント資料はこちらから:
https://www.slideshare.net/UnityTechnologiesJapan/clipboards
リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。
Real-Time Ray Tracing Paulo Silva Developer Technology Engineer, NVIDIA
Announcements • Target Audience: • • Level: • • • Engineers & Technical Artists Beginner (no programming) Intermediate (some programming) Warning: • This is Beta software and is still changing • Slides will be available • Session recording will also be available 3
Outline • History Of Ray-Tracing • Rasterization vs Ray-Tracing • Basic Example • Scriptable Pipelines & DXR Details • Performance Advice • More Resources 4
History of Ray-Tracing 5
What is Ray-Tracing? • Rendering method • Simulates light path • Most modern movies use it for SFX • Photo-realistic rendering • Car & Architecture visualization 6 Rendered in unity using real-time ray tracing
History • Whitted 1980 • Cook 1984 • Kajiya 1986 • Shiny • Fuzzy • Path Tracing • Reflections • Motion Blur • Rendering Equation • Refractions • Soft Shadows • Diffuse Interreflections • Shadows • Caustics 7
History • Whitted 1980 • Cook 1984 • 8 Kajiya 1986
Rasterization vs Ray-Tracing 9
Rasterization: Very Simplified Vertex Shader Rasterizer 10 Pixel Shader
Ray-Tracing: Very Simplified Trace Rays Intersection Test 11 Shade & Trace
Rasterization vs Ray-Tracing: Key Ideas Rasterizer Ray Tracing Question Which pixel □ does triangle △ cover? Which triangles △ does pixel □ see? Operation Pixel □ in triangle △ Ray → triangle △ intersection Streaming Triangles △ Rays → Inefficiency Overdraw △ Many → collisions Speedups Bounding volume hierarchy BVH (AABBs) (Hierarchical) Z-buffering 12
Rasterization: Hacks SSAO Shadow Maps SSR 13
Rasterization vs Ray-Tracing: AO SSAO Ray-Tracing AO 14
Rasterization vs Ray-Tracing: Shadows Shadow Maps (No baked light maps) Ray-Tracing Shadows 15
Rasterization vs Ray-Tracing: Reflections #1 SSR Ray-Tracing Reflections 16
Rasterization vs Ray-Tracing: Reflections #2 SSR Ray-Tracing Reflections 17
Basic Example 18
Basic Example • No programming needed • Setup needed to get started • Shows off the main features • • • • • Reflections Shadows Ambient Occlusion Global Illumination Compare to Rasterization Cornell Box 19
System Requirements • RTX GPU for complex Ray Tracing Effects* • Windows 10 v1809 • Unity 2019.3b1 20
Setup • In Player settings set: • • • DirectX12 (Experimental) REALTIME_RAYTRACING_SUPPORT ENABLE_RAYTRACING 21
Basic Demo Scene • Let’s create a Cornell Box 22
Basic Demo: Add Ray Tracing • Add the Raytracing Environment 23
Basic Demo: Reflections After Before 24
Basic Demo – Shadows After Before 25
Basic Demo – Indirect Illumination After Before 26
Basic Demo: Raster vs Ray Tracing Ray-Tracing Raster (no baked lights) 27
Scriptable Pipelines & DXR Details 28
Scriptable Pipelines & DXR Details Required for next section: • DXR shader types • Acceleration structures What is DXR? • DXR = D3D12 ray tracing • HDRP uses Scriptable Pipelines • These use DXR ray tracing DXR shaders in HDRP 29
DXR Shaders • Ray Generation • • Closest-hit • • e.g.: sample skybox Any-hit • • e.g.: calculate color Miss shader • • defines how rays start run once per hit for transparency Intersection • Intersect arbitrary shapes DXR Shader Graph 30
DXR Acceleration Structures Acceleration Structure Bounding Boxes are Axis Aligned (AABB) 34
Performance Advice 35
Performance Advice - Reflections Smooth – Coherent Rays Rough – Rays Diverge • • Smooth reflective surfaces are cheaper than rough surfaces Keep shaders simple when using rough surfaces 36
Performance Advice -Transparency Opaque – No Any-Hit call Transparent – many Any-Hits calls • • Keep Any-Hit shaders simple When possible make objects opaque (Use LOD) 37
Performance Advice – Acceleration Structures Static Object • Dynamic Rigid Body Correctly tag objects as static, dynamic, animated 38 Animated Character
Performance Advice – Acceleration Structures AS AS AS AS One Object ☺ Separate Objects ☹ • Group geometry together when possible 39
Performance Advice Performance Quality Ray Count Ray Length Denoiser Quality Small Transparent Objects 40
More Resources 43
More Resources • Ray-Tracing Gems (free pdf): http://www.realtimerendering.com/raytracinggems/ • SIGGRAPH 2018 DXR Tutorial: http://intro-to-dxr.cwyman.org/ • Gameworks Ray-Tracing: https://developer.nvidia.com/gameworks-ray-tracing • DXR Specification: https://microsoft.github.io/DirectX-Specs/d3d/Raytracing.html • Unity HDRP DXR Build: get 2019.3b1 from unity hub, or download the following version https://github.com/Unity-Technologies/Unity-Experimental-DXR 44
Please try real-time ray tracing and make something amazing! Thank You 45