Typical Render engien platform

Well I will try to do a common platform for the Render engiens . . . . What I propouse is going to need the help form a lot of persons since I do not think there is One person that is an expert on all renders engiens . . . so this is what I think.

I want to do a common language for describing the scene so I can reused for all lenguages. So each renderengien will have a file that is going to have a special extension like “.rend” . I will do something so It apear inside the render options, then depending on the file that you pick it will tell Blender how you mist descrive the render

A basic example will be for point lights . So the lenguage will be something like this
~if ~" " ~" "
~lampname
~lamptype
~lamppower
~lampshadow
~lampposx
~lampposy
~lampposz
~lampColorr
~lampColorg
~lampColorb

so

YafRay.Rend


~if ~lamptype="Lamp"~[
<light type="" glow_intensity="0.000000" glow_offset="0.000000" glow_type="0" name="~lampname" power="20.000000" cast_shadows="~if~lampshadow~'on'~'off'" >
    <from x=" ~lampposx" y="~lampposy" z="~lampposz" />
    <color r="~lampColorr" g="~lampColorg" b="~lampColorb" />
</light>
~]

PovRay.Rend

 
light_source {
 <~lampposx,~lampposz,~lampposy>
 rgb <~lampColorr,~lampColorg,~lampColorb>
~if~lampshadow~''~'shadowless'
 }

MentalRay.Rend

 
light " ~lampname" "mib_light_spot" (   
  "shadow" ~if~lampshadow~'on'~'off,
  "color" ~lampColorr ~lampColorg ~lampColorb
 )
 origin ~lampposx  ~lampposy ~lampposz
end light
instance  "~lampname_Inst" "~lampname"
end instance

and the diferent Outputs will be

Yafray


<light type="pointlight" glow_intensity="0.000000" glow_offset="0.000000" glow_type="0" name="LAMP1" power="20.000000" cast_shadows="off" >
    <from x="-6.255759" y="6.176141" z="6.734407" />
    <color r="1.000000" g="1.000000" b="1.000000" />
</light>

PovRay

 
light_source {
 <-6.25576,6.73441,6.17614>
 rgb <1,1,1>
 fade_distance 20
 shadowless}

MentalRay

 
light "light_OBLamp.001" "mib_light_spot" ( 
  "shadow" on,
  "color" 1 1 1
 )
 origin -6.25576 6.17614 6.73441
end light
instance  "light_OBLamp.001_Inst" "light_OBLamp.001"
end instance

So in that way we will have a flexible library of renders

Comentaries???

Awesome RCruiz, awesome! I wish I could do more, but the only way I can help you with is testing :slight_smile:

Why do you not write all this in xml ?

well this is the best way that I could think but If you have an other idea then please put how the diferent .rend will look for the example that I first show.

This is a proposal so any help will do some good

Un Saludo