Hello comunity. I think now is the right time to implement the 3DKit for Haiku. Many say that this is wrong while we don’t have HW acceleration. But why now ? Simple:
- we must consider that now we can improve all steps in the 3DKit. Without HW we can improve the structure, speed, efficiency etc.
- we need a little life in Haiku : 3D Objects, animation, small games with animation, gesture Maybe Windows previews or Workspaces preview (see Elementary OS)
- and so on
Take a look o at: idx3d. It is phenomenal. Lite and fast with a good FPS on Haiku:
"https://web.archive.org/web/20070101114911/http://www.idx3d.ch/idx3d/idx3d.html
"https://web.archive.org/web/20070101114911/http:/www.idx3d.ch/idx3d/idx3d.html
[idx3d::Features]
Feature list
• Pure Java, will run on any Java 1.1 compatible platform
• Realtime software rendering, not based on Sun’s Java3D
• Per-pixel lighting (!), 32bit
• 32bit Z-Buffering
• Optional anti-aliasing
• Colored light sources with specular highlights
• Material based rendering: Transparency, Reflectivity, Texture, Envmapping
• Unlimited texture size (2^n)
• Texture Factory for generating various kinds of textures
• 3d Object factory for primitives (cube,box,sphere,cone,cylinder)
• 3d Object factory for 3d terrains, lathe objects, torus knots, …
• Plugins: LensFlare
• 3ds (3d Studio Max mesh) import / export
• ID-Buffering, lets you identify objects on rendered images
• Material editor application lets you easily create and preview materials
• Inspector available, lets you take an in-depth look at your instances.
• Source code available (!)
You can test it: just download it, install OpenJDK, open the Terminal and type:
appletviewer demo1.html
or
appletviewer demo5.html
or
appletviewer demo11.html
Depending on Demo try to click on 1,2,3,4,5,6,7 a- anitalising, UP,Down, Left, Right, - or + , PageDown or PageUp
Or you can try the CubeTwister (improved idx3d version from Werner Randelshofer).
https://www.randelshofer.ch/cubetwister/
It is very cool : with animation and run good on Haiku. Just install OpenJDK download cubetwister-2.0.155.zip and type in Terminal:
Java –jar CubeTwister.jar
Or download cubetwisterapplets-2.0.155.zip and type in Terminal:
Java-jar BarrelPlayer.jar (or Cube7Player.jar or DiamondPlayer.jar or RubikPlayer.jar etc.)
The first port (old) to BeOS C++ you can find here "http://testou.free.fr/www.beatjapan.org/mirror/www.be.com/beware/Graphics/Idx3d-port.html
The steps: we need to merge following projects:
-
Beos 3DKit Alpha : https://files.fm/u/meww777d
Description: https://files.fm/u/meww777d
Examples: 3DKit Alpha : "https://files.fm/u/meww777d -
haiku3D and glTeapot from Haiku
-
idx3d "https://web.archive.org/web/20070101114911/http://www.idx3d.ch/idx3d/idx3d.html
-
Cactus3D the attempt to port idx3d to C++ "http://cactus3d.sourceforge.net/
-
CubeTwister (improved idx3d version from Werner Randelshofer) "https://www.randelshofer.ch/cubetwister/
-
A good inspiration is NinevehGL Features: "http://blog.db-in.com/ninevehgl-features/
-
Maybe RayTime - a real-time ray-tracer (haiku) or something else (for example PBRT Physically Based Rendering)
3DKit most be highly modular and expandable, abstract and as Drawing Engine : OpenGL (Vulkan) and for old computers LibArt or AGG