Not really happy with the number of object the Blender game engine can handle, especially for effects such as particles, I decided to try using the graphics card to emit particles. So far, using Moguri’s GSOC branch I got the geometry shader to emit 1million textured particles at interactive framerate.
Of course, there is still tons of work to be done in order to have particle dynamics and collision, but it’s getting there…
My aging Geforce 8800GT is really pathetically slow when it comes to geometry amplications, since it’s the first generation of Geforce to support geometry shaders. If anyone here has a Radeon 5xxx or 6xxx series, and have 30 minutes of free time, it would be great if you can test this scene out for me. :yes:
Download
Blender build: soc-2010-moguri-2, latest SVN, you’ll have to compile it yourself :s
Blender file: soon
It´s openGL using geometry shaders, just like his post says.
The G82 was the first chip with vertex, pixel AND geometry shaders and on top of that with unified shaders where you can choose what a shader should be according to your need. He uses the geometry shaders - the best thing since 1999 when shaders replaced HW T&L
And tesselation is a DX11/OpenGL3 feature which was introduced with the GF100 (and I know already the HD2000 had HW-tesselation, but is was and still is puny)
Tessellation is completely different from Geometry Shader from my understanding, the graphic pipeline (DX11) works like this:
Vertex Shader > Tessellation > Geometry Shader > Fragment Shader > Output.
I am curious if I can brute force my way on the GPU by using the geometry shader to generate large number of vertices on modern hardware (Geforce 5xx class or Radeon 69xx class card with their huge geometry output capability), this particle approach should still be faster than CPU based particles.
This approach I am using is also different from using OpenCL or CUDA. I have no experience with GPGPU, so I can’t say what’s better…
That’s what I thought at first too, and in theory it could. But apparently tessellation works better when it’s a separate stage in the pipeline. The D3D11 pipeline is getting annoyingly confusing! :s
I was waiting till someone pulled out a geometry shader. Very impressive mpan3! That looks very promising too! What else can be done with geometry shaders? (knowing me you might already be reading my mind: ‘sorry, no terrain for you out of geometry shader’… oh well, it’s OK…sigh…)
Geometry shader is useful for screenspace polygon manipulation. Billboard from point cloud expansion is definitely one of them. Silhouette displacement mapping is also very cool (it subdivides faces that is facing away from the camera so that the viewer see true displacement). There is also a lot of work can be done with edge detection, shadow volumes extrusion and onepass cubemap.