[Bf-committers] From Farsthary Rapid Development Model
echelon at infomail.upr.edu.cu
echelon at infomail.upr.edu.cu
Thu Feb 5 03:18:59 CET 2009
Thanks Bretch and Yves for your debate
Yes, I know there's a lot of things in this field, after all is a whole
family of rendering tecnologies. Ligth behavior is very complex and I'm
in the research/test phase for it.
For a correct BDRF implementation Blender needs realistic material
parameters, one option could be to currently wrap this new realistic
material as a structure inside the material structure and make
convertors to map the standard material represented in the UI to a
physical model untill all the system are stable enough to get its own
independent structure, I'm very open in this field to
suggestion/papers/documentation and any help you experienced
blenderheads could give me.
I will develop it very modular, so each part of the render do its job
only , that way we could switch material models very easy once they be
implemented, for example between a physically BDRF model and a
simpler/faster rgb one.
Off course as the project evolve I will also want to include full
spectral rendring , importance sampling , path reusing and other
optimizations but will be good to have first the brute force method
I know also that 'missed multiplication' problem, and more since I
don't master the Blender render source code and I get easily lost not
setting proprely some parametters.
As an example of how not knowing better blender holds me from rapid
devlopment, before knowing that Matt was working in the Photon mapping I
could implement the blender-independent part of the photon mapping in
less than a week, and once I knew that Matt have done that ,it took me
one nigth to reuse its blender related part and implement my version,
and also it took me only one weekend to readapt it to implement the
very-very basic bidirectional pathtracer , and two weeks ago I only know
about unbiased renderers that they do pretty looking slow emerging
Since sadly I could not have any experienced dev at my side to answer my
silly questions I have to do a lot of test to find out what perform a
particular function and thus waste time. But for that is Interent :) !
So I propose this rapid development model:
I will design (after investigating a lot of papers I have downloaded
today) the modular structure of the Path tracer, and I will split the
problen on as many small independent parts I could do, and then I will
open a new blog for the project (This time I do, because Matt owns the
rigth of my frustrated photon mapper :) )
And I will hang there the small blender dependant subtask that I need to
accomplish in order to keep going, (like a function draft), not
necesarily full implementations but code from what I could readapt very
quickly and keep going (and drive little time from a dev that won't be
distracted from the overall implementation, pretty much like OOP), and
then , an experienced blender dev could post there the solution code.
Off course, credits will be properly given since we all do this for the
shake of Blender.
This way I could progress very quickly (and learn very quickly since it
will be like having a tutor at my side :), since I have pretty
completted my thesis goal , I could destin enough time to code this
Otherway,it will be much slower since I will have to digg blender on my
own and the end result will be something similar to my previous
volumetric builds that Matt have to rewrite from scratch.
I will do my best , some researchers have stated that in order to reach
the excelence in one field an average of 10 years will be needed. I have
accomplished a little more than 1 year coding in blender, I hope could
before ending the 9 years left not bother the other devs with my silly
I think this model (like in those programming contest sites where simple
problems are posted and programmers upload their codes, with the
difference that here the prize will be a blender feature ) could
incredibly speed up the blender peace of development, and newcomers like
me could easily grab the necesary skills on Blender.
More heads think better and faster than one and we are blessed with the
open source :)
So tell me what you think, everyone could contribute to solve my
subtasks if have the proper knowledge.
This is an irreal example:
Supose I need to implement a Calculator inside blender, I have done
the sum, the rest, the divison but for implement the log and sine
functions I need to get the number of faces of the selected active
object, and I don't know nothing about the Mesh structure and so,then
I will post in the site:
1-Function that return the selected active object: suggested input
struct render *R
2-Function that return the number of faces of an object : input Object
struct Object * getSelected(struct render *R)
Fulano de Tal
-here's a link to a paper where they implement an object returning
-you need to dissect the struct render and implement a ....
-Here's the source code of SuperEasy calulator...
What I mean is that if my problem is the Blender related code what I
need is then a Blender related working code.
I don't try to make anyone solve my homework, in fact if no one
contribute that way I still will go on my own (I think that will not
happen :) what I'm suggesting is a rapid development model that will be
effective in the same way as the project design will be. So I will took
especial time doing it rather than jump and start coding. This year I
will be graduated of Software Engineering, so its time to apply this
knowledge in my projects with blender.
Have being said that an error in the design cost only cents but an
error in the implementation and deployment cost millions!
Cheers to all and thanks in advance
Raul Fernandez Hernandez (Farsthary)
that way, for an experienced dev will not take too much time to do
one or even several of then and I will progress much more quickly.
Cheers to all Farsthary
More information about the Bf-committers