SourceForge Logo

Indirect3D

3D class framework powered by

Concepts Downloads Screenshots project's home

Overview

  • Indirect3D is something like 3D ActiveX - it is a set of specifications that allows to merge objects written on different programming languages in one dynamic interactive scene.
    Indirect3D objects are abstract - they can draw something, do specific task or just store information. Objects are attached one on another and form something like tree.
  • Indirect3D is an open source project, it's distributed under Lesser GPL.
  • Main features of Indirect3D:
    • reusability of 3D classes
    • ability of storing and reading (streaming) scenes and their parts
    • ability of runtime WYSIWYG editing
    • making same scenes running on different graphic APIs(OpenGL, Direct3D)
    • event/trigger model for interobject and application-object interaction that allow many things to be done w/o programming
    • flexibility and extensiblity
    • In future it will have a mechanizm for scene synchronizing that will allow multi-user or dynamic scenes.
  • Indirect3D has following usage:
    1. 3D Graphic User Interface in applications
    2. Plugins for 3D applications - for example, music player in a corner of 3D shooter or more serious things
    3. 3D scenes in Internet, like this demo page
    4. (in future) 3D Internet virtual-reality worlds with many users
    5. Inserting 3D graphics in different programs using ActiveX
    Indirect3D is flexible enough to do almost any 3D visualization task, including creating first-person shooters(however it's not opimized for games).
  • Indirect3D is interface-based. It is similar to OLE/ActiveX in many cases, but is easier, oriented on 3D, and suitable for displaying huge and complicated object hierarchies with a lot of classes. Indirect3D components can be stored in DLLs or linked statically to executable.
  • Specifications are separated from actual implementation that allow co-working of different versions(versions that are compatible with specifications are compatible). Currently there is only one implementation called fastfruit. It introduces many helper stuff for easy creating new components and some additional specifications. Delphi and VisualC versions of fastfruit differ in many points, however they are quite compatible, and scenes built for VisualC version(even such complex as whole ff_lotr demo, exported in one .i3d scene file) can be loaded in ind3ds scene editor, written on Delphi. Delphi and MSVC components can coexist in one scene.

Currently Indirect3D is in 'early alpha' stage. It's not yet suitable for usage, however certain results are already achieved.
Now we have implemented:

  • Delphi-OpenGL class system with such basic components as button, texture, label, mesh, multi-texture, spheremapper, mover
  • Delphi-OpenGL editor(that seems to work)
  • OpenGL/Direct3D fastfruit implementation for MSVC
  • Delphi-OpenGL ActiveX component that works both in Internet(MSIE) and IDE's like Delphi, C++Builder, MSVC, VB, VisualJava

If you have some spare time which you want to spend on programming, you may join us. Email to udodenko@hotmail.com. We'll be glad to receive any questions, comments, suggestions, opinions. Any comments about Ind3d concepts will be valuable.

More detailed Indirect3D concepts

Indirect Group's main page