Modify Cycles materials and presents GUI

Hello everyone.

I am trying to modify blender in order to add another render engine to it. Currently I am working on the material interface, but I want to have my own materials, in separated engine environment just like Cycles has on Blender 2.61.

Have any of you know, how can I add my own engine to blender, and how I add my own interfaces to it. ?

Or how can I modify Cycles materials and render GUI to add my own render parameters ?

You can look at Cycles python interface, files in blender/intern/cycles/render/ folder, better start at session.c, and you need to modify core Blender node system directly, I am not good at it but some trails in blender/source/blender/nodes/NOD_shader.h, blender/makesrna/intern/rna_nodetree_types.h, lender/source/blender/blenkernel/intern/node.c, node key ID holder blender/source/blender/blenkernel/BKE_node.h, blender/intern/cycles/blender/blender_shader.cpp, many other i missed. You can also grep “holdout” (and capped “HOLDOUT” as well) as nice example what to need changed to make new basic material node.

Or how can I modify Cycles material and render GUI to add my own render parameters ?

That is much more easy, give me example of material i can write more detailed examples where to make changes.

Hello storm. Thanks for your answer.

As you commented, I took the second option and I modified Cycles materials and render params to connect my render engine to blender.

I did it like this, in what ever place you have installed blender theres a folder that has cycles scripts, in my case is this:

/opt/blender-2.61/2.61/scripts/addons/cycles/

Here you can find these files:

init.py – This files declares a the new render engine and executes register cycles components.
engine.py – Call the cycles’ render engine.
enums.py – declares the enumerators used by cycles.
preset.py – declares a single preset to define different integration types, but here you can add your own presets.
properties.py – defines cycles own render, materials, cameras, and light properties.
ui.py – Defines all the cycles GUI, it also uses components from blender like the render dimensions and layers

So, if you take some time to analyze these files, you will find how to add your own render engine, with your own materials,
cameras and light properties. It is really simple. I learn more of Blender using this method; than trying to read the confuse and
short Blender 2.6 documentation.