170 likes | 279 Views
This paper presents a new approach to rendering grass using GPU-based techniques to improve player immersion through physically accurate interactions with the environment. By utilizing modern graphics cards, the workload is shifted from the CPU to the GPU, allowing for efficient handling of collision detection and response at the vertex level. The integration of depth cubes for collision detection and a mass-spring model for shape preservation enables detailed and realistic grass interactions. Future work aims to extend this approach to other vegetation types and incorporate dynamic game elements for improved visual results.
E N D
GPU-BasedResponsive Grass JensOrthmann, Christof Rezk-Salama, Andreas Kolb
Overview • Motivation • Grass Representation • Collision Handling • Rendering • Results • Future Work
Motivation • Physically correct reacting environment improves immersion for players • Until now: research has been focused on the animation and rendering • Modern graphics cards shift the workload to the GPU
Grass Billboards • Usually: Clumps of grass are approximated by billboards quad with a semi-transparent texture • Crossed billboards produce a more volumetric impression
CPU-BasedPredecision • The grass layer is organized in an octree • A lookup into the octree brings up colliding nodes • Affected billboards will be handled on the GPU
GPU-BasedCollisionhandling • Collision detection and reaction requires a more detailed mesh • Collisions are detected and resolved per vertex • Mass-spring system preserves the shape • Performance stability via recovering Animation + Refinement Collision- detection Collision- reaction Recovering Simplification
Depth Cubes • Objects are implictly represented by depth-cubes • The mesh is projected to each face • Each face stores the distance to the surface and the normal information
CollisionDetection • Vertex collides if it is occluded by all six faces of the depth cube • Occlusion is determined by a lookup within the depth cube • The accuracy of the detection depends on the resolution of the depth cube
CollisionReaction • The normal vector within the depth cube defines the reaction‘s direction • The vertex then is moved along the normal out of the object • As each vertex is handled separately unrealistic distortions may occur
Shape Preservation • Spring model preserves the overall shape • Topology information is required • Length constraints correct adjacent vertices
Recovering • Previously collided billboards will regenerate • Interpolation between deformed and undeformed shape • Billboards will be simplified after regeneration undeformed deformed
Irradiance Information • Ambient occlusion: How much light reaches a point and from which direction? • Amount and mean-direction are determined by using shadow maps • Sampling an environment map results in the irradiance
Rendering • Irradiance information is precomputed for the complete grass layer • During runtime: tri-linear interpolation within the volume results in the irradiance
Alpha-To-Coverage • The transparency of a pixel determines how much sub-samples are colored • The final color is calculated during the multi-sample resolve phase • Quality depends on the multi-sampling resolution
Results Video
Future Work • Take dynamic environments one step further • Enables integration of new game elements and extends game logics • Apply responsive grass algorithm to small plants like bushes, shrubs… • Improvement of visual results by dynamic sub-divisions
ThankYou • Thank you for your attention