[Bf-cycles] Future of the non-progressive renderer and Cycles strand rendering

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Jan 4 17:17:13 CET 2013


Hi,

I don't think there's any paper about the minimum pixel size method
for ray tracing. I remember reading about it somewhere for
rasterization but I'm not sure where. It's like stochastic
simplification but without actually removing any curves:
http://graphics.pixar.com/library/StochasticSimplification/
http://graphics.pixar.com/library/500MillionHairs/

The idea is quite simple. Basically you need to estimate some minimum
radius for the hair in world space, based on the area covered by a
pixel. When you scale up the radius you make the material more
transparent at the same time to compensate.

If you already had ShaderData set up I think you could compute it
something like this using ray differentials:

minimum_radius = minium_pixel_radius*len(sd->dP.dx + sd->dP.dy)

Of course this will not have actually been set up yet, and you could
compute something like it on the fly. But then you still have the
issue of what to do for BVH building. Using this method, your radius
can arbitrarily large, so what would be a good bounding box? I don't
know how e.g. Arnold deals with this, for rasterization it's not that
much of an issue but for raytracing we need good bounds.

Perhaps the simple solution is to compute this all based on the
distance to the camera and render resolution before rendering starts.
The disadvantage is that it may not be quite accurate for reflections
or refractions, but it does give a consistent geometry regardless of
where the rays come from, and you can use tight bounds in the BVH
tree. Another disadvantage is that it makes the BVH depend on the
camera position and render resolution, so e.g. moving in the viewport
needs a BVH rebuild.

So I'm not sure yet how exactly it should be implemented, but I guess
you understand the idea.

Brecht.

On Fri, Jan 4, 2013 at 3:35 PM, Stuart Broadfoot <gbroadfoot at hotmail.com> wrote:
> Hi Matthew,
>     As Brecht says, there’s a lot to do for the basics to be fully
> functional. Once that is done it would be good to implement everything you
> mentioned. I can not find many details on implementing a minimum pixel size
> for path tracing though. All I could find is this very short paper/abstract
> http://research.lighttransport.com/distance-aware-ray-tracing-for-curves/asset/abstract.pdf.
> Brecht, do you have any thoughts on this or know of any other good papers?
> As for further features, Dual scattering mentioned in the paper
> http://www.cemyuksel.com/research/dualscattering/dualscattering.pdf would be
> brilliant but this is a large feature to add.
>
> Stuart
>
> _______________________________________________
> Bf-cycles mailing list
> Bf-cycles at blender.org
> http://lists.blender.org/mailman/listinfo/bf-cycles
>


More information about the Bf-cycles mailing list