Personal Information |
Shuvro Sarker
My mail account is shuvro05@gmail.com .I am frequent at freenode in channel #yafaray with the nick shuvro.
Idea to implement |
Blender 3D has been changed a lot from 2.49 to 2.50. Changes include the graphical interface, codebase and the python API. Simply it is much more powerful now than any previous version. And the exporter for YafaRay can give YafaRay users the opportunity to use their favorite renderer for the current version of Blender. So, I think at present this is one of the most important projects for which the YafaRay community is waiting for.
Now how can this be done ? YafaRay has some options that are different from Blender. Building an exporter system for rendering Blender projects with YafaRay thus means developing a system that can take those extra parameters from the user in a user friendly fashion and can also use those parameters that are common to both Blender and YafaRay. After that it should transfer those parameters to the python binding of YafaRay in proper way so that YafaRay can do it's magic.
A declarative UI design approach will be followed in designing the exporter. Which means, UI will be generated from the information provided by the plugins. More specifically, at startup blender exporter will ask every plugin about it's properties.After getting information from the plugins, the exporter module will draw the UI. Next it will collect data from the blender UI.After that it will send the data to yafrayinterface.
The two major benefits of this approach are -
I think the change that can influence most for the design of the exporter system is the change in blender python API in blender 2.5.The main features of the API that we are interested about are -
With these facilities the implementation will follow these two guidelines -
I have written a simple script[1] to demonstrate deleting panel, redrawing it, adding custom data and modifying RNA of blender python API.This will make the above statements clear.All the above steps are necessary for taking inputs for YafaRay from the user .When this is done, it is needed to send the data with proper formats to the python binding of YafaRay. This job can be done by following steps -
Till now, this is the guideline.The design approach of the UI components can be changed later by the advice of mentors or current developers.I have written another small script to demonstrate how to add an external renderer in Blender and add additional UI and property for it[2].
Now it's an important issue to decide what data should be supplied from the plugins and what else are needed . Till now,I think panel name,property names associated with the panel and their data types are necessary. I have written a script demonstrating this here[8]. But more information is needed in case of mentioning the UI specification properly. Which means the data about the layout info, UI component for each property(e.g. text button,scroll button,drop down list ) should be provided also. To supply these data a UI layout structure should be developed. With this we can specifically define which UI component we want to draw in the UI for which property.
As I stated above this system will give the users a chance for using YafaRay for the current version of blender.And I think the using procedure will be pretty much same as the previous one.Users can just select YafaRay as their renderer, set the properties needed and ren der it with YafaRay.And they will get a more neat interface for setting the properties for YafaRay.
This is the tentative schedule of the project -
During the community bonding period my classes will be off .So I can give full time effort for this project in this time. In the tentative schedule I have mentioned that I will take preparation for starting the project during this period. But if the preparation is finished before the end of community bonding period, I can start the original coding too in this period. Also in other periods, I think I will be able to give enogh time for the project. And during Thursday and Friday of week I can give whole time for the project as these are my weekly vacation days.
And I also want to work as an active developer during post GSOC period with YafaRay. If possible, I want to work as a mentor for the future GSOC projects for this organization.
Bio |
I'm 21 years old, a final year student of CSE in Bangladesh University of Engineering and Technology[3]. I love novels, music, rain and of course coding .I have started programming with C, then in C++ and so far I have programmed in platforms like Python,Java,PHP,Javascript,MySQL etc along with C and C++. My C and Java projects were mainly game oriented (e.g. board games with C/C++,chess game that has networking support in Java[4]). And I worked in several web crawler projects in PHP and python[5].I have studied about 3d technology,lighting system and texturing techniques in my university graphics course. And I have used YafaRay for blender 2.49.
With the progress of time my interests grow towards game,graphics,rendering and neural networks. And now I am doing a thesis about neural networks.I have made a simple FPS game in Blender Game Engine and I also worked with DarkBasic Game Engine. Recently I have submitted 2 patches[6 & 7] for the latest version of Blender(2.5). And now I am reading about the previous exporter codes of YafaRay and about the options that YafaRay handles.
References |