PDA

View Full Version : Point Based Rendering



aurora
04-17-2010, 02:59 PM
Anybody know of any technical articles to the Point Based rendering Pixar is using with Renderman?

http://features.cgsociety.org/story_custom.php?story_id=5615

Titus
04-17-2010, 07:19 PM
Anybody know of any technical articles to the Point Based rendering Pixar is using with Renderman?

http://features.cgsociety.org/story_custom.php?story_id=5615

Yeah, this feature was presented last year at their user group at SIGGRAPH.

Sensei
04-18-2010, 12:11 PM
You're outdated.. ;)

We have it since LightWave v9.0..

What is in the above link, is everything what any programmer should need to implement this technique.

aurora
04-18-2010, 12:50 PM
That's all nice but I would like some technical papers on this method for my own research.

Sensei
04-18-2010, 12:58 PM
Point cloud is just Interpolated GI Cache.

Captain Obvious
04-18-2010, 01:17 PM
Point cloud is just Interpolated GI Cache.
No, it's not the same thing as irradiance caching. For one thing, it can be done without ever tracing even a single ray. Irradiance caching relies on ray tracing to gather the data stored in each cell, even when not using ray traced shadows. The whole point of the point cloud is that you can do visibility testing without ray tracing (as the point cloud occludes itself). It can also be sampled on a per-pixel basis without using any interpolation between existing samples.


Besides, Lightwave has had irradiance caching since version six or seven, not 9.0.

Sensei
04-18-2010, 02:45 PM
No, it's not the same thing as irradiance caching.

Reverse- irradiance cache is example of point cloud..
Point cloud is just general algorithm for storing any data where is sample location, direction, and value at that point, without implication what value contains.

Enter in google "irradiance cache point cloud", and you will have ton of links saying something equal to above.


For one thing, it can be done without ever tracing even a single ray. Irradiance caching relies on ray tracing to gather the data stored in each cell, even when not using ray traced shadows.

You have to initialize point cloud in pre-process stage somehow.
If you would store f.e. normal map, texture map, inside of point cloud, of course ray-tracing at sample location won't be needed. But it's specific case.


It can also be sampled on a per-pixel basis without using any interpolation between existing samples.

That's almost equal to using Render Globals > Minimum and Maximum Pixel Spacing 1.0.. But only in theory. Because anti-aliasing adds small fractional offset to x and y, so you always end up with more or less interpolated result.

Myagi
04-18-2010, 04:31 PM
That's all nice but I would like some technical papers on this method for my own research.

I assume you looked at pixar's own paper (http://graphics.pixar.com/library/PointBasedColorBleeding/paper.pdf)?

MrWyatt
04-19-2010, 02:13 AM
point cloud based color bleeding and occlusion in renderman involves NO raytracing. so no, it is in no way like the GI cache in LW.

Captain Obvious
04-19-2010, 04:33 AM
Reverse- irradiance cache is example of point cloud..
Point cloud is just general algorithm for storing any data where is sample location, direction, and value at that point, without implication what value contains.
Well yes, but the method that they describe in that article is not very similar to the irradiance caching method employed by Lightwave. Irradiance caching stores the incoming illumination (irradiance) in a point cloud; Pixar's method stores the outgoing (radiance).



That's almost equal to using Render Globals > Minimum and Maximum Pixel Spacing 1.0.. But only in theory. Because anti-aliasing adds small fractional offset to x and y, so you always end up with more or less interpolated result.
No, that's also quite dissimilar.


With irradiance caching, you have a (fairly sparse) point cloud, and whenever a spot is shaded it interpolates the surrounding points. With this point cloud rendering, you have a point cloud that performs visibility testing at each and every spot that's shaded. It's really quite different.

MrWyatt
04-19-2010, 05:04 AM
Well yes, but the method that they describe in that article is not very similar to the irradiance caching method employed by Lightwave. Irradiance caching stores the incoming illumination (irradiance) in a point cloud; Pixar's method stores the outgoing (radiance).



No, that's also quite dissimilar.


With irradiance caching, you have a (fairly sparse) point cloud, and whenever a spot is shaded it interpolates the surrounding points. With this point cloud rendering, you have a point cloud that performs visibility testing at each and every spot that's shaded. It's really quite different.

correct.
basically points in a point cloud used by renderman contain informations for P (position in xyz); N (for the normal), area (something the occlusion() shadeop needs to calculate ambient occlusion, and the lit diffuse color (as needed for color bleeding by the indirectDiffuse() shadeop.

the point cloud in itself has NO baked in info on GI or occlusion, it stores only points with the necessary info for the shadeops that calculate these things in the final rendering stage. So at the time the point cloud gets created and written to disc, it goes really fast because it is just writing micropolygon positions and their needed data to a file on disc. in a second renderpass (the final image render) it reads this point cloud file from disc and performs the GI and occlusion calculation, again without shooting a single ray, but merely seeing the points as discs of a certain radius (maxdistance) and looking which ones intersect, what direction their normal points to and which color they have. I don't know the algorithm nore am I a programmer, all I know about it is (and I use it every day since 18 months) it doesn't involve raytracing, which makes it fast, but it has trade offs. for instance it only does one bounce, no more than that.

there are ways to get more bounces, but it is too cumbersome. basically you would have to
1. render a point cloud.
2. render a final pass (that you won't use) where you have your first bounce. at the same time you render a new point cloud where the diffuse information in it has the first bounce baked into it.
3. proceed doing that as often as you need bounces....
4. render your final image that uses more than one bounce of GI.

not really a work flow that has much appeal to me.

But I have to say the point based GI delivers beautiful results and rarely flickers even when rendering a point cloud at a shading rate of 20 or higher (which means 1 micropolygon/point for every 20 pixels). Given the lower the shading rate is the more accurate results the method will give you, but it will get slower (as the shadeop has to go through more points and the .ptc file will get quite large quickly.

evolross
05-02-2010, 02:48 PM
I just read the CG Society article. It would be a really cool addition if Lightwave CORE has this technology rolled into it, or at some point in the future.

Given that Newtek as always been a step ahead of the market when it comes to rendering technology and rolling in new rendering innovations, how likely is this? Is the technology proprietary or owned by any of the involved companies?

Red_Oddity
05-02-2010, 04:09 PM
I just read the CG Society article. It would be a really cool addition if Lightwave CORE has this technology rolled into it, or at some point in the future.

Given that Newtek as always been a step ahead of the market when it comes to rendering technology and rolling in new rendering innovations, how likely is this? Is the technology proprietary or owned by any of the involved companies?

I don't think it is patented as the GPU Gems 2 book contains the first ideas and code where most of this is based on.

Here's the chapter of the book : http://http.download.nvidia.com/developer/GPU_Gems_2/GPU_Gems2_ch14.pdf

cresshead
05-03-2010, 03:57 AM
is point cloud rendering the same basic technique employed by Lightscape back in 1996?


http://static.squidoo.com/resize/squidoo_images/-1/lens9156081_1264294364Lightscape.jpg

MrWyatt
05-03-2010, 04:06 AM
is point cloud rendering the same basic technique employed by Lightscape back in 1996?


http://static.squidoo.com/resize/squidoo_images/-1/lens9156081_1264294364Lightscape.jpg

Nope

cresshead
05-03-2010, 04:26 AM
Nope

well lightscape has lighting values based on "points/vertex data" so how's this differ then...i suppose it gathers more data to link to a shader.

MrWyatt
05-03-2010, 04:34 AM
well lightscape has lighting values based on "points/vertex data" so how's this differ then?

http://graphics.pixar.com/library/PointBasedColorBleeding/index.html
good read.
renderman's point based color bleeding uses NO form of raytracing what so ever, lightscape does.

zarti
06-19-2010, 03:39 PM
nevermind

Hieron
06-19-2010, 04:40 PM
heck, that's a nice library of papers! Didn't know they had those..
All the way back to 1982... Thanks for the link!