The JavaGL 3D Graphics Library & JavaNL Network Library

Student: 陳炳宇 Advisor: 歐陽明

國立台灣大學資訊工程研究所

Abstract

This thesis presents a three-dimensional (3D) graphics library, JavaGL, and a multiparticipant network library, JavaNL, both of them are written in pure Java programming language. Therefore people can use the applications developed with these two libraries on Internet through a Java enabled browser or on a Java enabled machine. Besides JavaGL and JavaNL, this thesis also presents a new multiparticipant 3D graphics application interface on Internet. By using the JavaGL and JavaNL, people can develop multiparticipant 3D graphics applications in pure Java programming language and can be run on any kinds of Java enabled platforms.

With the growing popularity of Internet, 3D graphics and virtual reality (VR), more and more applications, for example, multiparticipant interactive 3D graphics games, require 3D graphics and network capabilities over network. Because Internet itself is a heterogeneous network environment, we need to have 3D graphics and network capabilities on each different platform. Furthermore, observing the development of Internet, we believe that “pay-per-use” software will be realized in the near future. Under this new paradigm, an application may need to be distributed from a server site to a client sites with different platforms.

To make JavaGL to be easy to learn and use, we define the application programming interface (API) in a manner quite similar to that of the OpenGL specification, since OpenGL is a de-facto industry standard for the programmers of developing 3D graphics applications. To make JavaNL survive under the heavy network traffic of Internet, we follow the concepts of Distributed Interactive Simulation (DIS), since DIS is a standard for the interactive simulation on Internet.

To develop such two libraries, there are some problems needed to be solved. 3D graphics rendering is a time consuming work and so is Java, using Java programming language to develop such a general purpose software based 3D graphics library, the performance is a great issue. Furthermore, how to make a 3D graphics application to be a 3D graphics multiparticipant application in a short time is an important consideration for the multiparticipant network library. In the development, we have made most efforts to solve these problems.