“Teaching Introductory Computer Graphics Using Java 3D, Games and Customized Software: a Brazilian Experience” by Tori, Bernardes Jr. and Nakamura

  • ©Romero Tori, João Luiz Bernardes Jr., and Ricardo Nakamura

  • ©Romero Tori, João Luiz Bernardes Jr., and Ricardo Nakamura



    Teaching Introductory Computer Graphics Using Java 3D, Games and Customized Software: a Brazilian Experience



    This paper presents the authors’ experience and results on organizing and teaching introductory Computer Graphics (CG) courses in Brazilian universities. The CG course described here uses a top-down approach, such as the one popularized by Angel [1997], where students manipulate 3D structures from the beginning in laboratory classes. Besides its top-down approach, this course adopts Java as its predominant programming language, Java 3D as the graphics API and the development of a 3D game as the course’s main project. The laboratory classes are supported by software tools, two of them having been developed by the authors as customized and open-source applications: “Interlab3D” [Interlab 2005b], an interactive tool to learn and practice Java 3D and scene graph concepts, and “enJine” [Nakamura et. al. 2003b], a didactic game engine built over the Java 3D API.

    The introductory CG Course described here requires a term project. Some years ago it was noticed that the number of projects dealing with game development issues were increasing with each course edition. Eventually, it was decided to fix the development of a simple 3D game as the project’s theme. More recently a mandatory engine was also introduced, the specially developed Java 3D “enJine”, so it became easier to support students, to control project level of difficulty, and to open the engine “black box” to the students. Using a game engine the students are able to build more complex and compelling games without needing to take their focus away from CG.

    This CG Course is not targeted at game development curricula (it is taught as an introductory CG Course to both computer science and computer engineering students). However, given market tendencies in the last decade, especially the growing availability of real-time 3D graphics hardware using local illumination models, as well as the marked interest students have shown in 3D games and their development, not only the content of laboratory classes, but also the theory presented has evolved to focus more heavily on real-time graphics, instead of realistic rendering. Electronic game technology and algorithms, particularly, have been having a growing influence on the course’s conception, culminating in the term project. This approach has shown good results, demonstrated by positive feedback from the students, student performance and involvement, generally good course evaluations and excellent term projects developed in a relatively short time. The authors, therefore, believe that the approach presented here is an attractive alternative for teaching introductory CG in engineering and computer science courses as well as for the game development programs that are only recently being implemented in Brazil.

    This paper is organized as follows: the first section consists of this introduction, while the second discusses related work. The third section describes the CG course in more detail, discussing both the adopted methodology and the course’s structure. Next, the term project, consisting in the development of a 3D electronic game, is discussed. A description of the software tools used in the course, especially the customized ones, follows. The last two sections present final thoughts and conclusions.


    The authors would like to thank Escola Politécnica da Universidade de São Paulo and Centro Universitário Senac for their support, Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq), for supporting undergraduate researchers via its PIBIC Program, Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP), for hosting the projects “Interlab 3D” and “enJine” in its “Incubadora Virtual de Conteúdos”. The authors would also like to thank all their former students and the researchers from Interactive Technology Laboratory (Interlab) that directly or indirectly participated in the development of “Interlab 3D” and “enJine” software tools.


ACM Digital Library Publication: