30.04.2013 Views

True Impostors - Eric Risser

True Impostors - Eric Risser

True Impostors - Eric Risser

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Figure 5: The same impostor is shown from multiple arbitrary viewing directions. <strong>True</strong> <strong>Impostors</strong> is the first technique which has successfully<br />

been able to render view directions which significantly deviate from the profile, as shown in the third and last image.<br />

Figure 7: A visible crease is shown along the intersection of two<br />

surfaces. Due to averaging normal values.<br />

surfaces. As a proof of concept a sphere is rendered using reflection<br />

in figure 8.<br />

Figure 8: Reflective impostor.<br />

The method performs similarly to other per-pixel displacement<br />

mapping techniques; however, there are concerns unique to <strong>True</strong><br />

<strong>Impostors</strong>. Performance is fill-rate dependent. Since billboards can<br />

occlude neighbors it is crucial to perform depth sorting on the CPU<br />

to avoid overdraw. Since <strong>True</strong> <strong>Impostors</strong> is fill-rate dependent, level<br />

of detail is intrinsic, and this is a great asset.<br />

With <strong>True</strong> <strong>Impostors</strong> it is possible to represent more geometry on<br />

screen at once then could be achieved using standard polygonal<br />

means, an example is shown on the first page where a model of<br />

Jupiter is rendered using a quarter of a million asteroids to comprise<br />

its ring. <strong>True</strong> <strong>Impostors</strong> was implemented in C++ using DirectX<br />

9. All benchmarks were taken using a GeForce 6800Go and two<br />

GeForce 7800’s run in SLI. Although the vertex processor is crucial<br />

to <strong>True</strong> <strong>Impostors</strong>, the resulting operations do not put a heavy<br />

workload on the vertex processing unit and do not result in noticeable<br />

drops in performance. The performance of this technique is<br />

primarily determined by the fragment processing unit, the number<br />

of pixels on the screen, the number of search steps taken for<br />

each pixel, and which rendering technique is used. When performing<br />

ray casting the performance mirrored that of Relief Mapping<br />

of Non-Height-Field Surface Details [Policarpo et al. 2006] due to<br />

the similar ray casting technique used in both methods. The Jupiter<br />

model consisting of a quarter of a million impostors with a linear<br />

search size of 10 steps and a binary search size of 8 steps rendered<br />

in a 1024x768 window at 10 frames per second on the 6800Go and<br />

35 - 40 frames per second on the 7800SLI. The ray tracing technique<br />

was rendered in a 800x600 window using 20 search steps and<br />

achieved on average 7-8 frames per second on the 6800Go and 25-<br />

30 frames per second on the 7800SLI. No comparisons are made<br />

between the performances of the two techniques due to the fundamentally<br />

different rendering solutions they both offer. The only<br />

generalized performance statement made about the two techniques<br />

is that they both have been shown to achieve real time frame-rates<br />

on modern graphics hardware.<br />

5 Discussion<br />

<strong>True</strong> <strong>Impostors</strong> offer a quick, efficient method for rendering large<br />

numbers of animated opaque, reflective or refractive objects on the<br />

GPU. It generates impostors with very little rendering error and offers<br />

inherent per-pixel level of detail. These results are achieved<br />

by building upon the concepts laid out in Relief Mapping of Non-<br />

Height-Field Surface Details [Policarpo et al. 2006] and Parallax<br />

Occlusion Mapping [Tatarchuk. 2006]. By representing volume<br />

data as multiple height fields stored in traditional texture maps,<br />

the vector processing nature of modern GPUs is exploited and a<br />

high frame rate is achieved along with a low memory requirement.<br />

By abandoning the restrictions inherent in keeping per-pixel displacement<br />

mapping a subsurface detail technique, a new method for<br />

rendering staggering amounts of faux-geometry has been achieved,<br />

not by blurring the line between rasterization and ray tracing, but<br />

through a hybrid approach, taking advantage of the best each has<br />

to offer. This method is ideal for video games as it improves an<br />

already widely used technique.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!