RsdAnim (C)1998, by Craig Graham --- Change list --- [12/5/98] o Loading a 16bit TIM now doesn't cause a crash (it still doesn't load the texture though, it load's a dummy texture instead). o Added a startup dialog to allow you to disable Direct3D hardware accelleration (as it only seems to work with S3 Virge cards). Software mode is slower but should work on most PC's (as long as they have Direct3D v5). NOTE: Now works on NT if you select NO in the startup dialog :) [Actually, no it doesn't......bum] o Lots of changes to the texture mapper dialog. - You can now map just to selected faces instead of the whole model. - FlipX/Y to flip the texture as it is mapped - Tiling / Repeats now works (although it's only good on fairly high poly models) - Sphere mapping works - Added X/Y/Z planer mapping with optional 'exact' mode. - Mapping extents are now correctly calculated, and if the 'selected faces only' option is selected the extents only include selected faces... o Fixed a bug with which view pane a click was processed in. [13/5/98] o Return of the XYZ Axes display in 3D views. o Vertices now displayed in textured view o RSD file is now saved, so models with new textures should load correctly. o RSDTOOL doesn't support the full RSD format (combination coloured + textured faces don't work), so I've added a "Make Model RSDTOOL compatible" function - only use it if you really want to load the model into RSDTOOL.....but you'll lose any colour tinting information from tetured faces... o Resize tool added (the button's been there for ages - it's got code for it now). [14/5/98] o Added Grid display (wire frame view only). o View popup now has TOP/SIDE/FRONT options to go straight to a view. [17/5/98] o Added support for loading 3DS / 3DS Max ASCII Object files (.ASC) ==================================================== [18/5/98]: PUBLIC RELEASE 1.0 ==================================================== [19/5/98] + Bug report from Steve Dunn recieved o Added "delete keyframe" function (as requested by Steve Dunn) o Fixed the New Movement menu option to actually do something (the button already did). o Fixed a small memory leak (there are still some more though). o Fixed crash when double clicking on the Baseframe if no other frames existed (actually, the cause of this would be corrupting files anyway). o Fixed the "Keyframe Info" bug reported by Steve Dunn. o Added a check for duplicate keyframe names (you cann't have them now). [20/5/98] o Fixed bug in MIMe generation code for large frame to frame Vertex delta distance's. Number of render frames is now correctly increased to cope and you don't get the MIME ERROR messages in the C output. Thanks to Steve Dunn for the Sample animation that demonstrated the problem. o Added explaination text and Keyframe name to the MIMe Generation Error dialog. [22/5/98] o Textures now appear in the tree view. You cann't do anything with them yet though... o Added drag'n'drop KeyFrame re-ordering. Drag the frames to the order you want them... (occasional crash problem here - save frequently). [26/5/97] o Support for 3DS Max ASCII Scene Export (.ASE) file loading added. Note that as ASE is a modular format, I've not implemented all blocks. I'll add extra features to the ASE loader as time goes by... - Vertex & Face loading - Included object group loading support in the ASE loader (NODE blocks). - Key frame loading supported (linear moves only). - Started adding code for Texture Map loading (not working yet). o Optional Auto Deselect when using tree view double click to select groups. o Large ASE objects can now be loaded (>30K polygons). Runs dog slow at that number of polys, but you wouldn't want them in a game anyway as PSX couldn't handle it. Load it & optimise it.... [27/5/97] o New function 'Invert Selection' - selects everything not already selected, and deselects what used to be selected. o Model Info dialog now has two new fields, showing number of selected polygons and number of selected vertices. [28/5/07] o Bugfixed the ASE animation import function (still no rotation, but position is ok now). o Fixed problem with rotation centre being in the wrong place. o Fixed problem with click drag selection response. ==================================================== [28/5/98]: PUBLIC RELEASE 1.2 ==================================================== [4/6/98] o 3DS Max ASE import now handles texture information. Why? Isn't RsdAnim's texture mapper pretty good? Yeah, it is compared to RsdTool, but 3DS Max rules for this sort of thing, RsdAnim is just for final edit and animation. NOTE: You MUST convert your textures to TIM's before you try to load the ASE. I recommend you setup all your textures in one directory first, before mapping them in 3DS Max. RsdAnim expects to find a TIM file in the same directory as the texture file you used from Max. [10/6/98] o Added swap X/Y option to the texture wrap dialog. [13/6/98] o Re-wrote the ASE importer to handle stuff more generically. o Added a replace keyframe button. [14/6/98] o Fixed rendering of 4 sided polys in the texture view. o Added new options to the view popup menu to make selected poly's: - transparent - coloured -+ - textured -+--these last two are to allow you to clear the texture of a polygon and to turn it back on again.... o Textured view now displays transparency - note that this only works on a 3D accellerator device which supports it (Direct3D's software rasterizer doesn't do it). Also (at least on my S3 Virge card), only solid coloured polys display as transparent - that's probably just my 3D card though... o Added new toolbar buttons for a couple of the new functions. [20/6/98] o A basic miscomprehension on my part about what the Yaroze manuals meant... p:(1,19,12) actually means 1 sign bit, 19 whole bits, 12 fractional bits. So, I've re-done the MIMe export code to allow a much broader range of values for the p coefficient (before, I was only allowing the values 1,19 and 12!!!). This gives a much larger and more accurate MIMe representation of an animation than you were getting before.... ==================================================== [22/6/98]: v1.2 Internal Beta Release (to John & Mark Only) NOTES: 1) TMD saving is work in progress - don't try to use it, bad things will happen. 2) Max2 ASE import: Don't enable "Extract Camera Paths" in the import dialog. This is gonna get finished once I work out KB-Splines properly.... 3) Max2 ASE import: Pay attention to my note dated [4/6/98]. This is important. ==================================================== [23/6/98] o Added a view lighting configuration dialog. You can now setup how the texture views flat lights are coloured. There are 3 lights, one on each axis, and you can toggle the RGB components of each light. Each view has it's lighting set individually, so you can have different illuminations in each view pane if you like... NOTE: This is a feature requested by John Li, and as he's my main graphics man, it goes in before anything else... [25/6/98] o Started the TMD saving function. Only works with FP3N's and GP3N's at the moment. [26/6/98] o Added more prim types to the TMD saver: FP3 GP3 FTP3 GTP3 FTP3N GTP3N [28/8/98] o Toolbar positioning and window size is now remembered from previous sessions. NOTE: As requested by John Li, 24/6/98. o All toolbars can now be turned on and off (this is also remembered). o Toolbar names now set properly when used as floating. o Added new toolbar "Polygon Edit" to make a more sensible grouping of poly related functions. o New function "ZOOM" in the view toolbar - select and hold left button in view pane, move right&left to zoom in and out. NOTE: As requested by John Li, 24/6/98. o Lighting setup is now saved to the file "c:\Windows\RsdAnim.config". I'll be putting other configuration stuff in there later. o Added manual texture UV edit view (accessible via the view popup). Usage: 1) Double left click in view to get popup. 2) Select "View Texture UV" 3) Double click on a texture in the project window. - The texture should appear in the view. Any vertices that use the texture will be shown, 4) Select your vertices to edit. 5) Use the Move Tool to move the texture coords around in the Texture UV View. Whenever you release the mouse button, the changes will be shown in all the other view. o Added click & drag select to the Texture UV edit window, so it feels similar to the other views... [29/6/98] o Started adding the timeline / velocity view. Currently it just shows a timeline with the keyframes of the selected movement positioned correctly along the time axis. o Currently active edit pane now has a highlight border round the edge to show you which it is. o Edit ops don't swap from one pane to another as you move the mouse now. o Added scale to the bottom of the Movement Timeline view - measured in frames. ==================================================== [29/6/98]: v1.3 Internal Beta Release (to John Only) NOTES: 1) TMD saving is now pretty stable for use with Max generated models 'coz they only use triangles anyway. 2) I'm working on the velocity view, at least it shows the frames in respect to time at the moment. ==================================================== [30/6/98] o Added average and maximum velocity traces to the Movement timeline. The grey shaded area indicates average velocity (averaged over the number of vertices in the object). The red line shows the maximum velocity that the fastest travelling vertex is moving at (NOTE: these are not to the same scale, even though they are on the same axis) [2/7/98] o Changed the texture wrap dialog. Added a ComboBox with all current textures in it so you can select which texture to map. Also added a browse button for choosing a new texture to add to the model (instead of always bringing up the file selector as I was before). o Added a 'paint texture' button. If you have a texture selected in the project tree and you select a face (or several faces) clicking on paint texture will paint the faces using the texture. You'll want to move the texture UV's about by hand in the UV edit pane if you apply textures this way.... ==================================================== [2/7/98]: PUBLIC RELEASE 1.3 ==================================================== [2/7/98] o Fixed the wireframe view (thanks to Ian Thompson for the bug report). o Added optional backface removal mode to the wireframe view (toggle is in the 'View' menu). o Uploaded the RsdAnim_lib animation library to my WWW page. [6/7/98] o Generate MIMe & Add Keyframe now work from the menu as well as the buttons. o Disabled the File->New as it has no meaning for RsdAnim (and wasn't used anyway). o Changed the way UV edit works. Only vertices that are selected in a wireframe or texture view and are part of a face with the texture on it will show up in the UV editor. This makes things less cluttered and allows easier fine tuning of textures. Also, improved the way UV editing works... [10/7/98] o Fine tuned the click/point vertex selection (when you click on a single vertex to select it). Changes to the selection algorithm to make it less frustrating trying to get the vertex you really want. 1) The distance selection algorithm used to just drop out when it found a vertex close to the cursor. Now it selects the vertex CLOSEST to the cursor. 2) You now always get the vertex closest to you (in Z) if several vertices are on top of one another. At least it's consistent now..... [20/7/98] o Recoded the "Bones" creation stuff (which has never been enabled in a release build anyway, so you'll not realise how big a job this was). [22/7/98] o Got bone editting working. When a bone rotates around a joint, all child bones follow it :) Nice editting aproach, where rotation axis is always into the screen, whatever viewpoint you are looking at. o Disabled the baseframe checkbox in the Add Keyframe dialog. Use Replace Keyframe to change the baseframe instead. o Attatch to Bone now works (sort of, the selected vertices are attatched to the last bone you added). o When rotating a joint, the vertices attatched to any bones that move are also rotated. Hey, that's working bones animation!!! o Skeletons now attatched to keyframes, and changes are preserved when you swap from one keyframe to another. [23/7/98] o XYZ axis in wireframe made to match the one in the textured view. o New switch in view menu "Show Bones" to turn on/off display of the bones. o Move Joint function added to allow individual bones & joints to be positioned exactly independant of the model without the rotation restrictions placed on normal bone rotations. o Grid display now available in textured view. o New switch in view menu "Show Model" allows you to turn off the display of the model altogether in a view. eg. You can now show just the bones skeleton in a view. Or just the vertices, with no polygons linking them up. o Skeletons now saved in a ".bone" file. Only the Baseframe skeleton is saved at the moment o ".bone" files are now loaded back in again :) - I'll be able to release some sample boned models RSN. [24/7/98] o The pick-select tool now also allows you to select a bone as well (click on the bone end control point). You can only select a single bone in this way, which will be shown in red. o "Add Selected To Bone" now adds the selected vertices to the bone you selected with the pick-tool. o New function "Remove Selected From Bone", will dettatch any selected vertices which are attatched to the currently selected bone. o To differentiate between bone start's and ends, the start joint of a bone is drawn as an X, the end control point is drawn as a square. o Added a splash screen. o Plugged one of the many memory leaks in the program. There's more in there, it's only one less... o Started doing a windows help file. o Added a menu option to bring up the help. [27/7/98] o New function "Delete Bone". Delete currently selected bone (if any). ==================================================== [27/7/98]: PUBLIC RELEASE 1.4 ==================================================== [28/7/98] o Started adding code to use the Datel Action Replay to provide a fast previewer actually on the Playstation itself (taken from my ARS server/client code). o New toolbar added "Action Replay Control". o AR port setup available in options dialog. o AR comms class integrated into program (based on the stuff I wrote for ARS). [29/7/98] o AR texture download works. Bloody quick it is as well. o Fixed bug in vertex selection (couldn't click to select a single vertex if you had Show Vertices enabled without having Show Model enabled as well). o Added the "View Track" check box to the Action Replay Control toolbar. o Added Action Replay Comms Error dialog in case comms ops timeout. Provides Retry or Cancel options. o New CRC checked block transfer method for AR comms. I should go back and put this into ARS :) o Added AR model download code (save a temporary TMD as "c:\temp\temp_tmd.tmd", then downloads that). [30/7/98] o Added AR zoom & rotation control. o Coded Playstation side previewer. o AR preview mode works fine now....excellent!!! [2/8/98] o Improved speed of AR download approx. 300% by changing the process priority for the duration of the download, and removng timeout detection once a download is in progress (you may occasionally get an error using this, but it's worth it for the 99% of the time it works fine and is loads faster). o Added AR forced EXE download to put the previewer onto the playstation real quick. I probably cann't actually do a release with this code in, but it's quite useful. o Added playstation graphics resolution selection to the AR previewer and RsdANIM. o Added remote reset button to the AR Control toolbar. [3/8/98] o Added poly4 support to the TMD saving routine. New primitives: FP4 GP4 FP4N GP4N FTP4 GTP4 FTP4N GTP4N This is used both by the direct TMD saving code (Save As->TMD) and the Action Replay previewer, (which saves out a temporary TMD to download to the Playstation). o Inlined the playstation side AR previewer EXE into the RsdANIM executable. This will probably not make it into a general release version (see note on forced exe download on 2/8/98). =============================================================================== [4/8/98]: Limited distribution source release 1.5 (prerelease) Released to a small number of people who offered to help with debugging some issues with the Direct3D code. Thanks to Steve Spiller & Mario Wynands for their help. =============================================================================== [5/8/98] o Added CPU & GPU load profiler to PSX side previewer. o Added switches to turn these on and off from RsdANIM's TOOLS menu. o Fixed bug in RSD saving, bones skeleton now correctly saves baseframe skeleton instead of current edit frame skeleton. [6/8/98] o Bones skeleton now saved for all keyframes, previously only the baseframe skeleton was saved. Older bones files will still load, but will save out in the new extended format. o Plugged the memory leak (at long last) that's been giving me grief since v1.0 :) o When we arrive at the final frame of an animation, correctly set the bones and stuff (the 2nd to last frame's bones skeleton was being set instead). [7/8/98] o Added new binary MIMe save code. o Extended the PSX side RsdANIM library with two new functions: LinkMIMe() : links a binary MIMe file so you can then use InitMIMe() on it. ReleaseMIMe(): releases a MIME_HANDLE and free's the memory allocated to it. o Added support for animation previewing on the playstation. - New button in AR Control bar "AR Send MIMe" - Support in the PSX side previewer for downloading binary MIMe files. (animation plays continously once started). [10/8/98] o Re-arranged the TOOLS menu a bit. o Added new function "Delete Movement" (Tools->Movement->Delete). o Added new function "Remove Texture" (Tools->Texture->Remove). Removes all refferances to the selected texture from the model. All faces painted with it are made coloured, all other texture ID's are renumbered and the texture is removed from the RSD altogether. o Slight fix to the set as coloured face option. o Added new function "Rename Movement" (Tools->Movement->Rename) o Added new function "Rename Keyframe" (Tools->Keyframe->Rename) o Added new function "Rename Poly Group" (Tools->Group->Rename) o Added new generic rename function (Edit->Rename), will rename Movements,Groups or Keyframes. [11/8/98] o Added new function "Ungroup Polygons" (Tools->Group->Ungroup). o Fixed tools menu Tools->Keyframe->Delete to actually work. o Added new generic delete funtion (Edit->Delete), will delete Movements & Keyframes and ungroup Poly Groups (really, it deletes the grouping information, hence it being on the delete option). o Following Mario's suggestions on Backbuffer/Z-Buffer creation in the Direct3D code, I've added some retry code that attempts to ensure that the display is actually created correctly. A bit techie, but what it does is shrink the window and keep trying to create a Direct3D display using repeatedly smaller windows until it finds a size that your 3D card can handle. Note that this doesn't apply if you're using the software renderer. o Added a new pane in the Options dialog. This allows you to set the maximum view pane size. So, you can setup a huge max size so that you can have a single view full screen? Well, perhaps. Depends how much memory you've got on your 3D card. If you're using the software renderer (NO from the startup dialog) then you're in luck, as the DirectX 6 software renderer will happily display 1280*1024*16bit Z-Buffered 3D images. Of course, the bigger the display pane, the slower it updates...... [12/8/98] o Added new recentering function to the Model info panel, to allow all frames of an animation to be re-centred. o Re-scale & re-centre now correctly effect the bones skeleton. o Holding down shift when selecting bones with the pick tool will now select bones when you click on their start joint. o Holding down shift when using the Rotate Bone tool will now rotate about the joint end instead. o New function "locked rotate joint". Not sure how to describe what it does - try it on a model to see. [13/8/98] o Recoded the Direct3D textured display driver to get a bit better performance. o Fixed the problem with using shift as the joint/bone modifier. [14/8/98] o Improved the drag & drop operation of the Project Manger Tree slightly. o Right click on an item in the Project Manager Tree now gets you a popup menu with common operations in it. Exactly which depends on what type of item you click on (eg. right-clicking on a Keyframe get you a menu with Edit Info,Rename,Replace & Delete in it). [15/8/98] o Model Info dialog now shows centre point of object as well. o Rotate joint & locked rotate joint now show the angle (in degrees & radians) in the view pane. o "Save As Rsd" now actually works and saves as the RSD filename you select. [17/8/98] o Added "Measure Angle" function. o More performance optimisations in the texture view display code. o Optimised the RecalculateVertexNormals() code (improves display speed). o Play Preview (on PC) - right button click & drag to change viewing angle now works whilst a preview is playing... =============================================================================== [17/8/98]: Public Release 1.5 NOTES: The AR control stuff isn't disabled is this release, but I've not released the Playstation side client yet, as I've yet to put together a Yaroze libps built version (current version uses pro-dev librarys). =============================================================================== [18/8/98] o Re-enabled the Direct3D MMX driver support. o Lighting Config now works on Wireframe view as well as textured. o Improved render speed of wireframe view. [19/8/98] o Added display as environment mapped option. This will environment (well, chrome map really) all textured poly's in an object using the texture they have assigned to them. So, for a simple chrome object, get a chrome texture, wrap it round the object and display it with the 'Show as Env Mapped" option checked. Rotate it to see the effect. This is a visualisation tool only - if you want to have env mapping on a PSX, you'll have to code up some stuff to do it. o Added new option in Texture Wrapper dialog "Apply To All Frames" - does what it say's, check it to have the wrap applyed to every frame of every movement. [20/8/98] o Re-coded the texture mapper pretty much from scratch. =============================================================================== [21/8/98]: Virus Disaster - I'd got a virus on my PC, and RsdANIM 1.5 suffered from it. bugger. Cleaned up now.... =============================================================================== [24/8/98] o Texture Wrapper: two different spherical texture mapping algorithms are now available. - Vertex Normal Projection : projects the average vertex normals (as used for gourard shading) onto the texture. - Centre-Vertex Projection : only good on convex shapes, projects a vector from the objects geometric centre point through each vertex onto a sphere and uses the X & Y axis angles to generate the texturing. =============================================================================== [24/8/98]: Public Release 1.51 Really just a non-virus infected release of 1.5, but with the one or two other bits I've done since 1.5 in there as well. ===============================================================================