[Edu-sig] re: 3d in Python

Mike C. Fletcher mcfletch@rogers.com
Tue, 29 Apr 2003 00:10:28 -0400


Dethe Elza wrote:

> Arthur wrote:
>
...

>> Most of the other tools you refer to, I am familiar with.
>> It was actually through PyOpenGL that I became aware of and involved 
>> with using Python.
>> My interest was in learning to work with the OpenGL API without 
>> wading through all kinds
>> of windowing APIs to get there.  The insanity one needs to go through 
>> to get a Windows
>> window prepared for an OpenGL dot, is almost funny.  Anti-intuitive 
>> is an understatment.
>
>
> Yes.  Somewhat easier if you use GLUT (a cross-platform windowing 
> toolkit for OpenGL), but still pretty hairy.  I mentioned 
> OpenGLContext because it is supposed to be a friendlier environment.  
> It features windowing using wxWindows, GLUT, Tkinter, etc., for one 
> thing, and I believe it is object-oriented, for another.  But I 
> haven't really explored it much. 


It is (some might say pathologically) object-oriented (it includes, for 
instance, a property-based modeling of VRML97 scenegraphs, which were in 
turn model on Open Inventor).  It does try to be a somewhat friendlier 
environment *for OpenGL*, though it needs considerably more 
documentation to actually fulfill that goal.  It is, IMO, certainly 
easier than raw OpenGL for many common tasks that a student wants to 
learn to do with OpenGL.  It's not, however, trying to create "3-D 
graphics for everyone".

It's raison d'etre (sorry to the Francophones, don't feel like finding 
accents at the moment) is to provide OpenGL sample code, and to make it 
possible to write fairly readily understood "lesson modules" for 
teaching OpenGL.  The system takes care of the "normal" OpenGL 
bookkeeping, letting you (hopefully) focus on teaching the actual 
technique in which you are interested.

For simple techniques (the kind of things you are likely to see in an 
introduction to computer graphics programming course, I would imagine, 
textures, transparency, NURBs, those kinds of things), it works quite 
nicely IMO.  When you get into more complex techniques (for example 
infinite perspective matrices + shadow volumes or the like), it likely 
becomes a wash for educational purposes.  You can point at the package 
or module that implements the difference from the "normal" rendering 
procedure, but that presupposes that the user understands that rendering 
procedure (there is documentation, but it is written informally, and is 
likely to lose a student in its current form).

Enjoy,
Mike

_______________________________________
  Mike C. Fletcher
  Designer, VR Plumber, Coder
  http://members.rogers.com/mcfletch/