Cocoa 3D Tutorial

07 Mar 2010

After a long, long time, a new release (0.4 alpha): courtesy of Jean-Pierre, the tutorials now compile on recent OS X systems (Intel Macs, 10.6). No new features, though...
08 Jul 2003

A new release (0.3 alpha): 2 new types of textures, 1 new geometry, and an interactive view class to manipulate objects.
17 Jun 2003

The Cocoa 3D Tutorial web page sees the (public) light for the first time, hosted on SourceForge!
16 Jun 2003

The release 0.2 pre-alpha is available for download: in spite of the release definition, it is quite usable, especially for simple demos. Use, modify and enjoy... Logo   OpenGL logo

What is Cocoa 3D Tutorial?

Cocoa is the OO environment native on Mac OS X: its roots go back to NeXTstep, the revolutionary environment for the "black boxes", but, while the original system had its 3DKit to give a 3-dimensional base for applications, Cocoa has just a limited support for the underlying OpenGL engine, leaving the developer to deal with all the power but also all the intricacies of OpenGL...

Thus, Cocoa 3D Tutorial has been developed to build a very simple bridge for the developers that are new to 3D programming, giving an easier to handle base to start experimenting and building 3D apps themselves. All the fundamental features are illustrated in tutorials, that allow the developer to quickly focus in few lines to the specific feature.

Some capabilities of the library:

  • A scene tree, with cameras (one for each view) that can be easily positioned and oriented, and lights.
  • Object picking, that allows an interactive manipulation of the scene.
  • Factory classes for common objects (cube, sphere, cylinder, ...), groups and transformations.
  • Basic OpenGL optimizations (e.g. display lists)
  • Full support for OpenGL colors and materials.
  • Static textures (read from a graphic file or generated from a styled text), animated textures (read from movies), procedural fixed and animated textures (using configurable Perlin 2 & 3D noise).
  • Full support for ARB_vertex_program extension, seen as a special type of texture.
  • An animator class, that allows to easily add dynamic components to a scene.

Future directions (in no particular order):

  • An import for common 3D formats (3ds, md2, md3, ...) to get complex meshes in the scene.
  • A "walking camera" class, to build walkthroughs of scenes.
  • ARB_fragment_program extension (as soon as it's implemented in OS X, that is...)
  • <Developers & users input here>...

Links & acknowledgments

  • NeHe's site and ports and other samples by Bryan Blackburn: their work has been the base of this library, a big thank you!
  • IDX3D, a full-featured Java library, a good demo that Java can be fast...
  • Open Source Web Design, a site that has helped a graphically impaired programmer (myself) to find a basic template for this page...
  • The Official OpenGL site, for being an endless resource for the poor programmer...
  • Apple Computer, for giving us the wonderful Cocoa environment (or should I say NeXT?)
Last Update: $Id: index.html,v 1.3 2003/07/08 11:04:56 pmanna Exp $