CompuServe Thread

#IPAS R4 Ideas

4 messages in this thread
#95690From: SyndesisApr 6, 1994 9:25 AM
As requested by Jonas, here is my April 1 list of IPAS improvement requests… —- More orthogonality in functions From my perspective as a maker of foreign file import and export routines, I want enough IPAS functions to create a complete object including geometry, hierarchy and materials. (I'll leave motions out of the discussion for now.) For a file exporter, I need to access both the hierarchy information as well as the geometry at the same time, so my routine can make a proper object for another file format. The brick wall between the functionality of the Keyframer and the 3D Editor makes it very difficult to assemble links between objects you've just made in the 3D Editor. Far too often while reading the IPAS docs, I got the feeling that IPAS functions were added only as needed to accomodate specific new IPAS ideas. Instead, new IPAS functionality should be added in general, extensible contexts. In general, I'd recommend adding more IPAS functions to make access to the internal data more orthogonal: every item of data inside the program (as created through the actions of the user) should be able to be examined, set, created or destroyed from within IPAS functions. Orthogonal example with materials For example, there should functions for manipulating materials: 1. Iterate through the list of materials in 3DS at the moment. Retrieve each name. (You can do this now.) Expand this include a mechanism to retrieve all other values associated with the material. 2. Add a new material given a name. (You can do this now, but you can't set any material attributes.) To avoid a big struct and for future expansion of material definitions, make a function that's passed a struct containing the name or index of the material to change or retrieve, plus a union pun that can hold any data that defines a material. Each element within a material (various RGB values, specular coefficients, map filenames, etc.) would be assigned a unique #define enumeration, and 3DS would reset the element based on the proper value. 3. The limit of 255 materials per scene is tough. With our import and export conversions, this was a major obstacle. However, the user faces this purely within 3DS, too. Loading a series of objects with varied materials soon overflows the list of materials. If IPAS routines could iterate through the material list, we could write our own routine that mapped excess materials to the list of 255. But this is a tough routine to write. If 3DS had an official method to map excess materials, we could follow that rule. Otherwise, we'd need to invent our own. IPAS descriptions The user should see a better description of each IPAS routine. DOS filenames are bad enough, restricting them to six characters (because of the _I or _W suffixes) makes it worse. Instead, the user should see an English descriptive name. One possible way to do this would be to require a database-like file that contains basic information about each IPAS: a description, version numbers, date stamp, etc. The file would have a standard extension, and 3DS could examine them on startup when it builds the list of available IPAS routines. Automatic recognition Depending on filename extensions for loading alternate bitmap formats is a good idea. But what about PICT files, for example, which do not have a standard filename extension? An alternative would be a scheme that, when the user has selected a file that isn't recognized by 3DS's internal GIF/TIF loaders, would query all available BXPs to see if they can recognize the file type. They would be passed the filename, and perhaps a buffer of the first few bytes of the file, and if one says it can recognize it, then it should load it. You could do this with 3D files, too: our InterChange loaders all contain a subroutine that can attempt to "autorecognize" any 3D file format. I have a lot of experience with developing APIs that handle this kind of extensible loading and recognition of file types, if you need some free advice, I'm here to help. With a better organized loader/saver scheme, the list of available formats would be present in the Load and Save dialogs. For example, our after-market export IPAS would appear in a list of available export formats, in the Save As dialog. Future IPAS Also, I'm curious about how IPAS will be adapted to WinNT and the SGI. We've adapted our translators to several platforms, including DLLs under Win32s / Windows NT.
#95705From: Jonas Ruikis [ADESK]Apr 6, 1994 10:21 AM
John, << IPAS3/4 wishes..>> Thank you *very* much. Everyone else, please add your additions _today_ if possible. I can fold them into a report that I'm presenting tomorrow to Max regarding the state of 3ds and ipas3 from my perspective. Who's Max? From an internal memo…. "Autodesk is pleased to welcome Max Hoffmann as the Senior Manager of our Multimedia Developer Programs. Max began at Autodesk on April 4th. Chris Allis will report to Max in this role. Max and Chris must extend our early lead in extensible multimedia tools for the PC. Software developers, hardware developers and content developers will be addressed in our overall approach." jonas[adesk]
#95760From: Danny MercurioApr 6, 1994 2:27 PM
Jonas, << IPAS3/4 wishes..>> Here's a couple of wishes; 1) Documentation for the internal commands of the SDK. This is vital for anyone wanting to create "hybrid" routines. I could really have used that for the stuff I'm working on. As it is, I basically had to reverse-engineer the toolkit to get my app to do what I wanted. 2) Better memory support. This PharLap limitation is for the birds! After going through the trouble of releasing memory after my routine terminates, it's a pain knowing that the memory is not necessarily available to 3DS because of the way the PharLap segments memory. 3) Fix the current bugs! The item mesh flags for example. I know this requires a fix to the 3DS core code but it has to be done. 4) Longer IPAS routine naming support. Let us use names that are longer than six characters or at least let us add a short description of the routine that is visible from the IPAS routine list. I don't know about anyone else, but I have at least twenty to thirty different IPAS routines and it's difficult to remember what they all do from looking at their short names in the list. 5) Enhance and support 3DE. I think more and more people are going to need this tool as their dialogs become more complicated. That's all I can think of right now. If I come up with more, I'll post them here. Regards, Danny…
#95767From: Jonas Ruikis [ADESK]Apr 6, 1994 3:10 PM
Danny, Thank you very much! Keep 'em coming! jonas[adesk]