The basic idea behind jPCT is to provide a small, fast and easy to use API for rendering 3D graphics in applets and applications. jPCT is targeted, but not limited to games development.
jPCT supports software rendering using its own software renderer and OpenGL using the LWJGL.
jPCT offers you all the features you need to write a cool looking 3D game or application in Java in a short time.
There is no need for a seperate GUI package or an extra library for collision detection to replace Swing/AWT.
Here are some key features of "jPCT":
· loads 3DS, MD2, ASC and XML files
· support for octrees and portal rendering
· keyframe animations (taken from a MD2-file or self defined)
· vertex lighting with an unlimited number of light sources
· ambient, diffuse and specular lighting
· build-in primitives like cones, cubes, spheres...
· spherical environment mapping
· collision detection (ray-polygon, sphere-polygon and ellipsoid-polygon)
· rotation interpolation and alignment for better camera control
· generates vertex and face normals automatically
· geometry based picking
· transparency effects
Features of the hardware renderer (Java 1.4 or higher required):
· single pass multi texturing using up to 4 texture stages (if hardware supports it)
· multi pass texturing using an unlimited number of texture layers
· advanced fog and transparency settings
· uses triangle strips and vertex arrays
· support for Swing/AWT integration (benefits from multi core/cpu setups)
· support for fullscreen, native OpenGL window
· supports RGB-scaling
· uses the LWJGL
Features of the software renderer (Java 1.1 or higher required):
· fast perspective correct texture-mapping with scanline subdivision
· 32 bit W-Buffering
· 2x and 1.5x oversampling and 0.5x undersampling
· texel filtering (faked bilinear filtering)
· environmental mapped bump mapping
· sub-pixel, sub-texel and sub-color accuracy
· span-based hidden surface removal algorithm
· supports RGB-scaling and overbright lighting
· Java 1.1 or later
What's New in This Release: [ read full changelog ]
· Added support for "compiling" Object3Ds for higher performance when rendering high polygon object. Fixed scaling of child objects (again...). Object3D.getWorldTransformation() now takes bill boarding into account. Added a method to OcTree to disable the usage of the octree for rendering. Changed default collision usage of octree from false to true. The 3ds- and obj-loaders now load transparency information. Setting a render target using frame buffer objects now uses the depth buffer correctly for the image rendered into the target. Config.saveMemory is now true by default. The world's ambient light now defaults to 100,100,100 instead of -100,-100,-100. The purpose of negative light values is long gone with the legacy renderer being outdated. Fixed Object3D.getTransparency() for opaque objects. Added isTransparent() to Object3D. Added the IRenderHook-Interface that can be used to execute own code in the pipeline of a compiled Object3D. Added two helper methods to the ShadowHelper that...