Announcing Simple3D

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view

Announcing Simple3D

Announcing Simple3D (
Simple3D simplifies Java 3D in a few ways:

1) It automatically builds the top-level scene graph for a program, adds a background, a set of lights, an optional floor grid and x-, y-, z- axes. The camera allows both mouse-based and key-based navigation.

2) The scene is automatically displayed in a JFrame. A menu bar includes a item for taking screenshots, information about the camera controls, and resetting the camera position.

3) Simple3D contains an ever-growing collection of static methods for common tasks:
* scene graph node creation;
* applying colors and textures;
* loading, examining, and saving OBJ models;
* translating, rotating, and scaling;
* common forms of animation;
* using vertex and fragment shaders.

Please download it, and try out the examples.

I've only just started this project, so I'd love to get feedback.
Reply | Threaded
Open this post in threaded view

Re: Announcing Simple3D

Good job. Do you plan to convert the PDF files into HTML pages? You can use PDF2HTML or do it manually.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view

Re: Announcing Simple3D

In reply to this post by Andrew2563
That's fantastic work!
I love the idea of it, now you've done it is seems obvious in retrospect, Java3D is a wonderful tool for teaching the working of all game engines, but still one level too deep.

When you mentioned your book I looked up and can see  it on my bookshelf, I really loved reading that all those years a ago, it fired my interest in Java3D and game engine mechanics.

I tried running the examples and obviously was far too keen, so I flipped the compile.bat to compile *.java, but the useTetra fails out of the box for me:

Compiling with JOGL and Java3D... error: incompatible types: BranchGroup cannot be converted to Shape3D
    Shape3D tet1 = Simple3D.tetra(1, 1.5, 2, "blue");
                                 ^ error: cannot find symbol
    Shape3D tet2 = Simple3D.texTetra(1, 4, 1, "images/marble.jpg");
  symbol:   method texTetra(int,int,int,String)
  location: class Simple3D
2 errors


I'm just Win10, openJdk 1.7

Well done on this.

At some point in your tutorials you may get to be explaining the fixed function versus programmable pipeline differences (once you've thrashed through texture mapping and line drawing, etc). When I learned shader programming I found that there is absolutely nothing (not anything) on the internet for learning the conceptual mapping between fixed and programmable, the only advice is  "start from scratch and start coding in GLSL..."

Java3D 1.7 supports a programmable only pipeline and will actually build shaders for you (by way of the SimpleShaderAppearance), so you can see how a NodeAttribute changes a vertex shader and then passes data onto a fragment shader. That may be useful when explaining how scene graphs drive shaders.

Java3D 1.8 will have multipass rendering as well, it supports a shadow map now.
Reply | Threaded
Open this post in threaded view

Re: Announcing Simple3D

Sorry about that. Fixed now.

I really must check back here every day. (I thought I'd checked the alert box.)

The example uses shaders.

- Andrew