changes.txt 19 KB

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