「Extensions:2.4/Py/Scripts/Temp/BlenderToIndigo」の版間の差分
細 (moved Extensions:2.4/Py/Scripts/temp/BlenderToIndigo to Extensions:2.4/Py/Scripts/Temp/BlenderToIndigo) |
細 (1版 をインポートしました) |
(相違点なし)
|
2018年6月29日 (金) 02:51時点における最新版
Introduction
The BlenderToIndigo exporter is an python script to export a Blender scene to a '.igs' file, the file format of Indigo, a free unbiased ray tracer.
This script is based on the Indigo08S_Export scripts published on BlenderDev/Indigo_exporter and this thread in the Indigo forums. It is a complete rewrite, meant to be more easy to maintain and it should be possible to support different versions of Indigo with the same script.
Download
- Media:BlenderToIndigo08S_r58.zip
- Exporter version 2.52 for Indigo 0.8 Stable.
- Changes:
- * added options to save/load the exporter settings to/from the blender file
- * added options to the GUI, rearranged the GUI
- * removed bug about exporting a mesh with uv data
- Media:BlenderToIndigo08S_r52.zip
- Exporter version 2.52 for Indigo 0.8 Stable.
- Changes:
- * added support for mesh modifiers, DupliVerts, Duplifaces, DupliFrames, DupliGroups, Curve objecs, Surf Objects, MBall objects
- * changed spectrum handling
- Media:BlenderToIndigo08S_r43.zip
- Exporter version 2.43 for Indigo 0.8 Stable.
- Initial release on this wiki.
GUI
The GUI looks as follows. Most buttons (tooltips available on all) should be clear for the experienced Indigo user.
Previewing and editing the materials in a Blender text buffer
This is probably a feature that could use some extra information. With the button "Materials to buffer" all materials can be exported to a Blender text buffer. The material code can be reviewed and edited. When "Use material buffer" is enabled, the material code of this buffer will be used instead of the normal material code. Be carefull not to delete or change material names (unless you know what you are doing)
Blender object export
How an object is exported is based on the mesh name. The name is first split on ".". If one of the name parts is "sphere", "plane", "rlight", "meshlight" the object will be exported to the appropriate Indigo object. (plane and sphere export are only available a if the button "Use Indigo primitives" is enabled)
Examples:
- mesh with name "foo.sphere" will be exported to an Indigo sphere (with position and radius from the blender object)
- mesh with name "bar.plane.001" will be exported to an Indigo infinite plane (with position and orientation from the blender object)
- mesh with name "foobar.rlight.bla" will be exported to an Indigo rectanglelight (with position, size and orientation from the blender object)
the mesh with name "bar.meshlight.002" will be exported as a meshlight
Other mesh objects will be exported as normal mesh models. One small exception is if the first material of a mesh has emit>0, then it will be exported as a meshlight (to keep a bit compatible with the old exporter)
See #Emitting_objects for more information how the emitting properties of the rectanglelights and meshlights can be defined.
Blender material export
There is no easy way to map the settings of a Blender material to a Indigo material/medium. This exporter does a large part of this mapping based on the name of the material and its textures. The type of the material (diffuse, phong, specular,...) is determined by the material name parts. These parts are obtained by splitting the name on ".". For example the name parts of "foo.bar.baz" are "foo", "bar" and "baz".
Diffuse material
One of the name parts should be "diff" or "diffuse". The settings of this material are defined as follows:
- colour: the diffuse color of the Blender Material
Phong material
One of the name parts should be "phong". The settings of this material are defined as follows:
- diffuse: the diffuse color of the Blender material
- ior: the IOR of the Blender material
- exponent: the hardness of the Blender material multiplied with 20 (the range 0 to 500 is rescaled to 0 to 10000 that way)
- fresnel_scale: the reflection (ref) of diffuse shader of the Blender material
Phong material with nk data (complex ior)
If the material name refers to nk-data (e.g. "Au.nk", "Al.nk"), this nk-data is used as the complex IOR data.
Specular material
One of the name parts should be "spec" or "specular". The settings of this material are defined as follows:
- transparent: if the alpha value of the Blender material is less than .9, the specular Indigo material will be transparent.
- internal_medium_name: see #Medium for information on medium export
Glossy transparent
One of the name parts should be "glossy". The settings of this material are defined as follows:
- exponent: the hardness of the Blender material multiplied with 20 (the range 0 to 500 is rescaled to 0 to 10000 that way)
- internal_medium_name: see #Medium for information on medium export
Diffuse transmitter
One of the name parts should be "diff" or "diffuse". The settings of this material are defined as follows:
- colour: the diffuse color of the Blender Material
Albedo texture
Uses the image of the first image texture with UV mapping to the color channel. Untested, probably only supports images in the same directory of the .igs file.
Bump map
Uses the image of the first image texture with UV mapping to the normal channel. Untested, probably only supports images in the same directory of the .igs file.
Medium
The settings of a Indigo medium are defined by the names of the texture slots of the Blender material. These names are split on "," and then interpreted as "key=value" pairs if possible. With these (key, value) pairs, the settings and options of a medium are determined. See the examples for more clarification.
- precedence: "prec=15", the default is 10
- medium type is defined with "med=basic", "med=epi" or "med=der", the default it "basic"
Epidermis medium
- melanin_fraction: "melfrac=0.5", the default is 0.5
- melanin_type_blend: "melblend=0.5", the default is 0.5
Dermis medium
- hemoglobin_fraction: "hemo=0.5", the default is 0.5
Basic medium
- ior: the IOR of the Blender material
- cauchy_b_coeff: "cauch=.1", the default is 0
- absorption_coefficient_spectrum: can be set with "abs=rgb", "abs=uniform", "abs=blackbody" or "abs=peak". The settings of the spectrum is set with the diffuse colour of the Blender material as described in #Spectrum.
- subsurface scattering can be enabled by defining scattering_coefficient_spectrum with "sss=rgb", "sss=uniform", "sss=blackbody" or "sss=peak". The settings of the spectrum is set with the specular colour of the Blender material as described in #Spectrum.
- phase_function: "sssph=uniform" for a uniform phase function or "sssph=henyey" for Henyey-Greenstein phase function, uniform is the default. If Henyey-Greenstein is chosen, the g_spectrum can be defined with "gspec=uniform", "gspec=rgb", "gspec=peak".The settings of the spectrum is set with the mirror colour of the Blender material as described in #Spectrum.
Spectrum
It is possible to define the settings of each spectrum type with at most 3 parameters. The exporter uses therefor a Blender color for the setup of a spectrum:
- rgb: the RGB values of the Blender color define the RGB components of this spectrum.
- uniform: the R value of the Blender color is used as uniform value
- peak: peak_min=1000*R, peak_width=1000*G, base_value=0, peak_value=100*B
- blackbody: temperature=10000*R, gain=G
Emitting objects
The emit properties of an object (rectanglelight or meshlight) are defined by its first material. As with the normal materials the spectrum type can be defined with a textureslot "spectrum=rgb", "spectrum=blackbody", "spectrum=peak", "spectrum=uniform". The settings of the spectrum is set with the diffuse colour of the Blender material as described in #Spectrum.
An additional efficacy_scale can be enabled with the texture slot names "power=100" and "lumeff=20".