Sunday, December 12, 2010

Rendering grass and heightmap with GPU

Here i render grass and the video card seems to be happy ;-) , i'm using only vertex texture fetch and stream instancing , wich is DX9 level hardware.
This version is far from being optimized ( the particle system still update its physics ...) but the results are here
in an Xbox360 HD Res ( 720p AA 2x ) 140 Hz without optimization and crappy shaders , GPU is Radeon HD5770 , number of grass blades is 200k. It uses opaque rendering in order to avoid the sorting.
Billboards are generated on the fly with stream instancing, nothing revolutionnary but nature scene with lot of grass are eye candy.
The directionnal diffuse lighting is evaluated but the blades fine lighting is in the texture (wich is crappy because global illumination cannot be resolved for dynamic light source ) , one should add dynamic lighting with only gray shaded texture generation , and then evaluate scattering of light interreflection from other grass blades... i've some ideas for this.

Saturday, November 6, 2010

GPU Particle system demo


I give a try at GPU Particle , here is a screen from a DX10 implementation , (no feature of D3D10 used , so it can be easily adapted in D3D9).

The positions and velocity are computed by the GPU in render targets , moreover billboarding and tesselation is done by the vertex shader using multistream instancing for uv coordinates and vertex texture fetch for retrieving the positions from the rendertarget.
All rendertarget computations are double buffered.

The collision is simply an horizontal plane for the moment , and the force applied to particle is only gravity and a pseudo random spherical velocity distribution.

This is an interesting feature but the physics collision with arbitrary actors can be a pain to implement.
I will try to add interactivity by adapting the ideas from gpu gems 3 smoke demo wich voxelize arbitrary meshes in runtime in a volume texture to handle response of the velocity field.

Work in progress:

Performance :
GPU : Radeon HD5770
Shader are experimentals and far from optimized but heightmap collision with :

1 000 000 particles @ 90Hz

anis refoufi gpu particles
50 000 particles @ 893Hz

Friday, September 3, 2010

AnisFX definitely closed !

Hi,
my very old framework is now closed , and cleaned . It should be reliable.
You can download a demo from it in the page Experience Before TestDrive 2.

Friday, August 27, 2010

Giving a refresh to AnisFX and closing it !

Hi all i'm currently giving a small refresh to anisfx , discarding some bugs and adding skeletal animation for md3.
Most of this code is a beginner's code , now that i have done test drive , i've learned a lot so i use this experience in order to give a quality demo of AnisFX but i will not have time to rewrite it all.

This framework will be forgiven because of it's poor design and implementation ( thinked as a hobbyist toy rather than a professional toy ).

Sunday, August 15, 2010

Hello world !

Rendering works is a very little place on internet where i expose some screens and samples about rendering algorithm that i implements in my spare time , i will try to discuss it too.

Enjoy !