PsychoZA3D*Ix=Pan VirtualityEngine InterActive & panoramique eXtenzions version 0.77 "Avallaque" @2k1 by Performer/NahKolor 1.Introduction: a)Description: -PsychoZA3D*Ix{Avallaque} is a graphical engine which supports(that means read, convert and show) data from the NewTek LightWave3D application. It uses OpenGL 1.1 for showing 3D graphics and MS Windows 9x API for window management. LightWave Content feature, which is available on the Microsoft Windows platform, is supported for the scenes, objects and textures(repeatedly used elements are not loaded again). Content directory is passed regardless of the LightWave. {Avallaque} do as well optimization of uploading the scene data in the 3D graphics subsystem before the beginning of it's showing(preparing the scene), and also raises priority of the process and suppress execution of screensaver and turning off the display(on the Microsoft Windows platform). Available are also settings in the configuration file. Complete taking place of the scene is done in one pass. b)Comments: -it is not allowed to use the separators(for instace spaces, tabulators) in names; -IF SOMETHING IS NOT DESCRIBED HERE, THAT MEANS, THAT IS NOT SUPPORTED; -if data do not conforms to this restrictions {Avallaque} may report error or it's behaviour may be undefined; -responsibility for most restrictions is beared for LightWave3D, OpenGL or MS Windows, rather than {Avallaque} as itself; 2.Documentation of the abilities(limitations) and remarks for users: a)NewTek LightWave's objects: -LightWave version 6.5(and perhaps later as well), loaded is UV map or surface name(if UV map is not exist) and 3D geometry, object name must have extension ".lwo", after loading follows conversion to object in ".po1" format, which is written to the same directory; -simple polygons conforms to OpenGL limitations(that means planar, convex and without holes); -one-sided polygons consisted of 3 to 1023 points; -only one layer in the object; -texturing only using UVMap; -every textured object has only one UV map(may has surface, surfaces are not loaded anyway) and only one texture in the image; -textures are located in separeted subdirectory of the Content, which is given using the same method as it is; -texture name is given in the object as the name of UV map(without extension and path to directory); -if texture has alpha channel then it is showing by using of OpenGL alpha-blending feature(so if it has to be always rendering correctly the user must to arrange things right); -spherical environment mapping is done if UV map is not exist, image name is given in the object as the name of surface(only one existed); -object used as the collision solid must be a convex polyhedron consisted of polygons oriented outside(*); b)Images in TrueVision Targa format: -common format(from 1984) or extended(from 1989), it does not make any difference, because extended data are not loaded anyway; -name must have extension ".tga"; -not compressed(compression using method RLE is not supported); -24 bit color with optional 8 bit alpha channel; -line order from up to down is valid; -because of efficiency and compatibility dimensions of the square textures should be the powers of number 2; -only "please wait-loading" vignette should have dimensions like 2x1(=); c)NewTek LightWave's scenes: -LightWave version since 4.0(and probably earlier also) to 5.6(be careful of export to 5.6 in 6.0 build 429 - it counts parents from 0, not from 1, like should be in 5.6, it is a bug in export option, because even 6.0 build 429 itself cannot correctly load exported(by itself!) scene consisted parents, but morphing targets are exported correctly from 1, in 6.5 export to 5.6 works ok); -name must have extension ".lws"; -any speed of animation playback(for example 50 fps); -start and end of scene animationp(from the render, not view settings); -fully curved controlled animation(TCB(TensionContinuityBias) control, linearity and End Behaviour); -full motion of any object(translation, rotation and scaling); -object hierarchy(child-parent relationships); -null objects as parents; -camera motion(position and rotation), including hierarchy, but without support for target object; -display propotions like screen or showing window((=)in panoramic version 16x9, but only in fullscreen mode); -animated zoom factor(approximated with best accuracy near 1.0); -background color; -near clipping plane distance is computed from grid size; -linear fog, fog color, animated start and end of the fog(end of the fog is also the far clipping plane); -background image; -foreground image, animated dissolve; -in panoramic version(=) background(down in the image) and foreground(up in the image) 2x1 are in the same image(in scene the same name should be written down in both places); -from 0 to 8 color diffuse light sources; -point lights with animated intensity(from 0% to 100%) and motion; -spot lights with animated intensity(from 0% to 100%), motion and cone angle(from 0 to 90 degrees); -animated object dissolve(remarks like about texture alpha channel); -animated object morphing, it is not transitive and it does not morph textures, but morphs UV map, uses texture from target object, if any object is environment mapped then both of them will be so, it is best to set constant 100% dissolve in target object, it is not connecting to PsychoMation, but cooperate with it by the common rules; -unlimited number of color flares, it's size is computed from NominalDistance parameter just like in LW, animated position, intensity(as brightness, if equal zero the flare will be black) and dissolve, if the light source has to be flare only then it should to be set light intensity to constant 0%(obviously), flare texture(at best in grey scale with transparency) is specified as light source name(without extension and path to directory, of course), supported is fading behind objects and in the fog; -animated(intensity from 0% to 100%) color ambient light; -animated motion blur, it doesn't work exactly like in LW(you may set in from 0% to 100%, but it is not suggested to set it more than 80%), it may look substantially different on machines at various speeds, it's behaviour is not fully correct in open air scenes, it badly cooperates with background or foreground images; -amount of shaking(as like in 33/NahKolor) is animated by FocalDistance parameter; -it is not suggested to set not described parameters because the scene may be loaded wrong, it does not apply to motion channels locking, but there are many strange settings in various places; -collision scenes consist of objects which are collision solids and may be animated using usual methods(*); -gamer must be in at least one object from the collision with surroundings scene all of the game time(*); -gamer must not be in any solid from the collision with objects scene(*); 3.Source portability: a)Implementations: -x86 Win32(works), main development platform, available newest versions of all extensions; -x86 *Unix(works), only DemoSzene Edition; -PPC AmigaOS(works), only DemoSzene Edition; -PPC *Unix(feasible); -PPC MacOS*(feasible); -MIPS R* *Unix(feasible); -SGI *Unix(feasible); -Sun *SPARC *Unix(feasible); -AXP Win32(feasible); -AXP Win64(feasible); -AXP *Unix(feasible); -Itanium Win64(feasible); -Itanium *Unix(feasible); b)Theoretical comments: -PsychoZA3D*Ix is not dependent of any hardware nor environment of operating system; -theoretically is likely possible to migrate PsychoZA3D*Ix to any platform; c)Base platform requirements: -existence of OpenGL version 1.1(or newer) implementation(at best specially accelerated by hardware); -C++ compiler(with it's standard library); -API for window or screen management(may it be GLUT or native API like Win32 or XWindow); -hardware or operating system feature for precise and efficient time measurement; -interface for input devices like mouse or keyboard(*); -ability to play the sound; (*) - extension from the interactive version(commercial); (=) - extension from the panoramic version; 15:30:17 2001-06-01 Performer/NahKolor ( spark@msys.pl , janmro@195.164.71.1 ) [END]