[Bf-cycles] GSoC - Spectral Rendering

Gavin Howard gavin.d.howard at gmail.com
Wed Apr 10 21:58:21 CEST 2013


     Thank you all for actually taking the time to reply. And in less
than 24 hours too! Now, I have a much better idea of the situation. I
expected that some would consider that spectral rendering is outside
of Cycles' paradigm. In fact, I have contemplated that a lot. I still
haven't found a satisfactory answer. I tend to think that it is
outside the paradigm.

     With that said, let me explain why I chose spectral rendering.
There are several reasons. The first is that I am interested in
rendering. The second is that I understand spectral rendering. The
third is that it is relatively easy to implement and limited in scope.
These come from my limitations as a coder. I do not have much
experience, nor do I have much education. I tend to think less
algorithmically than scientifically.

     However, I know that there are plenty of other things available
to do for Cycles. I am just at a loss as to what there is at my level.
I am willing to do just about anything; I want to work on Blender for
GSoC more than any other project, and I don't mind if there are some
things at my level that are perhaps more tedious, ESPECIALLY if they
will help me gain an understanding of a large portion of Blender's
codebase in general and Cycles in particular. Please let me know of
any suggestions that you think I could handle, including the "Take
this small feature list and implement them all" type of suggestion.

     Let me address some of the suggestions that have come up as
possible projects.

     Performance enhancements. You know, I would love to only work on
performance enhancements. I like running blender and cycles
benchmarks. My hesitation comes from the fact that generally, in order
to do something like that, I would need to be quite familiar with the
codebase. Also, they tend to be very difficult to do. Another reason
is that it is hard to define a project behind just "performance
enhancements." There needs to be a definite scope in order to get
approved and pass GSoC. If anyone has any suggestions to mitigate
those problems, please let me know.

     Volumes. Again, this is one I would love to do. The advantage to
this one is that it does have a definite scope. I like that. Much of
the functionality is already there. It shouldn't take me long to do
some searching over the codebase to find out what I need to do. It
would also give me the opportunity to do some design. And let's not
forget the fact that it would make me popular with the community! :)
Anyway, I understand some of what integrators do, so I believe that
this one MIGHT be within my capacity to do. However, I do not know the
codebase, so at this point, the best thing for me to do would be to
turn to Brecht and ask if he thinks that someone like me can handle
volume integration into Cycles. If so, then this IS the project I will
do. If not, I'd better not attempt it. Brecht, what do you think?

     FSA: Ton, I'm sorry; I don't know what this means. Could you tell
me? I'm pretty sure that when you tell me, it will be a facedesk
moment, but at the moment, I can't figure out what it is.

     GPU hair. I am not experienced with GPU code at all; however, I
think that this would be a very fun project to do. Again, Brecht, do
you think that this would be possible? Keep in mind that I would need
to learn CUDA. Personally, I don't think this one would be a good

     Shader editing. This one would probably be very possible, but
Thomas Dinges probably already wants it. Thomas, you're the alpha
coder. ;)

     Baking. This is another one that I would find very fun, but
again, I need to ask Brecht whether he believes it's in my

     Deformable motion blur. I don't think I could do this one. In my
opinion, I would have to learn too much in too short of time.

     Hopefully, this email explains my reasoning and will allow you
all to tell me what you think the best project for me would be.

     God Bless,
     Gavin Howard

On Wed, Apr 10, 2013 at 1:31 PM, Bassam Kurdali <bassam at urchn.org> wrote:
> +1, however, most (all?) the needed enhancements are already on Brecht's
> roadmap - Perhaps some of them might generate good GSOC projects? I'd
> also add deformation motion blur or even a better quality vector/post
> process blur as a desirable feature for animation, even though this
> won't necessarily help rendertimes :) (current vector blur is really
> fast, even though it doesn't always look perfect)
> On Wed, 2013-04-10 at 16:58 +0200, Ton Roosendaal wrote:
>> Hi,
>> I agree with Agus here.
>> Cycles is meant to be a production render engine, to work well for renders of animation sequences, where render time is a very relevant issue.
>> Our experience with Tears of Steel renders were quite mixed for it, there's a lot of work we could do to investigate better sampling, noise reduction, or related features that give speedup.
>> Plenty of interesting papers exist in this area, like:
>> http://groups.csail.mit.edu/graphics/ilfr/
>> Important topics for cycles is still volumes, GPU hair, baking, shader editing, FSA etc. All stuff that would help people using it for animation or vfx renders.
>> -Ton-
>> ------------------------------------------------------------------------
>> Ton Roosendaal  Blender Foundation   ton at blender.org    www.blender.org
>> Blender Institute   Entrepotdok 57A  1018AD Amsterdam   The Netherlands
>> On 10 Apr, 2013, at 3:36, Agustin Benavidez wrote:
>> > Hi, my humble opinion is that this idea somehow doesn't fit into the Cycles philosophy and focus which is be the best balance between speed and realism/accuracy and animation oriented, We already got great render engines capable of that integrated in blender like Luxrender, spending a Summer Of Code slot to re-do what others complementary OOS projects do best is not worth.
>> >
>> > Here is what you can already do with a relative simple node setup:
>> >
>> > http://www.youtube.com/watch?v=jMsW5gPqS6c
>> > http://www.blendswap.com/blends/view/39307
>> >
>> > I understand dispersion is not only about little rainbows, but I agree with Dalai, and don't see this improving Cycles general usage.
>> > Anyway We need to be open and will be nice to see some examples of the quality boost that this could bring :)
>> > Best regards.
>> > Agus
>> >
>> >
>> >
>> > 2013/4/9 Gavin Howard <gavin.d.howard at gmail.com>
>> >      David,
>> >      Cycles has a subsurface scatter node in the development builds,
>> > correct? If that's the case, I will see if I can render some scenes in
>> > Cycles and LuxRender to show the difference. It's not going to be the
>> > best, but it should show something.
>> >      Gavin H.
>> >
>> > On Tue, Apr 9, 2013 at 5:20 PM, David <erwin94 at gmx.net> wrote:
>> > > On Apr 10, 2013, at 12:55 AM, Brecht Van Lommel wrote:
>> > >> On Wed, Apr 10, 2013 at 12:08 AM, David <erwin94 at gmx.net> wrote:
>> > >>> this is by far the best visual explanation of what separates spectral
>> > >>> rendering from normal RGB rendering that I have seen:
>> > >>>
>> > >>> http://www.luxrender.net/wiki/LuxRender_Textures_Spectrum#Gaussian_spectrum
>> > >>>
>> > >>> All lamps in this image would be the same RGB color, and produce the
>> > >>> same result with non-spectral rendering.
>> > >>
>> > >> I don't think that's true? The exact result depends on the wavelength
>> > >> to RGB conversion function, but a wider gaussian distribution across
>> > >> the wavelength should give different RGB values than a narrow one? As
>> > >> the distribution gets wider there will a more even distribution across
>> > >> the RGB channels.
>> > >>
>> > >> It wouldn't be as accurate but the lights would still render different I think?
>> > >>
>> > >> Brecht.
>> > >
>> > > Ah, you're right, and it is even sort of explained in the text I linked to, so I
>> > > feel especially dumb. ;)  The width of the distribution corresponds roughly to
>> > > saturation, it's basically just HSV.
>> > > So, the only effect that I can think of that is really not approximated by RGB
>> > > rendering is dispersion? I would love to see an image where the light spectrum
>> > > makes a noticeable difference, that isn't of a prism or a diamond...
>> > >
>> > > till then, David.
>> > >
>> > > _______________________________________________
>> > > Bf-cycles mailing list
>> > > Bf-cycles at blender.org
>> > > http://lists.blender.org/mailman/listinfo/bf-cycles
>> > _______________________________________________
>> > Bf-cycles mailing list
>> > Bf-cycles at blender.org
>> > http://lists.blender.org/mailman/listinfo/bf-cycles
>> >
>> > _______________________________________________
>> > Bf-cycles mailing list
>> > Bf-cycles at blender.org
>> > http://lists.blender.org/mailman/listinfo/bf-cycles
>> _______________________________________________
>> Bf-cycles mailing list
>> Bf-cycles at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-cycles
> _______________________________________________
> 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