point cloud lighting.. is this possible?
category: general [glöplog]
I'm not very familiar with this area, but I haven't found a method of lighting anywhere that doesn't rely on normals. anyone know if it's possible to illuminate a dense point cloud without extracting polygon data from it?
a normal is just the direction the most light can reach a point on a surface from. You can easily compute a normal using that definition at any point in a point cloud - at whatever precision you require.
well after doing some research, the best you can do is estimate a surface normal : there are a lot of articles about this - but most of the methods I've seen aren't really applicable to what I'm doing. if possible I'd rather not calculate a normal : or at least, not in a fashion that requires a sample of the surrounding points.
how about doing it in env phong style.
Is it me, or is this question somehow laking additional information?
you can for example scatter+absorb light through it. that's a really nice way to light clouds. a little bit more intense than using a cheapo normal-based method though.
This paper is quite interesting, if you want to approximate light scattering.
Smash, imbusy: I don't think we're talking about real-life clouds here, it sounds like he has unstructured point data (from a laserscanner or god-knows what) and wants to render it as a solid surface.
There are quite a few ways to render unstructured point clouds. Most popular are splatting techniques that reconstruct surface normals based on a local neighbourhood of points. Of course you can also ray-trace an implicit function, but that is usually a bit more tricky. There are also some algorithms that reconstruct the surface normals by hole-filling the screenspace. Look for point-based rendering on google scholar.
There are quite a few ways to render unstructured point clouds. Most popular are splatting techniques that reconstruct surface normals based on a local neighbourhood of points. Of course you can also ray-trace an implicit function, but that is usually a bit more tricky. There are also some algorithms that reconstruct the surface normals by hole-filling the screenspace. Look for point-based rendering on google scholar.
extracting a normal is not _that_ difficult (averaged cross products on a points neighborhood, or the largest eigenvalue of the covariance matrix of point coords), if you get to decide what is the good sign for it. It worked fine here.
detailed view of the diffuse lighting based on cheap cross products: http://www.rgba.org/iq/trastero/church_3.jpg (note, the pcloud is raytraced and so it aliases a lot)
Otherwise, what a bout a kind of ambient occlusion on a sphere (instead of an hemisphere)?? That would be interesting to see.
detailed view of the diffuse lighting based on cheap cross products: http://www.rgba.org/iq/trastero/church_3.jpg (note, the pcloud is raytraced and so it aliases a lot)
Otherwise, what a bout a kind of ambient occlusion on a sphere (instead of an hemisphere)?? That would be interesting to see.
There have been some nicely lit 'flying through clouds' scenes in demos in the last few years, but nobody did lightning in the clouds so far. Any reason, or has it just not been done yet?
IQ: I get 404
iq: yea, the obvious way to work out a "normal" for unstructured point data on a precalc would be to cast rays on a sphere and use the least occluded average ray direction as the normal.
the best method for you really depends on your situation. is the data static? if it's dynamic can you find the near neighbourhood easily?
the best method for you really depends on your situation. is the data static? if it's dynamic can you find the near neighbourhood easily?
Wouldn't something like PRTs be suitable for this?
a little offtopic but i used somekind of ambient occlusion for clouds in a 4k.
its somehow real simple implemented (light is at the camera(sizereasons))
isotop - http://www.pouet.net/prod.php?which=29963
but if you want to generate normals from a point "cloud" that doesnt really help..
its somehow real simple implemented (light is at the camera(sizereasons))
isotop - http://www.pouet.net/prod.php?which=29963
but if you want to generate normals from a point "cloud" that doesnt really help..
smash, well, I was proposing the (spherical)ambient occlusion for the lighting, since alienus was asking for a method not relying on normals. By the way, I think http://graphics.ethz.ch/pointshop3d/ these guys use some neat potential based stuff to extract the surface. Battle Droid, fixed the 404
hm... now I'm starting to doubt. alienus, where you referring to rendering of clouds (as seems everybody but me understood), or were you asking (as I though first) about "point clouds" as in CG (read, laser scanned data). My answer was for the second...
yes, it's basically a "point cloud" as in CG. I'm not trying to construct a surface from it, just illuminate the points to at least give an idea of depth and shape. I've tried 'faking it', but it looks very out of place with the rest of the scene.
Fit a plane through each point and all nearby points (least squares etc.). Gives you a normal without the need to build a mesh (and yes you don't want to build a mesh, it's very non-trivial and it'd give you poor normals anyway).
You can do shadows by tracing rays to a light source and evaluating the distance to all of the other points. O(n^2) obviously, but very easy to code. Adjust the threshold until your shadows are solid.
For a "radiosity" effect, trace multiple rays from each point, the more the merrier, to lightsources at random locations. Sum up the results and scale down. This makes concave/recessed areas turn out darker, even if facing the general direction of the light, which is much more consistent with the way objects appear naturally.
Combine with realtime diffuse and specular lighting based on the normals, and my guess is it'll look pretty decent.
That's what I'd do, anyway.
You can do shadows by tracing rays to a light source and evaluating the distance to all of the other points. O(n^2) obviously, but very easy to code. Adjust the threshold until your shadows are solid.
For a "radiosity" effect, trace multiple rays from each point, the more the merrier, to lightsources at random locations. Sum up the results and scale down. This makes concave/recessed areas turn out darker, even if facing the general direction of the light, which is much more consistent with the way objects appear naturally.
Combine with realtime diffuse and specular lighting based on the normals, and my guess is it'll look pretty decent.
That's what I'd do, anyway.
theres a russian guy i once talked to, he's called dmytry lavrov, he's done and outstanding "voxel" engine. i think he claims he has new techniques for cloud rendering.
it sure looks great.
http://dmytry.pandromeda.com/voxelworld/images.html
crap! he's written an other renderer that puts hollywood to shame:
http://dmytry.pandromeda.com/volumetrics/index.html
seems i cant find his technical paper on cloudss anymore...
heres a small text, maybe it wan help:
http://dmytry.pandromeda.com/volumetrics/technology.html
here are teasers, although that one obvioulsy isnt realtime...
things are becoming close to photorealistic here kids...
it sure looks great.
http://dmytry.pandromeda.com/voxelworld/images.html
crap! he's written an other renderer that puts hollywood to shame:
http://dmytry.pandromeda.com/volumetrics/index.html
seems i cant find his technical paper on cloudss anymore...
heres a small text, maybe it wan help:
http://dmytry.pandromeda.com/volumetrics/technology.html
here are teasers, although that one obvioulsy isnt realtime...
things are becoming close to photorealistic here kids...
holy shit, didnt see the last one was so big.
sorry for enlarging the width of the thread so much... this is always unpleasant, its a pain to look for author of posts and to read posts aswell.maybe the width of posts should be aligned to browser width except for image posts... dunno if its possible.
Those clouds look awsome! The next step is too render photorealistic cotton-candy!
iq: yes you had understood right that it was about point clouds, i'm sorry i had spread some doubt in your mind, my remark was more for guys like mad or Oswald.. ;)
I find humor in the vortex cloud and the pandromeda-name. :)
HeLLoWorld: awesome stuff, thx for the links :D
alienus: check this Metaballs tutorial by Ryan Geiss \o/ at Paragraph V, maybe it can help :)
alienus: check this Metaballs tutorial by Ryan Geiss \o/ at Paragraph V, maybe it can help :)