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?

added on the 2008-02-04 05:30:41 by alienus alienus
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.
added on the 2008-02-04 06:26:22 by shiva shiva
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.
added on the 2008-02-04 07:12:02 by alienus alienus
how about doing it in env phong style.
added on the 2008-02-04 08:19:25 by Oswald Oswald
Is it me, or is this question somehow laking additional information?
added on the 2008-02-04 08:21:08 by imbusy imbusy
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.

added on the 2008-02-04 09:26:00 by smash smash
This paper is quite interesting, if you want to approximate light scattering.
added on the 2008-02-04 10:00:37 by imbusy imbusy
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.
added on the 2008-02-04 10:47:42 by avoozl avoozl
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.

added on the 2008-02-04 12:17:08 by iq iq
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?
added on the 2008-02-04 12:31:21 by psonice psonice
IQ: I get 404
added on the 2008-02-04 12:46:12 by doomdoom doomdoom
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?
added on the 2008-02-04 12:46:42 by smash smash
Wouldn't something like PRTs be suitable for this?
added on the 2008-02-04 13:20:09 by kusma kusma
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..
added on the 2008-02-04 14:02:01 by mad mad
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
added on the 2008-02-04 14:50:45 by iq iq
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...
added on the 2008-02-04 19:08:28 by iq iq
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.
added on the 2008-02-05 00:58:02 by alienus alienus
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.
added on the 2008-02-05 01:53:28 by doomdoom doomdoom
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.


crap! he's written an other renderer that puts hollywood to shame:

seems i cant find his technical paper on cloudss anymore...

heres a small text, maybe it wan help:

here are teasers, although that one obvioulsy isnt realtime...
things are becoming close to photorealistic here kids...

BB Image
BB Image
BB Image
BB Image
BB Image
BB Image
BB Image
BB Image
BB Image

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!
added on the 2008-02-05 04:29:29 by xernobyl xernobyl
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.. ;)
added on the 2008-02-05 12:14:34 by nystep nystep
I find humor in the vortex cloud and the pandromeda-name. :)
added on the 2008-02-05 12:30:49 by gloom gloom
HeLLoWorld: awesome stuff, thx for the links :D

alienus: check this Metaballs tutorial by Ryan Geiss \o/ at Paragraph V, maybe it can help :)
added on the 2008-02-05 12:57:16 by bdk bdk