Graphics Group Page

This page contains resources and links for the CVE graphics group. Our mission is to avoid the "3 deadly sins" of realtime 3D:
- from a usenet posting by MUFTI

Textures and Tiling

We need small textures that tile well. One way to do this is by hand using a tool such as the Gimp. Here is a tutorial.
Another way to do it is to find public domain textures of good quality that are acceptable substitutes for our local textures.
A third way to do it is to develop automatic tools for taking digital images and producing quality tilable textures.

Speeding Up Dynamic Textures

Virtual whiteboards and computer monitors beg for dynamic textures. While these can be rendered via an off-screen window and installed as a texture in Unicon, to make them fast we need primitives that work on OpenGL textures in their native memory format. So far we have implemented proof-of-concept capabilities in Unicon's DrawPixel() and DrawLine() functions. For this to achieve ultimate coolness, the whole 2D graphics API should work directly on textures and treat them like any other graphics canvas.

It may be useful to study 2D memory-based graphics libraries that work on (or could be adapted to) OpenGL-native RGBA memory arrays. Some candidates include:

3D File Formats

We have studied 3D file formats and evaluated them for our purposes. There are really two potential uses of 3D file formats, modeling the "world" and modeling objects within the world.

Static "World" Data

So far we have rejected all candidates and used our own human-readable format.

For static information, candidates included

  • VRML (format example) (1.0, 2.0, or VRML97). Sample VRML world.
  • X3D, an XML-based successor for VRML. A fatal flaw for X3D at the moment seems to be that the tools are all commercial, and windows-centric.
  • U3D, an Intel-sponsored vaporware format, may contest with X3D for future dominance of this market.

    While these originated as "Web 3D formats", they are capable of modeling our static data. I have been to NPS and met Don Brutzman, he was very cordial. Unfortunately, I don't like X3D very well, it seems too low-level. Perhaps we need a higher-level 3D format. Don suggested mapping our higher level format onto X3D.

    The VRML 97 grammar is not exactly context free. There is supposed to be a public domain parser available, but if so it is not easy to find.

    3D Objects

    Our severe allergy to expensive commercial tools might lead us to want to use Blender or another open-source modeling tool. We have not found a tool I've been especially pleased with yet. I do have a file format I particularly like, the Simple3D format advocated by Ian Parberry.

    "Level Editors"

    We are interested in a drawing tool that will reduce the difficulty of constructing our virtual environments. The kinds of features that would make it useful include: Here are some tools that are out there, please add to this list. Which ones of these best meet our requirements? Are there tools particularly well-suited for creating 3D virtual spaces, instead of generic 3D modeling?

    toolopen source? objects/vertices textures actually works?
    INT3Dno ?? ?? ??
    mjbWorld?? ?? ?? ??
    moonlight creatorGPL ?? ?? ??
    art of illusionGPL ?? ?? ??
    blenderGPL ?? ?? ??
    ppmodeler?? ?? ?? ??
    cosmoworlds?? ?? ?? said to be good for VRML
    spazz3d?? ?? ?? said to be good for VRML
    vizx3d?? ?? ?? X3D
    outline3d?? ?? ?? X3D
    white duneGPL ?? ?? said to be good for VRML
    wings3dBSD ?? ?? ??
    milkshapeNO ($25) ?? ?? ??
    inkscapeyes ?? ?? ??

    Wynn Winkler is studying the issue of level editors and contributed substantial notes during Meetings 3 and 6.

    The Ruminator

    Unless Wynn actually finds an editor we can use with our graphics engine, we will end up writing our own. The department is very rectangular, almost all the elements look alike and repeat over and over, and the 2D coordinates are a lion's share of the job. For the third dimension, a good first pass would be to specify a generic wall section, complete with height and textures/materials, and apply it to every room and cooridoor in the building:

    Dr. J then went on to write a little Unicon program that would allow a person to collect the 2D data by drawing rubberband boxes around the CS department floor plan:

    This tool has evolved a bit since then, see Dr. J's demo page.

    "Avatar Editors"

    I can easily imagine us using one or more tools in this category. This could range from something as cartoonish as a child's face builder tool, from which we still must extract polygons, to a tool for digitizing from an actual scanned photograph of a person, to something more sophisticated and 3D such as the ez Avatar Builder (which doesn't seem to work very well and seems to have a misleading name). A ton of potentially useful links can be found at Digital Space's page of links.

  • H|Anim is an international standard for humanoid animation.
  • Here is a tutorial on 3D modeling of heads.

    Whiteboard

    Immersive Whiteboard

    "Language" Feature Extensions Needed

    Fonts

    3D scenes have lots of text but OpenGL has no fonts built-in. We might need to extend Unicon 3D with one of the following techniques. Then again, the "textured fonts" technique might be usable now without any additions to the Unicon 3D built-ins. We will need to check.

    Transparency

    A couple of folks have asked me about transparency. OpenGL supports it, and most 3D accelerators have hardware support for it by now. Unicon will require a minor addition to support transparency in RGBA materials' color specifications.

    Got 3D Hardware that Doesn't Do OpenGL?

    Alt Software might have an opengl/mesa driver for your Direct3D/DirectX graphics card that doesn't do OpenGL.

    Debugging OpenGL?

    There is rumored to be a debugging library for opengl named bugle, bugle.sf.net