-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSamples.html
162 lines (157 loc) · 10.7 KB
/
Samples.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>OWL-Project: Samples
</title>
<link rel="stylesheet" type="text/css" media="screen" href="stylesheet.css">
</head>
<body>
<div id="styleheader">
<div id="header-github">
<a id="forkme-banner" href="https://github.com/owl-project/owl">View on GitHub</a>
</div>
<div id="header-title">
OWL - The Optix 7 Wrapper Library
</div>
<div id="header-navbar">
<ul>
<li id="selected"><a href="About.html">About</a></li><li id="selected"><a href="News.html">News</a></li><li id="selected"><a href="Samples.html">Samples</a></li> </ul>
</div>
<div id="header-spacing"></div>
</div>
<div id="content-wrap">
<div id="content">
<h1 id="samples">Samples</h1>
<h2 id="some-sample-projectspapers-that-recently-used-owl">Some sample projects/papers that recently used OWL:</h2>
<ul>
<li><p>Moana on OWL/OptiX (Oct 2020)</p>
<p>(https://ingowald.blog/2020/10/26/moana-on-rtx-first-light/)</p>
<figure>
<img src="jpg/collage-moana.jpg" alt="Sample “Moana on OWL/OptiX” images" class="widepic" /><figcaption>Sample “Moana on OWL/OptiX” images</figcaption>
</figure></li>
<li><p>"VisII - A Python-Scriptable Virtual Scene Imaging Interface (2020)</p>
<p>(https://github.com/owl-project/ViSII)</p>
<figure>
<img src="jpg/collage-visii.jpg" alt="Sample “VisII” images" class="widepic" /><figcaption>Sample “VisII” images</figcaption>
</figure></li>
<li><p>“Ray Tracing Structured AMR Data Using ExaBricks”. I Wald, S Zellmann, W Usher, N Morrical, U Lang, and V Pascucci. IEEE TVCG(Proceedings of IEEE Vis 2020).</p>
<p>(https://www.willusher.io/publications/exabrick)</p>
<figure>
<img src="jpg/collage-exabricks.jpg" alt="Sample “ExaBricks” images (Image Credits: See Authors)" class="widepic" /><figcaption>Sample “ExaBricks” images (Image Credits: See Authors)</figcaption>
</figure></li>
<li><p>“Accelerating Force-Directed Graph Drawing with RT Cores”. S Zellmann, M Weier, I Wald, IEEE Vis Short Papers 2020.</p>
<p>(https://arxiv.org/pdf/2008.11235.pdf)</p></li>
<li><p>“A Virtual Frame Buffer Abstraction for Parallel Rendering of Large Tiled Display Walls”. M Han, I Wald, W Usher, N Morrical, A Knoll, V Pascucci, C R Johnson. IEEE Vis Short Papers 2020.</p></li>
</ul>
<p>(http://www.sci.utah.edu/~wald/Publications/2020/dw2/dw2.pdf)</p>
<ul>
<li><p>“Spatial Partitioning Strategies for Memory-Efficient Ray Tracing of Particles”. P Gralka, I Wald, S Geringer, G Reina, Th Ertl. IEEE Symposium on Large Data Analysis and Viusalization (LDAV) 2020.</p></li>
<li><p>“Finding Efficient Spatial Distributions for Massively Instanced 3-d Models”. S Zellmann, N Morrical, I Wald, V Pascucci. Eurographics Symposium on Parallel Graphics and Visualization (EGPGV 2020).</p>
<p>(https://vis.uni-koeln.de/forschung/publikationen/finding-efficient-spatial-distributions-for-massively-instanced-3-d-models)</p>
<figure>
<img src="jpg/collage-instances.jpg" alt="Sample “Data Parallel Ray Tracing w/ OWL” images (Image Credits: See Authors)" class="widepic" /><figcaption>Sample “Data Parallel Ray Tracing w/ OWL” images (Image Credits: See Authors)</figcaption>
</figure></li>
<li><p>“High-Quality Rendering of Glyphs Using Hardware-Accelerated Ray Tracing”. S Zellmann, M Aumüller, N Marshak, I Wald. Eurographics Symposium on Parallel Graphics and Visualization (EGPGV 2020).</p>
<p>(https://vis.uni-koeln.de/forschung/publikationen/high-quality-rendering-of-glyphs-using-hardware-accelerated-ray-tracing)</p>
<figure>
<img src="jpg/collage-tubes.jpg" alt="Sample “ExaBricks” images (Image Credits: See Authors)" class="widepic" /><figcaption>Sample “ExaBricks” images (Image Credits: See Authors)</figcaption>
</figure></li>
<li><p>“RTX Beyond Ray Tracing: Exploring the Use of Hardware Ray Tracing Cores for Tet-Mesh Point Location”. I Wald, W Usher, N Morrical, L Lediaev, and V Pascucci. In High Performance Graphics Short Papers, 2019</p>
<p>(https://www.willusher.io/publications/rtx-points)</p></li>
<li><p>“Using Hardware Ray Transforms to Accelerate Ray/Primitive Intersections for Long, Thin Primitive Types”. I Wald, N Morrical, S Zellmann, L Ma, W Usher, T Huang, V Pascucci. Proceedings of the ACM on Computer Graphics and Interactive Techniques (Proceedings of High Performance Graphics), 2020</p>
<p>(https://www.willusher.io/publications/owltubes)</p></li>
<li><p>"Efficient Space Skipping and Adaptive Sampling of Unstructured Volumes Using Hardware Accelerated Ray Tracing. N Morrical, W Usher, I Wald, V Pascucci. In IEEE VIS Short Papers, 2019</p>
<p>(https://www.willusher.io/publications/rtx-space-skipping)</p></li>
</ul>
<!-- ======================================================= -->
<h1 id="owls-own-tutorial-style-samples">OWL’s own “Tutorial-Style” Samples</h1>
<p>The OWL repo itself contains a list of samples intended to only highlight/demonstrate certain individual technologies such as how to create a group, how to do multi-level instancing, etc. Here a overview over some of those:</p>
<!-- ======================================================= -->
<h3 id="ll08-sierpinski"><code>ll08-sierpinski</code></h3>
<p>The latest sample, demonstrating multi-level instancing:</p>
<ul>
<li><p>One geometry that contains exactly one pyramid</p></li>
<li><p>N levels of instances, each of which creates four shifted and scaled instances of the previous level</p></li>
<li><p>Number of levels configurable via command-line, via <code>--num-levels <N></code></p></li>
</ul>
<figure>
<img src="samples/ll08-sierpinski.png.jpg" alt="PNG file produced by this sample" class="samplepic" /><figcaption>PNG file produced by this sample</figcaption>
</figure>
<!-- ======================================================= -->
<h3 id="ll07-groupofgroups"><code>ll07-groupOfGroups</code></h3>
<figure>
<img src="samples/ll07-groupOfGroups.png.jpg" alt="PNG file produced by this sample" class="samplepic" /><figcaption>PNG file produced by this sample</figcaption>
</figure>
<!-- ======================================================= -->
<h3 id="ll06-rtow-mixedgeometries"><code>ll06-rtow-mixedGeometries</code></h3>
<ul>
<li><p>Extends <code>ll05</code> by replacing some of the spheres with boxes</p></li>
<li><p>Boxes are realized as triangle meshes, and organized in three different geometries (again, once per material).</p></li>
<li><p>To support both boxes and user geometries this sample is the first to use two <em>different</em> groups (one triangle group, one user geom group)</p></li>
<li><p>In this sample, device-code traces into the two different groups sequentially, then picks the closer of the two hitpoints</p></li>
</ul>
<figure>
<img src="samples/ll06-rtow-mixedGeometries.png.jpg" alt="PNG file produced by this sample" class="samplepic" /><figcaption>PNG file produced by this sample</figcaption>
</figure>
<!-- ======================================================= -->
<h3 id="ll05-rtow"><code>ll05-rtow</code></h3>
<ul>
<li><p>The first-ever “real” example that re-implements Ingo Wald original OptiX-6 based “Ray Tracing in one Weekend” example with OWL.</p></li>
<li><p>Three different CH programs - one each for Lambertian, Metal, and Dielectric.</p></li>
<li><p>Spheres are organized in three different geometry groups (one per material type), each of which has multiple spheres.</p></li>
<li><p>Material parameters are stored per-material, in a buffer per each geometry (i.e., the Lambertian spheres geom has a buffer of Lambertian material data, etc).</p></li>
</ul>
<figure>
<img src="samples/ll05-rtow.png.jpg" alt="PNG file produced by this sample" class="samplepic" /><figcaption>PNG file produced by this sample</figcaption>
</figure>
<!-- ======================================================= -->
<h3 id="ll04-usergeometry-boundsprog"><code>ll04-userGeometry-boundsProg</code></h3>
<ul>
<li><p>Similar to ll03, except that bounds are computed via a bounding box <em>program</em></p></li>
<li><p>Bounds program specified in the device-program, and added to the user geometry type, then automatically run on device (on owl-allocated memory) when the accel structure needs rebuild (same as OptiX 6 bounds program).</p></li>
</ul>
<figure>
<img src="samples/ll04-userGeometry-boundsProg.png.jpg" alt="PNG file produced by this sample" class="samplepic" /><figcaption>PNG file produced by this sample</figcaption>
</figure>
<!-- ======================================================= -->
<h3 id="ll03-usergeometry-boundsbuffer"><code>ll03-userGeometry-boundsBuffer</code></h3>
<ul>
<li><p>Replaces the triangle meshes in ll02 with user geometry</p></li>
<li><p>User geometry uses an intersection program to implement a sphere shape</p></li>
<li><p>in this sample, bounding box information for user geoms is passed via a (host-supplied) buffer of precomputed bounding boxes</p></li>
</ul>
<figure>
<img src="samples/ll03-userGeometry-boundsBuffer.png.jpg" alt="PNG file produced by this sample" class="samplepic" /><figcaption>PNG file produced by this sample</figcaption>
</figure>
<!-- ======================================================= -->
<h3 id="ll02-multipletrianglegroups"><code>ll02-multipleTriangleGroups</code></h3>
<ul>
<li><p>Replaces single box with eight different ones</p></li>
<li><p>Each box is its own triangle mesh, with its own SBT entry</p></li>
<li><p>SBT entry stores the material data, closest-hit shader pulls this to shade boxes with different colors.</p></li>
<li><p>Still one accel that contains all eight meshes</p></li>
</ul>
<figure>
<img src="samples/ll02-multipleTriangleGroups.png.jpg" alt="PNG file produced by this sample" class="samplepic" /><figcaption>PNG file produced by this sample</figcaption>
</figure>
<!-- ======================================================= -->
<h3 id="ll01-simpletriangles"><code>ll01-simpleTriangles</code></h3>
<p>This was the very first sample ever implemented for OWL (at a time when OWL could do exactly this sample, and nothing else).</p>
<p>Key features:</p>
<ul>
<li><p>a single triangle mesh (the box) with a single SBT entry</p></li>
<li><p>a single bottom-level acceleration structure</p></li>
<li><p>a minimalistic miss program that uses launch index to compute the black-and-red-squares pattern</p></li>
<li><p>a closest-hit program that computes geometry normal and dot N-dot-D shading.</p></li>
</ul>
<figure>
<img src="samples/ll01-simpleTriangles.png.jpg" alt="PNG file produced by this sample" class="samplepic" /><figcaption>PNG file produced by this sample</figcaption>
</figure>
</div>
</div>
<div id="footer">
© 2019-2020 Ingo Wald
</div>
</body>
</html>