Login  Register

Re: Announcing Simple3D

Posted by philjord on Nov 13, 2021; 9:41pm
URL: https://forum.jogamp.org/Announcing-Simple3D-tp4041486p4041488.html

Andrew,
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:

E:\Java3D\workspace-1.7\Simple3D>compile useTetra.java
Compiling useTetra.java with JOGL and Java3D...
useTetra.java:24: error: incompatible types: BranchGroup cannot be converted to Shape3D
    Shape3D tet1 = Simple3D.tetra(1, 1.5, 2, "blue");
                                 ^
useTetra.java:27: 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

E:\Java3D\workspace-1.7\Simple3D>


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.