Motto:

"Clean programming is like art."


Java‎ > ‎

jFinal3D Engine®

Today I began write java version of my Final3D engine based on LWJGL. 
Engine will be similar to FreePascalCopmpiler version published in section Free Pascal. 
Just now i don't know how deep will be implemented FPC version to LWJGL, but start look's very good.
Because I have many worked  with miniB3D and Leadwerks engine, i want create jFinal3D as Entity Scene Oriented. 
I't best way to create freedom for developers, which are haven't skills with low-level 3D API.

Features:

  • High performance realtime 3D rendering using OpenGL
  • Platform independent. Runs on Windows, Linux, OSX, Solaris, and others.
  • Powerful, customizeable, and easy to use 2D GUI System with Buttons, Lists, Edit boxes, ... [FenGUI]
  • The engine is open source and totally free.


F3D static class container:
  • F3D_Display
  • F3D_Viewport
  • F3D_Log
  • F3D_AppWrapper
  • F3D_Axis3f
  • F3D_Entity
  • F3D_Camera
  • F3D_CameraManager
  • F3D_Texture [integrated with Slick library ]
  • F3D_TetxureManager
  • F3D_Helpers ( DrawRectangle, DrawLine3D, DrawAxis ) - unfinished yet
  • F3D_VBO
  • F3D_Cube (rendered with VBO)
  • F3D_PARSER (parse file with syntax similar to quake3 entity file)
  • F3D_AbstractFiles
  • F3D_Font (bitmap font loader)
  • F3D_Font_TTF
  • F3D_FontManager
  • F3D_Frustum
  • F3D_Material
  • F3D_MaterialEvent
  • F3D_MaterialEventManager
  • F3D_MaterialTexturerUnit
  • F3D_SurfaceManager
  • F3D_Timer
  • F3D_Mesh
  • F3D_Light
  • F3D_LightManager
  • F3D_Preloader (Preloading events/textures/materials when preloading is enabled in F3D.Config)
  • FengGUI inncluded
  • F3D_HUD_Gadget
  • F3D_HUD_GadgetProperties
  • F3D_HUD_GadgetTransform
  • F3D_HUD_Image
  • F3D_Pivot
  • F3D_Billboard
  • F3D_BillboardManager
  • F3D_MeshManager
  • F3D_Model
  • F3D_ModelManager
  • F3D_Physics
  • F3D_Body
  • F3D_PhysicsObject
  • F3D_GLDebugDrawer
  • F3D_Pick
  • F3D_Skybox
  • F3D_FrameBufferObject
  • F3D_GLSL_Shader
  • F3D_Shader
  • F3D_ShaderManager
  • F3D_UniformData

Included demos:
  • Demo_Application
  • Demo_CreateCamera
  • Demo_AbstractFileSystem
  • Demo_FirstTexturedPolygon
  • Demo_RenderVBOCube
  • Demo_FontLoad
  • Demo_LoadMesh
  • Demo_CameraControl
  • Demo_FengGUI
  • Demo_Performance
  • Demo_HUD_Image
  • Demo_ParentMesh
  • Demo_Billboards
  • Demo_ShapePhysics
  • Demo_TerrainShapePhysics
  • Demo_SimpleVehicle
  • Demo_PickBody
  • Demo_MultipleWorld
  • Demo_RenderMultiSurfModel
  • Demo_FrameBufferObject

Tools:
  • FontStudio
  • Converter OBJ to F3DA asci format
  • Converter OBJ to Java class



Changes:

  • jF3D ver. 0.1.1
    • new class TF3D_Pivot was added
    • to TF3D_Entity was added field parent and child_list field with AddChild, RemoveChild methods
    • all extended scene objects from TF3D_Entity now with name in constructor
    • when Vertex Buffer Object isn't supported on GPU, then rendering is changed to Vertex Array rendering method
    • all demos are now fixed to new features

  • jF3D ver. 0.1.2
    • added axis aligned billboard/sprites rendering system
    • fixed bug when Vertex Array was enabled
    • Entity position/rotation/scale are now private
    • Added Getter/Setter for Entity position, rotation and scale
    • New Entity method added - UpdateAxisDirection
    • Fixed buffer speed issue and uncontrollable memory fill every frameloop when update VBO was called
    • Font and HUD image class was rewrited for increase FPS
    • Fixed mouse freelook control in a few demos

  • jF3D ver. 0.1.3 [AGFX_jF3D_GraphicsEngine]
    • writed new TF3D_Timer2, extended from LWJGL Timer
    • TF3D_Mesh is now only as geomery data container
    • added TF3D_MeshManager for list control of meshes
    • new TF3D_Model is now group of entity propertie with pointer to Mesh data
    • Sprites/Billboards, Models, Lights rendering is now controled from core-engien mainloop (later will be moved to TF3D_World.Render()) and update to TF3D_World.Update()

  • jF3D ver. 0.2.2 [AGFX_jF3D_GraphicsEngine]
    • BIG major changes
    • removed all Entity management classes
    • now every object extended from TF3D_Entity is stored in F3D.World.entitier list (SPRITE,CAMERA,MODEL,PIVOT)
    • when new entity is created, then is automaticaly added to the entities list
    • this feature is configurable via F3D.Config.use_autoassign= <true/false>
    • in manul mode you need call F3D.World.Add(entity)
    • rewrited demos

  • jF3D ver. 0.2.4 [AGFX_jF3D_GraphicsEngine]
    • all LWJGL math was changed to javax.mathlib
    • TF3D_Physic class added - create jBullet physics world
    • added early version of TF3D_Body which contain MODEL and jBullet RigidBody
    • was created Demo_BasicPhysic with tre faling cubes

  • jF3D ver. 0.2.6 [AGFX_jF3D_GraphicsEngine]
    • TF3D_GLDebugDrawer added for visual Bullet physics debug
    • added all Bullet predefined collision shapes
    • demo Demo_ShapePhysics included
  • jF3D ver. 0.2.7 [AGFX_jF3D_GraphicsEngine]
    • early version of Skydome 
    • shape collision is now with TriMesh support

  • All next jF3D version are available now on code.google.com 


ToDo:
  • Fog
  • Keycontrol binding with callback function 
  • Java Open Particle System [JOPS]
  • optional GLSL rendering
  • add F2D extension for 2D game development

Comments

Ondrej Kollar - Oct 2, 2010 2:14 PM

Any comments are welcom.

Peter Kramarik - Oct 2, 2010 3:50 PM

I tried to run under macosx and everything works fine.