Exporter Directions 2.09
*Thanks to everyone for their support in this project! -Wedge

Hybrid Note: This exporter is a hybrid exporter that exports mesh information as .obj files and Indigo information as .igs files.
 Each mesh exports to its own file, so I advise you to export any scenes to their own special folders.

Scene Note: It is always a good idea to check Blender's console to verify that scene was exported correctly. (any errors reported?)

Scene Note 2: Best thing to do when you create a material is clear any enabled buttons for that material. By buttons I mean: ray transparent, NMap TS, shadow, transpshadow,
 subsurface scattering, NOMIST, FULLOSA, SHADELESS, RADIO, and ENV. (the buttons in Blender's gui in the material section) These buttons are used to tell the exporter to export
 different types of materials and leaving them on for a blend material (for example) by accident will cause a messed up scene to export because it looks for data in the name of
 your material that is not there. See below for which buttons to enable for certain material types. But basically no buttons means it is a diffuse material. (or a phong if you have spec > 0)
 And by default new materials have buttons enabled that can cause these incorrect scene files to export. So I advise that these buttons should be disabled and then you decide which to enable
 for the type of material you are going to create.

Skin (Mesh Layer) Support:
*.lay (short for mesh layer) added to end of a mesh name allows you to set in GUI how much to shrink this mesh
To use this feature you will want to duplicate your mesh and then select the duplicated one to add a .lay extension to its mesh name.
Note that after one export you will want to remove the .lay extension so that further exporting of this scene does not keep shrinking your mesh.
After you shrink the mesh, you can check it in Blender to see how it fits inside the original. This automatic shrinking is not 100
percent correct and some complicated meshes may have parts of them that stick out of the original. You can always try to change the amount
of shrinking that is done to the mesh to see if you can get it to fit better, or manually adjust the parts that do not fit. From my testing,
it appears that a smoother/higher poly mesh has better chances of shrinking correctly than a blocky mesh. If you are unsure of how this feature
should work try placing two Blender Suzanne meshes in the same location, subsurf them both 1 level, now run the exporter and shrink one by 0.0005.
Now examine them in the 3d window.

Note about layer visibility:
From within Blender you have layers available to help you set up your scene. The exporter uses layers to find out which objects to export.
So if you make changes to only one mesh and decide you only need to export that one, you can move it into a layer by itself and then select
that layer to export. You can also just move a sun or camera into a layer by itself and export it in case you need to adjust the position
of one of these items. Keep in mind that just exporting one or two items will result in an incomplete main scene file. So in the example
where you export only a camera to get a new position, make sure you rename the scene file so that you do not overwrite the complete one.
Now you can copy/paste the camera position from the incomplete scene file to your complete scene file. In the case of having a small scene
this method of getting a new camera setup might not be worth the effort, but if you have a large scene that takes a few minutes to export,
the idea of putting the camera into its own layer and exporting works nicely.

Mesh Support Note: This exporter supports mesh objects only. You can also use meta, text3d, nurbs, and other object types that can be converted to mesh. You can convert
an object to a mesh by selecting the object and then clicking Object menu > Convert Object Type. Now select mesh. As long as the resulting mesh has faces and not only
verts, it should export fine. Curves or other objects will not export if they are only made up of verts without faces. For a mesh to export it must have faces and verts.

Primitive:
*only scale primitive in object mode
*.rli (rlight) to mesh name enables rectangle light, this is a light using the new light power system, width and height adjusted by adding to mesh name, for example cube.rlight.width.height where width and height are integers
*.pla (plane) to mesh name enables plane, <dist> tags are adjusted by adding to mesh name, for example wall.plane.dist where dist is an integer, normal tags are fixed values, must edit in file
*.sph (sphere) to mesh name enables sphere

Material Note: All materials are now set up by themselves. So in order to do blend you first have to set up two different materials and click the save button for them to export
 since they are not applied to meshes. Same goes for mediums. Also your blended materials and mediums will need to go before blend and material medium tags and they are sorted
 A to Z. (I think) So make sure you start them with a lower letter than the blend that puts A and B together, for example. Same goes for mediums, "Aglass" will go above the material
 medium ballAglass so that will work. But if you rename Aglass to Cglass it will export under ballCglass and throw an error saying your medium is not defined. Now also with this
 rewrite you can have multiple "material mediums" (as I call them, they are the material that has the medium defined) point to the same medium since it is defined separately.
 (for example one can be specular and another glossy transparent)

Medium Settings:
*Ray Transparent button must be enabled
*precedence = specular (*10) so .2 spec gets less pecedence than .3 spec

	Atmosphere:
	*NMap TS button to enable
	*turbidity set by ref slider - result is ref*10 or .1 = 1

*absorption spectrum: if r g b are equal use uniform tags, uniform value = red color | if r g b not equal use rgb tags, diffuse color sliders
*absorption spectrum rgb gamma: set by ambient slider - result is amb*10 or .1 = 1
*(absorption multiplier) raMirror slider > 0: for uniform tags use 1000 multiplier, else 10 multiplier | for rgb tags use 1000 multiplier, else no multiplier

	Epidermis:
	*push shadow button to enable
	*melanin_fraction set by Ref slider (right above spec and hard sliders)
	*melanin_type_blend set by Alpha slider

	Dermis:
	*push transpshadow button to enable
	*hemoglobin_fraction set by Ref slider

	SSS settings:
	*push subsurface scattering button to enable
	*scattering spectrum: if r g b are equal use uniform tags, value = red color | if r g b are not equal use rgb tags, SSS color picker
	*scattering spectrum rgb gamma: set by SSS Col blend slider - result is col*10 or .1 = 1
	*(scattering multiplier) raymirror fresnel depth slider > 0: for uniform tags use 1000 multiplier, else 10 multiplier | for rgb tags use 1000 multiplier, else no multiplier
	*fresnelTrans == 0 *sets phase function uniform tag, else use henyey greenstein tag
	*henyey greenstein: if r g b are equal use uniform tags, uniform value = red color (with 10 multiplier) | if r g b not equal use rgb tags, spec color sliders
	*henyey greenstein rgb gamma: set by SSS Texture Scatter slider - result is tex*10 or .1 = 1

Medium Material Settings:
*NOMIST enables medium material
*lower case until material is medium, for example matMed
*spec == 0 glossy_transparent tags where hardness *10 sets exponent, else specular tags
*mirror: ignore setting a exponent and push the RayMirror button and it will apply a 1 million exponent value
*per-texture exponent set by texture/map to/col slider (just above nor) - result is col*10 or .1 = 1
*bump map <b> tags: set by nor slider, result is (nor/10), so .1 gets exported as .01

Diffuse/Phong/Null (no buttons enabled) Diffuse Transmitter (FULLOSA button to enable):
*diffuse no spec
*phong: spec > 0
*SHADELESS button enables nk
*nk is ballAg to activate nk
*null material: enable ENV button
*if r g b are equal use uniform tags, value = red color | if r g b are not equal use rgb tags, COL color picker
*rgb gamma set by ambient slider - result is amb*10

Blend material:
*RADIO button to enable
*material name will be ball.a.b where a and b are the blended mats, material a or b must be defined and saved in material list
*blend of a blend is enabled by the use of commas for example: "mat,mat2.a.b,mat3.a.b" material name is limited to about 21 characters in Blender so this example just fits
*ambient == blend_factor value

Emitter settings:
*emit slider > 0 enables emitter
*hard = power drawn value
*spec = overall luminous efficacy value (spec*100)
*translucency > 0 enables peak emitter
*translucency = 0 and ambient > 0 enables blackbody emitter
*translucency = 0 and ambient = 0 enables rgb emitter - color set by regular COL sliders
*rgb gamma set by emit slider - result is emit*10
*textured emitter: Normal emitter with an albedo texture created as any other texture on a material.

Background World Color:
*color set by horizon color picker
*gamma set by range slider

Normal Smoothing: Note that normal smoothing support is available per mesh only. (not per face) Press set smooth button from edit menu for desired mesh.

Camera DOF and Lens: Set under edit menu for camera.

Render window size and percent buttons: Adjust from render window.

Exit Portal: Created with a normal diffuse/phong material and translucency set to 1. For example a diffuse material named "exit" can be applied to any objects and they will export as exit portals.