Index of /user/ms100/JAVA/Quick3dApplet_1_5
Quick3dApplet
=============
ABOUT
Quick3dApplet is a java library for rendering 3d textured models from
within an applet.
Please read the file COPYING for license details.
PRE-REQUISITES
You will need to have access to a java compiler.
If you are running linux, this may be supplied with your
distribution (look for "jdk" in your package manager).
The sun java development kit can be downloaded from
http://java.sun.com/
INSTALLATION
1. First you need to download "TinyPTC java version" from...
https://sourceforge.net/projects/tinyptc/
I know that "TinyPTC-Java-0.2.zip" works, but later versions should
be compatible too.
2. unzip the archive, and copy the file tinyptc.java into this directory
3. Just type the following from the toplevel directory...
make
OR
./cmds.sh
This will compile the Quick3dApplet source code into class files.
The example applets can be viewed by the commands..
appletviewer example1.html
appletviewer example2.html
appletviewer example3.html
appletviewer example4.html
appletviewer example5.html
appletviewer example6.html
...or if you wish, you can use a java enabled browser rather than
appletviewer. An index.html is provided for your convenience...
mozilla index.html
ACKNOWLEDGEMENTS
Package cube3d.zip
From http://trenki.50free.org/java/
By Trenkwalder
Email Markus trenki2@gmx.net
UsedIn Quick3dApplet/Mouse.java
Quick3dApplet works on a scanline basis, and is therefore quite
different to cube3d.zip which renders whole triangles.
Quick3dApplet uses the Mouse movement capture and the same image
drawing class as cube3d (see the acknowledgement below)
Package TinyPTC-Java-0.2.zip
From http://www.gaffer.org/tinyptc
Email ptc@gaffer.org
UsedIn Quick3dApplet/tinyptc.java
used for drawing to the screen
Package Slibo
From http://slibo.sourceforge.net/
By Gunther Piez
Email gpiez@users.sourceforge.net
UsedIn example5/ChessPiece.java
Chess pieces and board based on data copied from slibo
Package xjrt-b05
From http://sourceforge.net/projects/xjrt/
By David Hook
Email Contact via sourceforge
UsedIn 3ds/ThreeDStudioReader.java
This file handles reading the .3ds file format, many thanks to the
original author for writing/ releasing this.
I have made some changes to the original code, it now includes
a private class called "Chunk" that puts the chunk reading code
into one place, and makes handling sub-chunks easier. And
obviously, it has also been changed to output results into the
Quick3dApplet display applet.
The original source file can be loaded from sourceforge, and is in
the following directory...
/home/phil/tmp/xjrt-b05/xjrt-b05/src/org/autochthonous/graphics/tools
At the authors request this source file is released under its
original licence, see the file README_FIRST.
FAQ
Q: How do I write a 3d app using this?
A: The API (application interface) is not documentated
yet. Therefore it is best if you look at the provided example
applications Cube.java, and Tor.java for hints.
Q: Why not use java 3d?
A: This code was designed to be compatible with the maximum number
of browsers/ versions of java "out-of-the-box". Therefore it was
decided not to use java 3d which is not part of the standard java
distro and is not packaged with any browsers (at the time of writing
anyhow).
Q: I get the following error from appletviewer
*** Can't find image cube2.jpg
*** You may need to copy cube2.jpg into the base directory
java.lang.ArrayIndexOutOfBoundsException: 1
at Quick3dApplet.Render.draw(Render.java:387)
at Cube.main(Cube.java:86)
at Quick3dApplet.tinyptc.run(tinyptc.java:88)
at java.lang.Thread.run(Thread.java:534)
A: You are probably using appletviewer bundled with java version
"1.4.2_04" (java -version)
There seems to be a bug in this version, it can't load .jpg files
from a jar file. Just copy the image files to the current
directory by typing...
cp */*.jpg .
.. or use another browser to view (netscape or mozilla)
CONTACT
The homepage is at http://quicknet-software.co.uk
Click on the "freeware" tab for the latest download.
TODO
Get rid of taylor's expansion from PhongTri
Make clipping work for PhongTri
Make collision detection work for non-convex shapes
Transparency
Bump maps
Chrome effects
A scene map.. to allow roaming in a virtual world that
contains many objects. This will supply the renderer with the
subset of non-occluded Objects in the current line-of-sight.
May even develop this to render far-off objects less frequently
using a lower detailed model.
API documentation
Syncronised Sound