After discussion in #writers IRC and observing how Blender's image
environment maps work, it makes more sense to rely on our superior
implementation of dynamic maps.
This means we now export BOTH plDyanmicEnvMap and plDynamicCamMap. The
latter will only be exported on MOUL+, sadly. The former is "cube" mapping
and the latter is "plane" mapping. Instead of manually specifying the
refresh rate, I decided that Blender's "static" option means that it only
refreshes once (and never again) and animated means we refresh every 0.01
second, which seems to be the Cyan standard for "update every frame, blast
it!" NOTE: when cameras are exporting, we need to support Camera based
DCMs.
Static image based CEMs coming soon...
Previously, it appeared visually that only one material was applied to the
mesh. Appearances can be deceiving. We were actually exporting all
materials and such correctly. However, because we were using a dyanmic
type with class attributes to store per-material data... All materials
shared all data. So, all materials rendered all vertices. You saw visually
the one last material rendered. Fun, eh?
This is done using the new checkboxes on the page list under the World
panel. Seemed like the best way to do it within our format. Perhaps the
rest of the exporter options should move to that panel at some point.
- Applying scale to *all* objects in the scene is now a pre-export step.
- Make sure we always export the physical's coordinates--this matches
Plasma's behavior.
Cyan calculates the level sizes wrongly such that a 1x1 DXT5 mip level
only has one block for alpha and therefore lacks the color block. This can
cause Blender to crash with an access violation.
This commit adds a footstep region modifier that exports nothing at the
moment. This is just a test case for logic node generation. If you want to
bake footstep regions into logic nodes, select an object and execute
`bpy.ops.object.plasma_logicwiz()`. :)
This includes changes to the light baking code to ensure that we don't
bake runtime lights. This code has several places it could be optimized in
the future when we have larger ages to test against.