Graphics Reference
In-Depth Information
1 e8
40
2.0
Time clear
Time build
Time render
35
Byte size
30
1.5
25
20
1.0
15
10
0.5
5
0.0
0
Preopen
Preopen-ec
Postopen
Preopen
Preopen-ec
Postlin-naive
Prelin-naive
Postopen
Postlin-naive
Prelin-naive
Figure 1.3. The lost empire scene, modeled with Minecraft by Morgan McGuire. The
top row (left) shows the textured rendering, with 0.5 opacity (alpha from textures is
ignored). The trees appear solid due to a large number of quads. The top row (right)
shows a color coded image of the depth complexity. Full red corresponds to 64 fragments
(average: 10.3, maximum: 46). The left chart gives the timing breakout for each pass
and each technique. The Clear pass (red) is negligible for Lin-alloc techniques.
Post-sort techniques are characterized by a faster Build (green) but a significantly
longer Render (blue) due to the sort. preopen-ec uses early culling, strongly reducing
the cost of Build (threshold set to 0.95 cumulated opacity). The right chart shows
the memory cost of each technique, assuming the most compact implementation. Load-
factor: 0.4.
1.6 Implementation
We implement all techniques in GLSL fragment programs, using the extension
NV_shader_buffer_store on NVIDIA hardware to access GPU memory via point-
ers. We tested our code on both a GeForce GTX 480 (Fermi) and a GeForce
Titan (Kepler), using NVIDIA drivers 320.49. We designed our implementation
to allow for easy swapping of techniques: each different approach is compiled as a
separate DLL. Applications using the A-buffer use a common interface abstract-
ing the A-buffer implementation (see abuffer.h ).
Search WWH ::




Custom Search