changes.txt 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428
  1. Version 1.0.4.73: November 29, 2001
  2. Greg - Fixed a bug in the animation exporter which caused it to export un-used, uninitialized
  3. floats after the end of each animation channel. Probably existed for 4 years!
  4. Version 1.0.4.72: October 26, 2001
  5. Andre:- Fixed a bug in the "wwDuplicateSkinWSM" MAXScript function. It didn't like finding
  6. NULL values in a skin modifier's bone table. Since that's legal, the code was changed
  7. to support it.
  8. Version 1.0.4.71: September 10, 2001
  9. Greg: - Added new surface types for Renegade:
  10. Permeable Water
  11. Tiberium Water
  12. Permeable Tiberium Water
  13. Underwater Dirt
  14. Version 1.0.4.70: August 22, 2001
  15. Greg: - Added BumpEnv mapper
  16. - Added NPatch enable flag for meshes (in the w3dtools command panel)
  17. Ian: - Added BumpEnv setting to the shader (in primary gradient)
  18. Version 1.0.4.69: January 4, 2001
  19. Greg: - Modified the "bone picker" that the WWSkin space warp uses to allow Max bones to
  20. be used.
  21. Version 1.0.4.68: December 7, 2000
  22. Andre: - Added a Static Sort Level parameter to the Surface Properties rollup page of the
  23. material editor. This parameter must be the same across all materials assigned to
  24. one mesh, and is enforced on export. The value is written out as part of the mesh
  25. header to which the material is assigned.
  26. Version 1.0.4.67: December 6, 2000
  27. Greg: - Added 'Vehicle' collision bit. This will allow us to create meshes which constrain vehicles
  28. to certain parts of a level without constraining characters or projectiles.
  29. Version 1.0.4.66: November 7, 2000
  30. Greg: - Disabled the "optimize meshes" feature because recent developments in the run-time code
  31. seem to have made it un-necessary (and possibly even undesireable due to the extra mesh overhead)
  32. The main reason for disabling the feature is that the automatic nature of it makes some of
  33. our processes harder to debug. Mesh names are lost so the artist has no way of figuring out
  34. which mesh is causing problems when one of the other tools complains about something.
  35. - modified the mesh export code to reject meshes that are using multi-pass transparent materials.
  36. - fixed error message boxes so they pop on top of all windows (they were appearing behind the log window)
  37. Version 1.0.4.65: October 31, 2000
  38. Greg: - Finished code re-organization.
  39. - Pat provided new UI for the main export dialog
  40. - Fixed the "smooth across meshes" feature
  41. - Added the export log window.
  42. Version 1.0.4.64: October 20, 2000
  43. Greg: - Fixed a bug in the name editing dialog in the W3D utility panel
  44. - Modified the VAlpha behavior so that only the *last* pass with alpha blending
  45. gets the vertex alpha (instead of all passes with alpha blending)
  46. - Added the Aggregate geometry type. This lets you request external
  47. W3D objects to be attached to bones in your model.
  48. - Added preliminary mesh optimization features. During the export, meshes can be split
  49. into single-material meshes and then meshes which use the same materials
  50. can be combined into larger meshes.
  51. Version 1.0.4.63: October 19, 2000
  52. Greg: Re-organized the entire DoExport function.
  53. - First I unified all of the code to go through the "DoOriginBasedExport"
  54. code by using the scene root as the origin when there were no user-defined
  55. origins.
  56. - Re-organized the Export_Geometry function to use a new abstract
  57. class: GeometryExporTaskClass which encapsulates a lot of code that was
  58. cut-and-pasted many times through the w3dexp.cpp module.
  59. - Broke several classes and functions out of w3dexp.cpp into their own
  60. modules.
  61. - Modified/Cleaned HierarchySaveClass and MeshConnections class.
  62. Version 1.0.4.62: October 11, 2000
  63. Greg: Re-organised the W3DUtility plugin. Moved several dialog boxes
  64. used by it into their own modules and created a modeless dialog
  65. containing the w3d settings that can be left up when the user
  66. is not in Max's utility panel.
  67. Version 1.0.4.61: September 26, 2000
  68. Greg: Added copying of the dazzle app data structure to the MaxScript
  69. extensions.
  70. Version 1.0.4.60: September 22, 2000
  71. Greg: Added dazzle exporting to the plugin. Modified MeshConnnections
  72. class and the w3d file format so that HModels are exported in a
  73. slightly simpler manner and so that they can support dazzles. The
  74. "auxiliary" header for hmodels is now obsolete.
  75. Version 1.0.4.59: September 18, 2000
  76. Greg: Modified the code so that collections are exported even when no
  77. meshes or other render objects are present. This is used to create
  78. collections of proxy objects for the renegade level editor. Also
  79. modified the "origin" export code to support exporting collections
  80. with origins.
  81. Version 1.0.4.58: August 25, 2000
  82. Greg: Fixed a crash bug that happens if you create a PS2 material. The
  83. bug was caused by the modifications to the texture pane to replace
  84. the NoMipMap and Resize buttons with a single NoLOD button. For some
  85. reason, the PS2 material uses a separate dialog template for its
  86. texture pane which is the same as the dialog template for the
  87. normal material. Since the PS2 version of the template was not updated,
  88. the code would crash when initializing the NoLOD button.
  89. Version 1.0.4.57: August 18, 2000
  90. Andre: Fixed the loading of version 4 ParameterBlocks so that the value
  91. for Stage1MappingType is correct.
  92. Version 1.0.4.56: August 16,2000
  93. Greg: Removed the texture flags and buttons for No-Mipmapping and enable
  94. resizing. These are all lumped into the setting for No-LOD now.
  95. The GameMtl still has the entries in its parameter block for
  96. No-Mipmapping and Resize and I use the No-Mipmap setting to set
  97. the initial state of the No-LOD flag... This also required a flag
  98. in GameMtl indicating that the conversion had been done. Ug... :-)
  99. Version 1.0.4.55: August 6, 2000
  100. Greg: Added new colliison type: camera. In renegade we have some physically
  101. collideable meshes which the camera should not collide with so I had
  102. to make a separate flag for camera collision. When the appdata chunk
  103. is first converted to the new version, the camera collision flag is
  104. set to the same setting as the current state of physical collision.
  105. Added light-glare geometry type. This currently only exports the
  106. position of the pivot point of the max object. It will be used to
  107. indicate where there should be fancy light glare effects in the level
  108. Added NoLOD option to textures in the W3D material. This setting will
  109. be used on textures which should not scale down even when texture
  110. reduction is being used.
  111. Fixed serious bug in the parameter block description for the W3D
  112. material plugin (GameMtl.cpp)
  113. Version 1.0.4.54: July 13, 2000
  114. Greg: Fixed a bug related to user-defined origins not working when they
  115. are rotate or moved from 0,0,0.
  116. Version 1.0.4.53: July 12, 2000
  117. Andre: Added support for a different mappers on stage 0/1 of the Vertex
  118. Material. Added support for the new silhouette mapper type.
  119. These changes can be found in the VertexMaterial panel in the
  120. W3d material editor.
  121. Version 1.0.4.52: May 30, 2000
  122. Greg: Added support for Max's multiple mapping channels. This can be
  123. found in the VertexMaterial panel in the W3d material editor.
  124. Version 1.0.4.51: May 22, 2000
  125. Greg: Added AABTree exporting so that we don't have to generate AABTrees
  126. at run-time. This is controlled by the "Optimize Collision Detection"
  127. checkbox on the exporter options dialog box.
  128. Added prefix and suffix features to the naming tool.
  129. Added detatch vertices feature to the skin modifier.
  130. Version 1.0.4.50: May 8, 2000
  131. Andre: Added a new MAX Script extension: wwInputBox
  132. This is a generic way of getting user input in a Windows-like
  133. manner (as opposed to typing it in the Listener window as
  134. MAX wants to force you to do).
  135. Version 1.0.4.49: May 2, 2000
  136. Greg: Fixed a bug in vchannel.cpp. Was writing out garbage animation
  137. channels which would crash wdump.
  138. Version 1.0.4.48: May 1, 2000
  139. Greg: Changed the way skins are exported so that their vertices are
  140. sorted with respect to the bone they are attached to. Also
  141. made it so vertices are secondarily sorted by vertex material
  142. (this means that non-skinned meshes will sort by vertex
  143. material only.)
  144. Version 1.0.4.47: April 19 2000
  145. Greg: Added a new geometry option for "shatterable" objects. Wrote
  146. a new W3DAppData2Struct which replaces the old AppData1Struct.
  147. Whenever the old format app data is encountered, a new one
  148. is created to replace it. This new app data chunk has more
  149. space in it for future expansion.
  150. Also fixed a crash bug in the skin modifier related to deleting
  151. bones from the space warp.
  152. Version 1.0.4.46: March 28, 2000
  153. Greg: Added "Transform Nodes" to the collection export. We already had
  154. "Placeholder" objects which were signified by a '~' after the
  155. name. Now we have "Transform Nodes" which are signified by a '*'
  156. after the name. Transform Nodes instruct one of the Renegade tools
  157. to merge another W3D collection into the file at a given transform.
  158. The purpose was to allow us to lightmap certain building interiors
  159. only once and then merge them into many levels...
  160. Version 1.0.4.45: March 8, 2000
  161. Andre: Changed the Is_Origin() test to check for hidden nodes. If a
  162. node is hidden, it will not be accepted as an origin. This
  163. means that hiding an LOD prevents it from being exported (as
  164. you would expect).
  165. Version unchanged: early March
  166. Andre: Fixed a couple of crash bugs related to animation exporting.
  167. Version 1.0.4.43: February 29, 2000
  168. Greg: Fixed a bug which caused all meshes marked to cast shadows to
  169. not get texture coordinates.
  170. Fixed meshsave.cpp to detect and properly handle mirrored meshes.
  171. Version 1.0.4.42: January 24, 2000
  172. Lytle: Added Playstation 2 material support, including converting W3D
  173. materials to PS2 materials. Added support for vertex colors and
  174. vertex alpha to exist concurrently.
  175. Version 1.0.4.41: January 13, 2000
  176. Andre: Fixed a nasty memory overwriting bug in MeshConnectionsClass
  177. that only reared its head under very unique circumstances.
  178. It was a copy/paste bug that would lead to writing a W3D
  179. file with incorrect data. It would manifest itself by crashing
  180. the viewer (and potentially the game engines) when trying to
  181. load the file.
  182. Version 1.0.4.40: December 16, 1999
  183. Ian: Added 'Export Utilites' group to W3D Utility panel and added a
  184. 'Export with Std Mtls' button to this group. This button will
  185. first convert all W3D materials in the scene to standard
  186. materials, then call the export feature, then, after export,
  187. convert materials back to W3D materials. The purpose of this
  188. utility is to make it possible to export W3D material attributes
  189. to third party file formats (eg. Lightscape Preparation files).
  190. Version 1.0.4.39: November 15, 1999
  191. Andre: Changed the mesh LOD naming convention so that we use numbers
  192. that correspond to the LOD number (highest-to-lowest) instead
  193. of letters that went from lowest-to-highest.
  194. Version 1.0.4.38: November 12, 1999
  195. Greg: Updated MeshConnections class and the hmodel chunk definitions
  196. in w3d_file class to not treat shadow meshes as a different type
  197. of mesh.
  198. Version 1.0.4.37: November 11, 1999
  199. Greg: Removed the GEOMETRY_TYPE_SHADOW settings and UI. Added a
  200. EXPORT_CAST_SHADOW flag. This basically means that rather than
  201. shadow casting being a completely different "type" of mesh it
  202. is now an option on any mesh. This required some tweaking
  203. of the AppData structure we're saving and to the w3dutil code.
  204. Version 1.0.4.35: November 3, 1999
  205. Andre: Exposed another script extension, called "wwDuplicateSkinWSM".
  206. This extension allows the SceneSetup script to copy bone
  207. information from the base object's skin WSM to the LODs.
  208. Meshes are still unaffected, since the artist will be munging
  209. the meshes to reduce their poly counts.
  210. Version 1.0.4.34: November 2, 1999
  211. Andre: Exposed two new script extensions, named "wwCopySkinInfo" and
  212. "wwFindSkinNode". These extensions allow the SceneSetup script
  213. to copy the skin/vertex/bone binding information from the base
  214. model to the LOD and Damage models.
  215. Version 1.0.4.33: October 18, 1999
  216. Andre: Merged WWScript.dlx into the exporter, so now WWScript is
  217. unnessesary and should be deleted. The code in that DLX was
  218. ported from MFC to Win32 code during the merge. GetW3DAppData0
  219. and GetW3DAppData1 are no longer exported from the DLE.
  220. Version 1.0.4.32: October 11, 1999
  221. Andre: Correct NULL object handling was implemented when exporting HLODs.
  222. NULL object chunks are only written when using the old-style LOD
  223. setup (one per file), otherwise the name "NULL" is put in the HLOD
  224. and no NULL object chunk is written.
  225. Version 1.0.4.31: October 5, 1999
  226. Andre: Fixed a bug in MeshBuilder where a division by zero occurred if the
  227. extents of a triangle was zero in one dimension.
  228. Version 1.0.4.30: October 1, 1999
  229. Andre: - Added support for the "suppressPrompts" flag during export. If
  230. Max passes in a TRUE value, we will go with the previous export
  231. settings instead of showing the export options dialog. This makes
  232. non-interactive batch exporting possible.
  233. - Moved W3dExportOptionsStruct from w3ddlg.h to w3dutil.h so that
  234. WWScript can access it easily.
  235. Version 1.0.4.29: September 27, 1999
  236. Andre: - Fixed a skin bug that occurred in LOD exporting when a vertex in a
  237. skin was not bound to a bone (it would be exported in unmodified
  238. coordinates, creating a "pop").
  239. - Strip off any trailing ".%d" or "." from a name in Set_W3D_Name
  240. (as opposed to just ".%d").
  241. - If the artist sets up damage animations, then the animation on
  242. the base model is no longer exported. (non-damage animations should
  243. still be created in separate files)
  244. - Exporting 2 more symbols from the DLL (GetW3DAppData0 and
  245. GetW3DAppData1). These functions are used by the MAXScript extension
  246. DLL (WWScript.dlx) to copy AppData from one node to another.
  247. Version 1.0.4.28: September 23, 1999
  248. Andre: Fixed a bug in LOD exporting when the base object wasn't centered
  249. at the origin. Added support for placing damage models in the scene.
  250. Renamed "Generate LOD extensions" to "Generate extensions" since
  251. the same extensions are used for damage. Added a "Damage Region"
  252. spinner to the W3D Tools panel. With this spinner you can mark
  253. bones as being part of a given damage region (0 to 15, -1 means
  254. not part of a damage region).
  255. Version 1.0.4.27: September 17, 1999
  256. Greg: Added degenerate triangle removal to MeshBuilderClass.
  257. Version 1.0.4.26: September 17, 1999
  258. Andre: Modified the exporting code to allow artists to define all LODs of
  259. an object in one MAX file. The old way of creating LODs is still
  260. supported so that old art assets are still usable. Added a
  261. "Generate LOD extensions" button to the W3D Tools panel to make
  262. the Origin naming convention less painful.
  263. Version 1.0.4.25: August 21, 1999
  264. Greg: Fixed a bug in Export_Geometry. While exporting skins, one line of
  265. code was referring to the list of normal meshes rather than the list
  266. of skins. When you do an export with only a skin and no meshes, this
  267. causes an access violation.
  268. Version 1.0.4.24: July 27, 1999
  269. Greg: Changed the Hide/Unhide by W3D type buttons into "Select by W3D Type"
  270. buttons. This should be more useable. Also, added select alpha meshes,
  271. select physical, projectile and vis collision meshes.
  272. Added a material naming tool.
  273. Version 1.0.4.23: July 9, 1999
  274. Pat: Changed the default behavior of the collection naming tool to
  275. be 'affect selected' rather than 'affect all'
  276. Version 1.0.4.22: July 7, 1999
  277. Pat: The export code doesn't export the DCG array if all vertex colors
  278. are white (1, 1, 1), however this was a problem when using the
  279. new Mesh Deformer, so I added a check during export to see if
  280. the Deformer was modifying vertex colors. Also modified the
  281. hierarchy export code so it will resize its internal array if
  282. the number of nodes is greater than 512.
  283. Version 1.0.4.21: July 1, 1999
  284. Pat: Added code to optimze the between-mesh smoothing and added a new
  285. button to the export dialog that allows the user to turn this
  286. smoothing feature on/off. Also added displacement maps to the
  287. W3D material, however due to a bug in the NURBS Mesher modifier,
  288. we decided not to expose the functionality in UI at this time.
  289. Version 1.0.4.20: June 24, 1999
  290. Pat: Added code to apply smoothing groups over mesh boundaries. More
  291. work was done on the obj-space mesh deform modifier including save/load,
  292. export, undo, and vertex-alpha support. We fixed a bug where the ErrorClass
  293. object that was used during exception handling was using and freeing a
  294. previously freed pointer. Added a new panel to the material types for
  295. Commando surface types.
  296. Version 1.0.4.19: June 14, 1999
  297. Greg: Added the VAlpha checkbox to the W3D utility panel. Checking this
  298. causes the exporter to convert vertex colors into alpha values and put
  299. them in all passes that are using alpha blending. This might be a temporary
  300. solution; I'm thinking we need to extend the Utility panel (and the AppData
  301. structure that we are saving) to allow for more flexible control over vertex
  302. alpha, vertex color, etc.
  303. Version 1.0.4.18: May 27, 1999
  304. Greg: Fixed a bug in the code which handles loading a hierarchy tree from another
  305. W3D file. Made the W3D utility panel support multiple selection.
  306. Pat: Added the initial mesh deform object space modifier. Currently doesn't
  307. export the data.
  308. Version 1.0.4.17: April 9, 1999
  309. Greg: Fixed a bug related to exporting a mesh with zero vertices. Exporter will
  310. throw an exception which pops up a message box indicating the name of the
  311. mesh. Made the collision boxes behave the same way as meshes when one is
  312. exported with geometry only - it takes on the name of the file. Whew this
  313. part of the exporter code is getting uuuuuugly...
  314. Version 1.0.4.16: April 6, 1999
  315. Greg: Fixed a bug related to the storing of the default export options. If the
  316. user exported a model which uses the hierarchy from another model and then
  317. moves the Max file, the next export would crash Max when the exporter couldn't
  318. find the w3d file which contains the hierarchy.
  319. Version 1.0.4.15: Mar 18, 1999
  320. Greg: Fixed a bug in the AABox export. Was using the wrong coordinate system for
  321. the box. AABoxes actually seem to be of very limited use. Possibly only
  322. useful as an approximation of a cylinder centered at 0,0,0 in object space
  323. (but moved anywhere on the z-axis) and only for objects that *only* rotate
  324. about the z-axis. (characters) Ug.
  325. Version 1.0.4.14: Mar 16, 1999
  326. Greg: Made meshes that are marked as AABox or OBBox export a W3D_CHUNK_BOX instead
  327. of a mesh. The runtime engine can test collision with a box in about the same
  328. amount of time it takes to check a single triangle... so one box is much faster
  329. than a 12 triangle mesh :) These boxes are only for collision detection so
  330. they only export a color, no other rendering information.
  331. Version 1.0.4.13: Mar 11, 1999
  332. Greg: Fixed a bug in the collection exporter. Needed to put the entire name
  333. of the render object into the sub object chunk.
  334. Version 1.0.4.12: Mar 10, 1999
  335. Naty: Fixed minor bug with start/end animation frames in export dialog.
  336. Version 1.0.4.11: Mar 4, 1999
  337. Naty: Added "Camera Oriented" mesh type (and changed the camera aligned button
  338. to read "Camera Parallel"). Export options are now saved in the MAX file
  339. (hierarchy file paths are saved in a relative form).
  340. Version 1,0,4,10: Mar 3, 1999
  341. Greg: Modified so that collections are not exported when there is only a single
  342. mesh and forced that mesh to use the name of the file.
  343. Changed w3d_file.h so that meshes have a "container name" instead of
  344. a "hierarchy model name" and set the container name when a collection is exported
  345. Version 1,0,4,9: Mar 3, 1999
  346. Naty: New Shader (took out colormaks, fogfunc, new dialog and preset system)
  347. Added alphatest support, added Linear offset mapper and mapper argument
  348. string support
  349. Version 1,0,4,8: Feb 9, 1999
  350. Greg: Added the ZNormals option for forcing the normals of a mesh to be 0,0,1
  351. Version 1,0,4,7: Feb 8, 1999
  352. Greg: Fixed 2 bugs in the skin code. Added code to scan the materials used
  353. by a mesh and discard un-used ones.
  354. Naty: Added 'Alpha-Bitmap' button to the texture dialog, added new shader presets
  355. Version 1,0,4,8: Feb 15, 1999
  356. Greg: Improved the strip generation algorithm. Now actually turns a cube into 6
  357. strips instead of 12 individual triangles. Still needs work though...