[Algorithms] Splat Rendering With Large Model - feedback
Brought to you by:
vexxed72
From: Cedric P. <ced...@pl...> - 2010-05-07 15:11:49
|
Hi, I would like some inputs about splat rendering. I try to display huge model with vertex and normal and colors, no triangles. http://graphics.stanford.edu/software/qsplat/ I tried different papers some on this page ( http://rich5264.wordpress.com/2009/05/26/quick-introduction-to-point-based-rendering/ ) to improve the quality of the image with a decent framerate. Here some test I did: input meshes 18 000 000 vertexes it does not run well on my hardware and it would takes about 823MB (normal color vertexes) The mesh generation part: using basic qsplat algo the rendering is limited by the cpu because at each frame it generates a mesh dependant of the view. I changed the way qsplat work to generate a mesh only when I ask one and with a given 'lod' I want. Then I can keep a mesh longer and I dont need to refresh it by frame. To improve the path I put this mesh generation in a thread to avoid breaking framerate when generating a new mesh. Off course I will not draw 18,000000 at the same time, and the best resolution of the mesh will be clipped clipped on the screen plane. In fact you can see those details only if you are really near. So i change the policy of generation when really near of the mesh and it becomes more view dependant. The rendering part: o Brutal approach The rendering part is really simple, you adjust the size of point sprite depending of point radius (selected from a 'lod') and z. So if you select a good resolution, then you have more point but the size of point is smaller, with this method I am able to display between 1,000000 to 3,500000 at 60 to 30 fps. It's a lot of point but limited overdraw. o Deferred Shading I tried some method related to deferred shading, and even if it smooth the rendering, it's too slow because of the fillrate. I am new to deferred shading so I could have done some mistake. Here the what I did: - fill zbuffer for early z rejection - write normal in additive and color with z test and readonly - compose normal and color smoothing stuff with a blur. (3x3 matrix) The buffer used for MRT is GL_RGBA16F_ARB With what I tried it seems better to draw a lot of small point instead of doing fancy stuff with deferred shading for the same framerate. My experiment was on a Quadro FX 880M/PCI/SSE2, If someone has tried this kind of rendering with success, I would be happy to have their feedback. -- Provide OpenGL services around OpenSceneGraph and more +33 659 598 614 Cedric Pinson mailto:ced...@pl... http://www.plopbyte.net |