Review Index:
Feedback

Ray Tracing in Games: A Story from The Other Side

Author: Jacco Bikker
Manufacturer: General
Tagged:

The Future for IGAD

Impact on programming

In contrast to the designers, for the programmers using a ray tracer seemed to make life easier. The most striking difference between a ray tracer and a rasterizer is that there are so few special cases. The same engine renders a 1M scene, including exteriors, for Outbound, and low-poly indoor scenery for Let there be Light. There is no code to limit visibility. All supported features work together effortlessly. And, programmers found themselves using rays for everything: testing particle and flare visibility, collision detection, object picking, and so on. The quirks that the programmers did run into generally had little to do with ray tracing, but rather with the state that the engine is currently in. This state is rapidly improving, now that it is getting some real-life experience.

One noteworthy side-effect of using a CPU ray tracer is the low-level control you get over the internal data. Both teams appreciated the fact that everything can be accessed at runtime. This makes it easy to add things like animated textures.

Wussie: “When you’re only working on game play code, things will prove to be very similar (to rasterization). But when you start touching the actual core of the renderer, things get very different very fast, as it’s a completely different way of handling visualization.”

Wilco: “We also used the single ray queries to handle the click event. This was fairly straight forward in comparison to other engines we have worked with. Also the performance impact wasn’t high so there was no real limitation on using it.”

Matthijs: “On the API side of things, it doesn’t really matter if you are developing for RT or rasterizer, if anything, developing for RT is easier because you only have to push polygons and textures, the RT process takes care of shadows, reflections and refractions, which on GPU based tech requires multiple passes/render targets in order to make it work.”

Experimental

Working with experimental technology obviously has advantages, especially when the renderer is developed in-house. During the development of Outbound, several modifications where made to the ray tracer to enhance graphics in specific situations, and for Let there be Light, a special ‘multibeam’ was added. This is basically a spotlight with many beams, at the cost of a single spotlight. This feature was used to make the complex lighting in the game possible. An experimental engine also has it’s disadvantages though… The wish list is long:



Let there be Light: The Multibeam in action - Click to Enlarge

Wilco (programmer, Outbound): “It is hard to preview content with a ray tracer. An editor that shows the same lighting model or a close approximation would help a lot.”

Wussie: “As far as development is concerned, a solid ray tracing platform (like DirectX or OpenGL, but ray traced) would make development significantly easier, abstracting away some concerns we’ve had over the last year or so. Something ‘universal’ would also sprout communities, allowing for more sources and people to get help and feedback from. That’s something we missed during this project.”

Trevor: “The disadvantage of this particular ray tracing engine is that it is not animation compatible. It may hit 10k - 20k animated triangles, but it only supports the .quake2 format so far. Also, a tool for viewing normal maps that can reload textures without restarting would have been useful.”

Maikel: “Integrate the pipeline a bit more, since we now have to figure out ways to get stuff together in the engine. Due to personal preference, we are working on two different modeling platforms, and integrate the lot using a third tool.”

Matthijs: “At some point, we had to reduce detail in some areas in order to allow the game to run on systems with 1GB of RAM. I personally expected ray tracing to be only CPU bound, not RAM bound.”

The Future

The final question I asked the teams is: How do you see the future of ray tracing in games?

Jan: “Not all games will be suited for a ray tracing engine, at least not within the next ten years. Mainly because of lack of computing power. But some types of game play would really benefit from the ray tracing technique even if only used in combination with rasterization.”

Matthijs: “Ray tracing is certainly interesting, and might become the standard in the future. But at this time, and in the near future, rasterization has the edge. It will be interesting to see what the future brings, and I will certainly be keeping an eye out for raytracing if I ever get into the game industry!”

Trevor: “Because of our small time span to develop a game we didn't get out of it what I would've liked to get out of it, but ray tracing certainly has a lot of potential.”

Maikel: “Perhaps we should just develop a hard core ray tracer that, for the time being, will only run on extreme hardware specs, but will be so sophisticated that its graphics will blow people away by the time that regular systems have caught up with it.”

Rick: “Ray tracing has a lot of potential, but the hardware can't keep up yet. It might be realistic to start using it for games in 4 to 6 years from now.”

Karim: “Although I was already somewhat confident in the future of ray-tracing, some hands-on experience really ensured the future of real time ray tracers in my eyes. Having not only seen, but also worked with the capabilities of a ray tracer, as well as having seen the disadvantages now, most of my uncertainties have been wiped off of the chart by even this somewhat short project.”

The current performance of consumer PC’s is approaching a level where ray tracing is a viable option for rendering, although not yet at the visual quality level that we have come to expect. Whether or not ray tracing will play a significant role in future games remains to be seen. It is clear however that ray tracing will change the way games are designed.

The two games discussed in this article are experimental games developed by students of the ‘International Architecture and Design’ program of the the NHTV University of Applied Sciences, Breda, The Netherlands. Outbound is available for download now. A beta of Let there be Light (still under development) is also available for download; the final game will be completed and be made available for free early July, 2008.

About the author: Jacco Bikker is lecturer for the IGAD program of the NHTV University of Breda, The Netherlands, and has over ten years of game industry experience. He has written several technical articles on the topic of real-time ray tracing and is the author of the Arauna real-time ray tracer, used for these two student projects.

All screenshots were rendered using the real-time ray tracer.

 



Screenshot from Let There Be Light- Click to Enlarge



Screenshot from Let There Be Light- Click to Enlarge




Screenshot from Outbound - Click to Enlarge



Screenshot from Outbound - Click to Enlarge



Screenshot from Outbound - Click to Enlarge

No comments posted yet.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote><p><br>
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.