Clax 3ds keyframing library source code by borzom. clax: a portable keyframing engine or 'Autodesk denies knowledge!' copyright (c) 1997 borzom version 0.10 (first public release) documentation ---------------------------------------------------------------------------- (1) introduction ---------------------------------------------------------------------------- NOTE: YOU CAN NOT USE AND/OR DISTRIBUTE CLAX AND/OR PARTS OF CLAX UNLESS YOU FULLY UNDERSTAND AND ACCEPT CLAX LICENSE. (license.txt) . what is it ? ----------------------------------------------------------- clax is a portable keyframing engine, designed for demos. originally, it was supposed to be a 3dstudio keyframing engine, but it became a portable keyframing engine with alot of goodies. if you dont know what is demo scene, you should visit http://www.hornet.org. clax is not a full 3d engine, but a keyframing-only engine, that is designed to fit any existing 3d engine without any major changes. included in this package are examples, and a minimal 3d engine that uses clax. . what is it for ? ------------------------------------------------------- as i said before, it is designed to use in demos. in further versions, it may fit for games as well, actually this version too, but not as easy. . where to get the newest version ? -------------------------------------- on the net: http://www.geocities.com/Clax -- official clax homepage ftp://ftp.cdrom.com/pub/demos/incoming/code -- hornet archive bbs: coders/fx, sysoped by Civax: +972-7-6753224 . contacting the author -------------------------------------------------- i (borzom) is the main clax developer and project manager. you can contact me via e-mail: borzom@hotmail.com, or via coders/fx bbs. (see also 'where to get newest version'). . current clax contributors ---------------------------------------------- for current version (0.10) there are no contributors except Adept. Adept/Esteem: Splines, Camera math, and alot of help. Jare/Iguana: 3DS Loader based on Jare's 3DSRDR.C . we need your support! -------------------------------------------------- well, yes, i need your support! i want this library to become 100% compatible with 3dstudio, support other modellers like lightwave/3dsmax, become a game engine, develop full 3d engine that is using clax, the choices are infinite :) so if you think you can contribute to clax, that means become official developer of clax, help to find and/or fix bugs, improve the design, anything, just contact me. also, please contact me about comments, suggestions, insults.. (see also 'contacting the author') ---------------------------------------------------------------------------- (2) feautures ---------------------------------------------------------------------------- . supported platforms ---------------------------------------------------- theoretically, clax will compile cleanly under any ansi-c compiler, 16bit and 32bit, but its highly recommended to use 32bit compiler. note for this version: file load routines will work only on little-endian machines, and i am too lazy to fix it in this version. the hardware modules included in this version supports the following compilers/platforms: | OS | graphics interface | compiler | versions tested | +----------+--------------------+---------------+-----------------+ | unix | X11 | GNU C | 2.7.2 | | linux | svgalib | GNU C | 2.7.2 | | dos | vga | GNU C (djgpp) | 2b | | | | Watcom C | 10.6, 11.0 | | | | Borland C | 3.1 | | dos | vesa | GNU C (djgpp) | 2b | | | | Watcom C | 10.6, 11.0 | | | | Borland C | 3.1 | * versions tested means the compiler version. . features --------------------------------------------------------------- this is a list of major features of clax for this version: highly portable and free :) complete vector/matrix/quaternion libraries collision detection perfect error handling both high-level and low-level interface everything stored as linked lists full hierarchy (cameras can be linked to objects, etc..) clax does all transformation for you (optional) internal file format (save/load) can fit into any 3dengine without major changes this is a list of supported features of 3dstudio 4.0: fileformat support for .3DS binary files version 3.0 and 4.0, and .ASC ascii meshes. world tree supports: objects, cameras, omni lights, spot lights, and materials keyframer supports: position, rotation, scale, color, fov, roll, morph and hide tracks loop/repeat tracks dummy objects correct spline interpolation almost correct quaternion interpolation still missing features of 3dstudio 4.0: spline interpolated morph instance objects saving .3DS binary files . todo list -------------------------------------------------------------- i plan alot to do in next versions, but i need help for this project (see 'we need your support!'). some of the major features i am planning to do: 100% support for 3dstudio 4.0 lightwave/3dsmax support rewrite clax fileformat implement physics rewrite the whole library in C++ write a keyframing tutorial develop a portable, high speed 3d engine better design ---------------------------------------------------------------------------- (3) archive index ---------------------------------------------------------------------------- docs/ * this directory contains all documentation examples/ * clax examples hardware/ * hardware modules for examples libs/ * pre-compiled libraries for GCC, DJGPP, WATCOM and Borland mengine/ * mini-engine - portable minimal 3d engine that uses clax src/ * clax source code tools/ * tools file_id.diz docs/ clax.txt * clax documentation (this file) license.txt * clax license agreement examples/ example0.c * clax example 0: ansi-c, hardware independant example example1.c * clax example 1: basic functions example2.c * clax example 2: keyframer example3.c * clax example 3: keyframer, internal transform example4.c * clax example 4: keyframer, internal structures+transform example5.c * clax example 5: keyframer, internal tracks example6.c * clax example 6: keyframer, shows material usage example7.cc * clax example 7: keyframer, c++ makebc.mak * Borland C makefile makedj.mak * GNU C (djgpp port) makefile makegcc.mak * GNU C makefile makewc.mak * Watcom C makefile hardware/ hw_linux.c * linux svgalib hardware module hw_vesa.c * dos vesa hardware module hw_vga.c * dos vga hardware module hw_x11.c * unix X11 hardware module hardware.h * hardware modules include file libs/ clax_dj.a * GNU C (djgpp port, 2b) pre-compiled library clax_gcc.a * GNU C 2.7.2 pre-compiled library clax_bc.lib * Borland C 3.1 pre-compiled library clax_wc.lib * Watcom C 10.6 pre-compiled library mengine/ scene.c * main mini-engine routines render.c * polygon renderers mengine.h * mini-engine api include file makebc.mak * Borland C makefile makedj.mak * GNU C (djgpp port) makefile makegcc.mak * GNU C makefile makewc.mak * Watcom C makefile misc/ 3dsrdr.c * original 3DS reader source by Jare/Iguana. spline_3.c * original spline source by Adept/Esteem. src/ camera.c * camera functions clax.c * main clax routines file_3ds.c * 3D Studio 4.0 fileformat driver file_clx.c * clax 0.10 fileformat driver matrix.c * matrix math quatern.c * quaternion math spline.c * spline interpolation vector.c * vector math clax.h * clax api include file claxi.h * clax internal include file makebc.mak * Borland C makefile makedj.mak * GNU C (djgpp port) makefile makegcc.mak * GNU C makefile makewc.mak * Watcom C makefile tools/ 3ds2clx.c * 3D Studio 4.0 to clax fileformat converter makebc.mak * Borland C makefile makedj.mak * GNU C (djgpp port) makefile makegcc.mak * GNU C makefile makewc.mak * Watcom C makefile ---------------------------------------------------------------------------- (4) library api notes ---------------------------------------------------------------------------- notes on hardware modules compile / bizare functions ---------------------------------------------------------------------------- (5) .clx file format (version 0.10) ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- (6) greetings ---------------------------------------------------------------------------- well, here goes the greetings in alphabetical order. adept - thanks for all the help, and.. my structures rule! :) atomic - we'll never finish the intro bazooka joe - interpolating angle/axis is not a good idea :) blackstain - oldwarez rule! bsm - i want meshes! civax - waiting for movement'97... crazycat - i rule in duke3d! cybereagle - you lazy fuck, do something :) dark spirit - next time you see me on the street, atleast say hello :) diffuse - you lazy fuck, finish your engine! dna groove - you are bald. hex - your unreleased pictures for chinko rule! hirmu! - muna! jare - well, thanks for releasing 3dsrdr.c kombat - kombat says go byebye mali - your phone company sucks mental trip - i never got that atari800... moonchild - it wasnt me, really! :) nyc - luna 2 will never be released. paso - what about the damn music?! rage - you lazy fuck, finish the polyfillers! rakoon - same as crazycat... riff-raff - whats up with vengence 2? scorpios - uhh.. abuse! silvatar - wah, nothing.. sticky - we are totally insane! trex - same as crazycat turk182 - who are you anyway? ex - thanks for finding the bug