Feedback Author Log in

Hightech Dreams

This applet uses software-rendering to display textured surfaces in realtime. Press the mouse buttons down and drag the cursor to move the view point around.

Realtime graphics using software rendering requires very efficient and direct access to pixel data usually as an array of pixel data. In Java, an array of pixel data is accessible through the BufferedImage class. If you use the Graphics class to do things like stretching individual pixel columns or rows, or even worse fillRect, the work per pixel will be more than 10 times slower and completely unsuitable for realtime 3D graphics.

This applet fixes the direction but it is possible to change the code to rotate viewing direction horizontally or vertically and keep the work per pixel at the same level. Doom and Duke Nukem 3D style viewing directions would be quite smooth but to look up or down and left and right at the same time or to have surfaces that are similarly rotated would require a more complex transformation per pixel. The original Playstation had some wavey artifacts in its texture mapping techniques so there may be some ways to approximate the texturemapping appearance and stay very smooth.

The source is available in the jar file for you to learn from. Since jar files are basically zip files with the jar file extension, you can open the file as a zip to look at the source code.

Add New Comment


Comments