QUOTE(ndeboar @ 04/29/09, 03:53 PM) [snapback]306999[/snapback]
Getting something that just smooths normals at hard edges would be the "easiest" thing to implment atm.
then write a shader that traces a probe out of the surface an perturbs normal based on distance and normal direction.
Anyway i tested this with mentlaray and it don't work out every well with intersecting surfaces. because it confuses wich side to turn to. So your shader writer needs to be more specific how he does the probe. But basically its like a occlusion probe that just asks for nearby normals. Instead of color or hit, one can omit the rays that are perpendicular to teh surface tough and opt for probes around the normal mostly instead
QUOTE
I heard they tried before to render out a point cloud, convert that to blobbies, but it was taking like an hour a frame to get good results.
Well a point cloud is not the best possble geometry type to split this data from. However thepoint could data can be driven into a brickmap. Now this gives you 2 NEW options i didnt think about:
1 just like the point cloud based final final gather make the explicit surface field out of this. Then youd have in basic just one blobby particle and it should basically be justa lookup for polygons (the api can polygonal just as long as you can provide a solid fallof field), so just do falloff the values as brick creation. Now you could Also render this deirctly out as samples as the rendering fo comlpex geometry directly out of the brickamp see the provided examples in manual. Both methods would be cheaper than a BIG blobby field. I actually tested this once when i still had access to proserver and it worked reasonably well for my geometry.
Second you can use the brickmap for the normals by averaging nearby samples in the point cloud. The good thing about this is that it doesnt flood out to places where you have a near contact but not quite.
Third if you have the manpower tunr surface into nrbs at export time and do a round at that time. This too works very well, but doesn't motion blur ![]()