413 lines
20 KiB
Plaintext

Version 1.0.4.70: August 22, 2001
Greg: - Added BumpEnv mapper
- Added NPatch enable flag for meshes (in the w3dtools command panel)
Ian: - Added BumpEnv setting to the shader (in primary gradient)
Version 1.0.4.69: January 4, 2001
Greg: - Modified the "bone picker" that the WWSkin space warp uses to allow Max bones to
be used.
Version 1.0.4.68: December 7, 2000
Andre: - Added a Static Sort Level parameter to the Surface Properties rollup page of the
material editor. This parameter must be the same across all materials assigned to
one mesh, and is enforced on export. The value is written out as part of the mesh
header to which the material is assigned.
Version 1.0.4.67: December 6, 2000
Greg: - Added 'Vehicle' collision bit. This will allow us to create meshes which constrain vehicles
to certain parts of a level without constraining characters or projectiles.
Version 1.0.4.66: November 7, 2000
Greg: - Disabled the "optimize meshes" feature because recent developments in the run-time code
seem to have made it un-necessary (and possibly even undesireable due to the extra mesh overhead)
The main reason for disabling the feature is that the automatic nature of it makes some of
our processes harder to debug. Mesh names are lost so the artist has no way of figuring out
which mesh is causing problems when one of the other tools complains about something.
- modified the mesh export code to reject meshes that are using multi-pass transparent materials.
- fixed error message boxes so they pop on top of all windows (they were appearing behind the log window)
Version 1.0.4.65: October 31, 2000
Greg: - Finished code re-organization.
- Pat provided new UI for the main export dialog
- Fixed the "smooth across meshes" feature
- Added the export log window.
Version 1.0.4.64: October 20, 2000
Greg: - Fixed a bug in the name editing dialog in the W3D utility panel
- Modified the VAlpha behavior so that only the *last* pass with alpha blending
gets the vertex alpha (instead of all passes with alpha blending)
- Added the Aggregate geometry type. This lets you request external
W3D objects to be attached to bones in your model.
- Added preliminary mesh optimization features. During the export, meshes can be split
into single-material meshes and then meshes which use the same materials
can be combined into larger meshes.
Version 1.0.4.63: October 19, 2000
Greg: Re-organized the entire DoExport function.
- First I unified all of the code to go through the "DoOriginBasedExport"
code by using the scene root as the origin when there were no user-defined
origins.
- Re-organized the Export_Geometry function to use a new abstract
class: GeometryExporTaskClass which encapsulates a lot of code that was
cut-and-pasted many times through the w3dexp.cpp module.
- Broke several classes and functions out of w3dexp.cpp into their own
modules.
- Modified/Cleaned HierarchySaveClass and MeshConnections class.
Version 1.0.4.62: October 11, 2000
Greg: Re-organised the W3DUtility plugin. Moved several dialog boxes
used by it into their own modules and created a modeless dialog
containing the w3d settings that can be left up when the user
is not in Max's utility panel.
Version 1.0.4.61: September 26, 2000
Greg: Added copying of the dazzle app data structure to the MaxScript
extensions.
Version 1.0.4.60: September 22, 2000
Greg: Added dazzle exporting to the plugin. Modified MeshConnnections
class and the w3d file format so that HModels are exported in a
slightly simpler manner and so that they can support dazzles. The
"auxiliary" header for hmodels is now obsolete.
Version 1.0.4.59: September 18, 2000
Greg: Modified the code so that collections are exported even when no
meshes or other render objects are present. This is used to create
collections of proxy objects for the renegade level editor. Also
modified the "origin" export code to support exporting collections
with origins.
Version 1.0.4.58: August 25, 2000
Greg: Fixed a crash bug that happens if you create a PS2 material. The
bug was caused by the modifications to the texture pane to replace
the NoMipMap and Resize buttons with a single NoLOD button. For some
reason, the PS2 material uses a separate dialog template for its
texture pane which is the same as the dialog template for the
normal material. Since the PS2 version of the template was not updated,
the code would crash when initializing the NoLOD button.
Version 1.0.4.57: August 18, 2000
Andre: Fixed the loading of version 4 ParameterBlocks so that the value
for Stage1MappingType is correct.
Version 1.0.4.56: August 16,2000
Greg: Removed the texture flags and buttons for No-Mipmapping and enable
resizing. These are all lumped into the setting for No-LOD now.
The GameMtl still has the entries in its parameter block for
No-Mipmapping and Resize and I use the No-Mipmap setting to set
the initial state of the No-LOD flag... This also required a flag
in GameMtl indicating that the conversion had been done. Ug... :-)
Version 1.0.4.55: August 6, 2000
Greg: Added new colliison type: camera. In renegade we have some physically
collideable meshes which the camera should not collide with so I had
to make a separate flag for camera collision. When the appdata chunk
is first converted to the new version, the camera collision flag is
set to the same setting as the current state of physical collision.
Added light-glare geometry type. This currently only exports the
position of the pivot point of the max object. It will be used to
indicate where there should be fancy light glare effects in the level
Added NoLOD option to textures in the W3D material. This setting will
be used on textures which should not scale down even when texture
reduction is being used.
Fixed serious bug in the parameter block description for the W3D
material plugin (GameMtl.cpp)
Version 1.0.4.54: July 13, 2000
Greg: Fixed a bug related to user-defined origins not working when they
are rotate or moved from 0,0,0.
Version 1.0.4.53: July 12, 2000
Andre: Added support for a different mappers on stage 0/1 of the Vertex
Material. Added support for the new silhouette mapper type.
These changes can be found in the VertexMaterial panel in the
W3d material editor.
Version 1.0.4.52: May 30, 2000
Greg: Added support for Max's multiple mapping channels. This can be
found in the VertexMaterial panel in the W3d material editor.
Version 1.0.4.51: May 22, 2000
Greg: Added AABTree exporting so that we don't have to generate AABTrees
at run-time. This is controlled by the "Optimize Collision Detection"
checkbox on the exporter options dialog box.
Added prefix and suffix features to the naming tool.
Added detatch vertices feature to the skin modifier.
Version 1.0.4.50: May 8, 2000
Andre: Added a new MAX Script extension: wwInputBox
This is a generic way of getting user input in a Windows-like
manner (as opposed to typing it in the Listener window as
MAX wants to force you to do).
Version 1.0.4.49: May 2, 2000
Greg: Fixed a bug in vchannel.cpp. Was writing out garbage animation
channels which would crash wdump.
Version 1.0.4.48: May 1, 2000
Greg: Changed the way skins are exported so that their vertices are
sorted with respect to the bone they are attached to. Also
made it so vertices are secondarily sorted by vertex material
(this means that non-skinned meshes will sort by vertex
material only.)
Version 1.0.4.47: April 19 2000
Greg: Added a new geometry option for "shatterable" objects. Wrote
a new W3DAppData2Struct which replaces the old AppData1Struct.
Whenever the old format app data is encountered, a new one
is created to replace it. This new app data chunk has more
space in it for future expansion.
Also fixed a crash bug in the skin modifier related to deleting
bones from the space warp.
Version 1.0.4.46: March 28, 2000
Greg: Added "Transform Nodes" to the collection export. We already had
"Placeholder" objects which were signified by a '~' after the
name. Now we have "Transform Nodes" which are signified by a '*'
after the name. Transform Nodes instruct one of the Renegade tools
to merge another W3D collection into the file at a given transform.
The purpose was to allow us to lightmap certain building interiors
only once and then merge them into many levels...
Version 1.0.4.45: March 8, 2000
Andre: Changed the Is_Origin() test to check for hidden nodes. If a
node is hidden, it will not be accepted as an origin. This
means that hiding an LOD prevents it from being exported (as
you would expect).
Version unchanged: early March
Andre: Fixed a couple of crash bugs related to animation exporting.
Version 1.0.4.43: February 29, 2000
Greg: Fixed a bug which caused all meshes marked to cast shadows to
not get texture coordinates.
Fixed meshsave.cpp to detect and properly handle mirrored meshes.
Version 1.0.4.42: January 24, 2000
Lytle: Added Playstation 2 material support, including converting W3D
materials to PS2 materials. Added support for vertex colors and
vertex alpha to exist concurrently.
Version 1.0.4.41: January 13, 2000
Andre: Fixed a nasty memory overwriting bug in MeshConnectionsClass
that only reared its head under very unique circumstances.
It was a copy/paste bug that would lead to writing a W3D
file with incorrect data. It would manifest itself by crashing
the viewer (and potentially the game engines) when trying to
load the file.
Version 1.0.4.40: December 16, 1999
Ian: Added 'Export Utilites' group to W3D Utility panel and added a
'Export with Std Mtls' button to this group. This button will
first convert all W3D materials in the scene to standard
materials, then call the export feature, then, after export,
convert materials back to W3D materials. The purpose of this
utility is to make it possible to export W3D material attributes
to third party file formats (eg. Lightscape Preparation files).
Version 1.0.4.39: November 15, 1999
Andre: Changed the mesh LOD naming convention so that we use numbers
that correspond to the LOD number (highest-to-lowest) instead
of letters that went from lowest-to-highest.
Version 1.0.4.38: November 12, 1999
Greg: Updated MeshConnections class and the hmodel chunk definitions
in w3d_file class to not treat shadow meshes as a different type
of mesh.
Version 1.0.4.37: November 11, 1999
Greg: Removed the GEOMETRY_TYPE_SHADOW settings and UI. Added a
EXPORT_CAST_SHADOW flag. This basically means that rather than
shadow casting being a completely different "type" of mesh it
is now an option on any mesh. This required some tweaking
of the AppData structure we're saving and to the w3dutil code.
Version 1.0.4.35: November 3, 1999
Andre: Exposed another script extension, called "wwDuplicateSkinWSM".
This extension allows the SceneSetup script to copy bone
information from the base object's skin WSM to the LODs.
Meshes are still unaffected, since the artist will be munging
the meshes to reduce their poly counts.
Version 1.0.4.34: November 2, 1999
Andre: Exposed two new script extensions, named "wwCopySkinInfo" and
"wwFindSkinNode". These extensions allow the SceneSetup script
to copy the skin/vertex/bone binding information from the base
model to the LOD and Damage models.
Version 1.0.4.33: October 18, 1999
Andre: Merged WWScript.dlx into the exporter, so now WWScript is
unnessesary and should be deleted. The code in that DLX was
ported from MFC to Win32 code during the merge. GetW3DAppData0
and GetW3DAppData1 are no longer exported from the DLE.
Version 1.0.4.32: October 11, 1999
Andre: Correct NULL object handling was implemented when exporting HLODs.
NULL object chunks are only written when using the old-style LOD
setup (one per file), otherwise the name "NULL" is put in the HLOD
and no NULL object chunk is written.
Version 1.0.4.31: October 5, 1999
Andre: Fixed a bug in MeshBuilder where a division by zero occurred if the
extents of a triangle was zero in one dimension.
Version 1.0.4.30: October 1, 1999
Andre: - Added support for the "suppressPrompts" flag during export. If
Max passes in a TRUE value, we will go with the previous export
settings instead of showing the export options dialog. This makes
non-interactive batch exporting possible.
- Moved W3dExportOptionsStruct from w3ddlg.h to w3dutil.h so that
WWScript can access it easily.
Version 1.0.4.29: September 27, 1999
Andre: - Fixed a skin bug that occurred in LOD exporting when a vertex in a
skin was not bound to a bone (it would be exported in unmodified
coordinates, creating a "pop").
- Strip off any trailing ".%d" or "." from a name in Set_W3D_Name
(as opposed to just ".%d").
- If the artist sets up damage animations, then the animation on
the base model is no longer exported. (non-damage animations should
still be created in separate files)
- Exporting 2 more symbols from the DLL (GetW3DAppData0 and
GetW3DAppData1). These functions are used by the MAXScript extension
DLL (WWScript.dlx) to copy AppData from one node to another.
Version 1.0.4.28: September 23, 1999
Andre: Fixed a bug in LOD exporting when the base object wasn't centered
at the origin. Added support for placing damage models in the scene.
Renamed "Generate LOD extensions" to "Generate extensions" since
the same extensions are used for damage. Added a "Damage Region"
spinner to the W3D Tools panel. With this spinner you can mark
bones as being part of a given damage region (0 to 15, -1 means
not part of a damage region).
Version 1.0.4.27: September 17, 1999
Greg: Added degenerate triangle removal to MeshBuilderClass.
Version 1.0.4.26: September 17, 1999
Andre: Modified the exporting code to allow artists to define all LODs of
an object in one MAX file. The old way of creating LODs is still
supported so that old art assets are still usable. Added a
"Generate LOD extensions" button to the W3D Tools panel to make
the Origin naming convention less painful.
Version 1.0.4.25: August 21, 1999
Greg: Fixed a bug in Export_Geometry. While exporting skins, one line of
code was referring to the list of normal meshes rather than the list
of skins. When you do an export with only a skin and no meshes, this
causes an access violation.
Version 1.0.4.24: July 27, 1999
Greg: Changed the Hide/Unhide by W3D type buttons into "Select by W3D Type"
buttons. This should be more useable. Also, added select alpha meshes,
select physical, projectile and vis collision meshes.
Added a material naming tool.
Version 1.0.4.23: July 9, 1999
Pat: Changed the default behavior of the collection naming tool to
be 'affect selected' rather than 'affect all'
Version 1.0.4.22: July 7, 1999
Pat: The export code doesn't export the DCG array if all vertex colors
are white (1, 1, 1), however this was a problem when using the
new Mesh Deformer, so I added a check during export to see if
the Deformer was modifying vertex colors. Also modified the
hierarchy export code so it will resize its internal array if
the number of nodes is greater than 512.
Version 1.0.4.21: July 1, 1999
Pat: Added code to optimze the between-mesh smoothing and added a new
button to the export dialog that allows the user to turn this
smoothing feature on/off. Also added displacement maps to the
W3D material, however due to a bug in the NURBS Mesher modifier,
we decided not to expose the functionality in UI at this time.
Version 1.0.4.20: June 24, 1999
Pat: Added code to apply smoothing groups over mesh boundaries. More
work was done on the obj-space mesh deform modifier including save/load,
export, undo, and vertex-alpha support. We fixed a bug where the ErrorClass
object that was used during exception handling was using and freeing a
previously freed pointer. Added a new panel to the material types for
Commando surface types.
Version 1.0.4.19: June 14, 1999
Greg: Added the VAlpha checkbox to the W3D utility panel. Checking this
causes the exporter to convert vertex colors into alpha values and put
them in all passes that are using alpha blending. This might be a temporary
solution; I'm thinking we need to extend the Utility panel (and the AppData
structure that we are saving) to allow for more flexible control over vertex
alpha, vertex color, etc.
Version 1.0.4.18: May 27, 1999
Greg: Fixed a bug in the code which handles loading a hierarchy tree from another
W3D file. Made the W3D utility panel support multiple selection.
Pat: Added the initial mesh deform object space modifier. Currently doesn't
export the data.
Version 1.0.4.17: April 9, 1999
Greg: Fixed a bug related to exporting a mesh with zero vertices. Exporter will
throw an exception which pops up a message box indicating the name of the
mesh. Made the collision boxes behave the same way as meshes when one is
exported with geometry only - it takes on the name of the file. Whew this
part of the exporter code is getting uuuuuugly...
Version 1.0.4.16: April 6, 1999
Greg: Fixed a bug related to the storing of the default export options. If the
user exported a model which uses the hierarchy from another model and then
moves the Max file, the next export would crash Max when the exporter couldn't
find the w3d file which contains the hierarchy.
Version 1.0.4.15: Mar 18, 1999
Greg: Fixed a bug in the AABox export. Was using the wrong coordinate system for
the box. AABoxes actually seem to be of very limited use. Possibly only
useful as an approximation of a cylinder centered at 0,0,0 in object space
(but moved anywhere on the z-axis) and only for objects that *only* rotate
about the z-axis. (characters) Ug.
Version 1.0.4.14: Mar 16, 1999
Greg: Made meshes that are marked as AABox or OBBox export a W3D_CHUNK_BOX instead
of a mesh. The runtime engine can test collision with a box in about the same
amount of time it takes to check a single triangle... so one box is much faster
than a 12 triangle mesh :) These boxes are only for collision detection so
they only export a color, no other rendering information.
Version 1.0.4.13: Mar 11, 1999
Greg: Fixed a bug in the collection exporter. Needed to put the entire name
of the render object into the sub object chunk.
Version 1.0.4.12: Mar 10, 1999
Naty: Fixed minor bug with start/end animation frames in export dialog.
Version 1.0.4.11: Mar 4, 1999
Naty: Added "Camera Oriented" mesh type (and changed the camera aligned button
to read "Camera Parallel"). Export options are now saved in the MAX file
(hierarchy file paths are saved in a relative form).
Version 1,0,4,10: Mar 3, 1999
Greg: Modified so that collections are not exported when there is only a single
mesh and forced that mesh to use the name of the file.
Changed w3d_file.h so that meshes have a "container name" instead of
a "hierarchy model name" and set the container name when a collection is exported
Version 1,0,4,9: Mar 3, 1999
Naty: New Shader (took out colormaks, fogfunc, new dialog and preset system)
Added alphatest support, added Linear offset mapper and mapper argument
string support
Version 1,0,4,8: Feb 9, 1999
Greg: Added the ZNormals option for forcing the normals of a mesh to be 0,0,1
Version 1,0,4,7: Feb 8, 1999
Greg: Fixed 2 bugs in the skin code. Added code to scan the materials used
by a mesh and discard un-used ones.
Naty: Added 'Alpha-Bitmap' button to the texture dialog, added new shader presets
Version 1,0,4,8: Feb 15, 1999
Greg: Improved the strip generation algorithm. Now actually turns a cube into 6
strips instead of 12 individual triangles. Still needs work though...