Contents |
|
Goopy Games
I hope it is now clear that these meta-goop techniques can be used to create interesting organic objects suitable for real-time display. However, there are several aspects that actually make them ideal for use in games. For one, they are procedurally created. Complex structures can be generated from simple data structures consisting of the location and attributes of each particle in the system. There is no need to store a complete mesh.
In addition, the meta-object can be tessellated to different levels depending on the initial grid size of the voxel space. This gives the game a dynamic level-of-detail component that is needed in these days of varying hardware performance.
You can attempt generation of the objects in real time through efficient optimization of the surface approximation routine. You could also simply decide to create the objects at load time and display them as traditional polygonal objects during the actual game, or evaluate the mesh only when the state of the goop elements changes. This kind of flexibility makes for easy integration into a variety of applications.
I didn't even discuss how the surfaces could be rendered. One obvious choice would be to apply environment-mapping techniques to create the chrome creature from Terminator 2. Likewise, you could apply bump-mapping techniques to bring a water creature to life. I think an interesting application would be to combine meta-surface techniques to a particle system like the one I described last summer ("Spray in Your Face," Game Developer, July 1998).
For more fun, get my demo application off the Game Developer web site (http://www.gdmag.com/). This will allow you to play with the creation of meta-goop and start spreading some slop around your games.
The
Marching Cubes Patent Question
As many of you who have met me
and heard me rant on the topic know, I believe algorithmic software
patents are totally wrong. I feel they completely halt continued
development down interesting research pathways by shrouding a topic with
legal pitfalls. Graphics researchers create progress by building on the
work done by others before them. I like to imagine the state of the
industry if Bresenham had patented his method for drawing a line on a
graphic display and then charged a licensing fee for every line
drawn.
The topic of volume rendering is an interesting case in point. As an obvious next step in the visualization of volume data, it was reported by researchers in several publications. However, General Electric apparently owns a patent on the technique via the Lorenson and Cline implementation (U.S. patent #4,710,876). As an actual apparatus to display medical imaging data, I can understand it. However, the patenting of a "method for displaying three-dimensional surface images" seems pretty broad to me.
I have been told by someone via e-mail that GE aggressively enforces this patent. However, it is not clear to me how this would apply to the rendering of an isosurface in a game. Does this mean that any modeling program using these techniques must pay a license to GE? If I create a game using a derivative of marching cubes and it is a big hit, am I going to receive a stealth patent letter in the mail demanding a percentage? How derivative does it need to be? The prior art on this topic seems limitless, but what can I use as a reference and still be safe?
With the record number of software patents being filed, this is going to become an increasingly difficult issue for game developers in the future. I am actively researching the issue and hope to report on the results in a later column. Anyone with information on the topic, please let me know. In the meantime, always document your research from public journals as best you can. Ignorance is not bliss in this situation.
For
Further Info:
Greene, Ned. "Voxel Space Automata: Modeling with
Stochastic Growth Processes in Voxel Space (Proceedings of Siggraph 89)."
Computer Graphics, Vol. 23, No. 4 (Aug. 1989): pp.
175-184.
Lorensen, William, and Harvey Cline. "Marching Cubes: A High Resolution 3D Surface Construction Algorithm (Proceedings of Siggraph 87)." Computer Graphics Vol. 21, No. 4 (Aug. 1987): pp. 163-169.
Watt, Alan, and Mark Watt. Advanced Animation and Rendering Techniques. Reading, Mass: Addison-Wesley, 1993.
Wyvill, Geoff, Craig McPheeters, and Brian Wyvill. "Data Structure for Soft Objects." The Visual Computer Vol. 2, No. 4 (Aug. 1986): pp. 227-234.
Web Resources
http://www.students.cs.ruu.nl/people/jedik/Methods/Surface_
fitting/Marching_cubes.htm
http://www.swin.edu.au/astronomy/pbourke/modelling
When
not splashing gloop around his kitchen floor, Jeff can be found creating
real-time graphics applications at Darwin 3D. Fling some bits of your own
his way at jeffl@darwin3d.com.
Discuss this article in Gamasutra's discussion
forums
Discuss this article in Jeff Lander's discussion
forums
________________________________________________________