Beruflich Dokumente
Kultur Dokumente
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.
In view V1, B1 = B2
In view V1, B = B.
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
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
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.
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 ?