Personal Information:
Name:Wang Peijun
E-mail address: arioso.of.wind@gmail.com
IRC: Maitreya
Web page:http://hi.baidu.com/arioso
Idea to implement:
Synopsis and Goals
YafaRay is an important render engine for Blender. But till now no formal version for Maya exists. My project aim to integrate YafaRay and Maya , so that YafaRay can run on Maya platform as a rendering plug-in. I think this will benefit YafaRay a lot. A formal version for Maya users will popularize YafaRay. More CG artist will use and give advice to improve it. YafaRay has many advantages. I used YafaRay for Blender for a while as an experience. It’s very convenient to use. Maya users will love it after integration.
Detailed description
YafaRay’s main functions are all created using c++, implemented by various classes and their member functions. The source code can be treated as a YafaRay lib, directly used in the integration code.
On the other hand. Maya provide c++ API, to let users create user-defined functions like creating special nodes ,shadings and user interfaces. This API can also be directly used in the integration code.
Above are the two main tools I plan to use. as picture 1 shows, YafaRay play the core and underground role, do the realistic work, calculation and rendering. Maya just give a chance let YafaRay added into the scene(Maya just do the user interface, package of the node and data transmission work).
picture 1:

In my project, Since Maya c++ API allows users to define their own nodes . I will package and insert YafaRay into Maya's node system as user defined nodes. YafaRay can create material, light, camera and background, then do the rendering work. In Maya, as the picture 1 shows, these functions will exist as nodes in the scene. They will separated to be material node, light node, camera node, and render node.
Where do these nodes exist will be showed bellow:
As picture 2 shows, shading, texture, background and light nodes show in the window”create maya node”. After installed, when user create a node,a light node for example, this light node can be edited on the right, in the attribute window(also showed in picture 2).
picture 2:

The picture 3 is Maya’s camera edit window(i just copyed the YafaRay camera settings from Blender....just to see how it will be like). when the YafaRay camera node is created, the editor window will be like this:
picture 3:

After the material, light, camera settings are done well. YafaRay render settings should be edited. And the YafaRay render settings should be showed in Maya’s render setting window, which is in picture 4, when choosing YafaRay from “Render Using”
(this picture is also just a photoshop work.....a supposed-to-be interface of render setting)
picture 4:

Above are the technique I will use , mechanism of my proposal and the suppose-to-be result. Next I will show steps and content of my work.
after some thinking, I think there will be three main process of my work :
Here, I will start by using YafaRay in Blender. This give me a fast impression about what functions does YafaRay provide. Besides, here I also get a rough idea about what should be provided from Blender, then I can try to find them in Maya too .At the same time, I will read and build the source code, run some demo codes. By doing this, I can get the framework structure, module function and parameter stream in detail.
There are 8 area of modules showed in Maya API reference, 3 that I should pay attention to (this depending on what does YafaRay need):
Rendering (get parameters from rendering node)
User interface (create user interface)
Proxy class (implement some basic functions)
I will read the reference and some books about Maya programming to learn well of this step.
First , design the user interface , the arrangement of interface of YafaRay for Blender and Maya render setting window both should be considered. Based on the work of step 1 and 2, organize the functions and get parameters for them. Then write user interface. Finally, debug and write documentations.
Risks:
I think now the main risk for me is that I am not familiar with YafaRay, And, because there is no documentation about the source code structure and there are seldom notes for the code.I need time to read the source code and learn the parameter flow. And I also need time to know well about Maya c++ API.
solution:
that's why I leave a little more time before the coding work.During this time, I will read the source code and learn maya API.
Workflow and usability
Before my work, I think it’s important for me to know what will be changed or added to the new version. Then I will adjust my project to fit that. Except that,I will try my best not to change the interface so the old users will feel comfortable. But maybe some adjustment will be made to fit to Maya.
And the whole work flow in Maya using YafaRay will be like this in picture 5:
picture 5:

Temptative schedule
Work time
I can work full time during the summer for YafaRay.
I can start work from May.
Till now I have not had a plan for holiday. but i may go out a week from May 1st to May 7th.
Bio:
I am a generated student in Zhejiang University from China. I am now studying in the State Key Laboratory of CAD&CG(link: http://www.cad.zju.edu.cn but I am really sorry no english version of the website.....).My research topic given from my boss is maya programming with mel and c++ API, and I've already learned some details about maya l operating mechanism and mel language, written some small plug-ins for maya animators. I'm willing to do the yafaray integration work to maya.
I learned a lot of general CG knowledge about 3D, modeling, animation, rendering and so on during my undergraduate study. I did some computer graphics program with c and c++. I used maya for 3 years. from modeling, animation to programming. I am familiar with maya. I think it will be convenient for me to code on maya platform.
this is an artwork gallary of mine: