Vous êtes sur la page 1sur 17

Dynamically Generated Imposter

Weidong Shi Georgia Institute of Technology, 2001

Dynamically Generated Imposter


Exploit coherence in consecutive frames to speed up rendering Reduce scene complexity by converting polygon models into imposters Generate imposters on the fly to achieve flexibility

Frame to Frame Coherence


Frame sequence generated by interactive graphics system contains significant amount of coherence. Relative motion of distant objects on screen is small. Close objects often expose the same side to the viewer when they are moving. Re-use of rasterized object image to speed up rendering

Real Time Rendering Techniques


LOD & Progressive Mesh

Static Imposter object pre-generated and stored as texture, then mapped to a transparent polygon in real time huge texture storage space required limited view direction and navigation space
Hierarchical Z- buffer works best for highly occluded scene Dynamic Imposter (Gernot Schaufler)

Dynamic Imposter
Generate an object image for a certain view Convert the image into texture Map the texture to a transparent polygon.

Advantages fast more flexible than static imposter

Dynamic Imposter -cont


Adjust imposter when viewer moves. Rotate a imposter so that its normal always points to the viewer.

Validity of Old Imposter


Error Angle due to translation

In view V1, B1 = B2

In view V2, B1 and B2 has an angle trans.

Validity of Old Imposter


Error Angle due to move-in

In view V1, B = B.

In view V2, B and B has an angle size.

Algorithm
For each object i check validity of its old imposter if valid render object i with imposter else if successfully generate a new imposter for object i render object i with new imposter else render object i with its original mesh endif endif endfor

Real Time Performance of Dynamic Imposter


View real time rendering not only as graphics problem but also a resource management problem.
Real time performance depends on both the computational requirement and the available resources.

Dynamic imposter is beneficial only if leads to better use of rendering resources.

Implementation
Hardware Dell Inspiron 8000. ATI mobile graphics card with hardware 3D rendering support. API Direct X 8. Imposter Validity Checking Bounding sphere instead of bounding box used for computing size and trans

CPU converts rendered image into texture with alpha channel.

Result - cont
Opaque imposters

Result - cont
Imposters with transparent texture

Result - cont
Performance becomes worse with dynamic imposter because of the slow video-system memory bus. Video-System speed is about 50 times slower than System-Video based on DirectDraw surface copy test. Possible Solution (RGBA+Stencil buffer)
Render in RGBA format instead of RGB format (16bits). This only works in full screen mode.

1. Clear rendering target (in Video Memory) with transparent alpha. 2. Render and use stencil buffer to record all drawn pixels. 3. Write opaque alpha value to all drawn pixels. 4. Copy result into a texture buffer (in Video Memory).

Result
13 tigers, viewer uses one as center and moves along a circle.

300 250 200 150 100 50 0 1 3 5 7 9 11 13


New Imposter & Mesh Reused Imposter

Future Work
Develop adaptive algorithm that chooses how objects are rendered based on real time performance and available resources. Divide distant objects into groups and generate only one imposter for each group. Combine with LOD. Map imposter texture to simplified mesh.

Thanks ?

Vous aimerez peut-être aussi