We recently had a chance to speak to Interactive Data Visualization, Inc. (IDV) Director of Business Development Kevin Meredith. IDV is responsible for creating SpeedTree, a suite for generating virtual foliage and vegetation that has been used in big-name games and movies alike (seriously, Avatar and Iron Man 3 are no small achievements). Of course, SpeedTree will play an important part, especially when it comes to the next generation of game development. Just what can we expect?
Speaking to Meredith, we got his take on the software itself along with its potential for next gen consoles, Cloud computing and much more.
Ravi Sinha: For our readers who are not aware of SpeedTree, can you please enlighten them about this technology?
Kevin Meredith: SpeedTree for Games, winner of a Front Line Award for middleware, delivers amazingly natural real-time trees and plants with seamless LOD transitions, an array of lighting, and wind effects, as well as an SDK that can be programmed to support any level of engine integration.
SpeedTree includes SpeedTree Modeler, which offers a unique hybrid of hand and procedural modeling options and has been used in countless games and a growing list of movies, including Avatar. SpeedTree was created by Interactive Data Visualization, Inc. (IDV), founded in 1999 to develop graphic and visualization tools for a wide variety of industries. For more information, visit www.speedtree.com.
Ravi Sinha: SpeedTree has created many benefits for developers in the generation of 3D foliage. Could you briefly explain to us how the process for SpeedTree works for video games?
Kevin Meredith: SpeedTree for Games delivers a suite of tools and art assets designed to cover all aspects of tree modeling and rendering, with options for integrating at any point in the game development pipeline. Software components include:
Tree Model Library
Features almost 200 species that can be loaded into SpeedTree Modeler for manipulation and export. Each species model can be used to generate limitless variations.
Covers all aspects of modeling, including procedural and hand drawing methods, wind, LOD, lighting, physics, and world building for large scale tree placement. Creates assets for real-time conversion in SpeedTree Compiler and rendering by SpeedTree SDK, but the user may also bypass rendering code and export meshes (supported formats include FBX, OBJ) for use directly in many modeling packages. Also exports a group of meshes at a user-defined range of LOD settings.
Converts artist-friendly models into real-time tree models, creates texture atlases, and generates 360° normal-mapped billboards.
This set of C++ classes addresses all tasks associated with high performance tree rendering, with an emphasis on easy integration. The SDK runs on numerous platforms including the current and next gen consoles.
Rashid Sayed: Next Gen consoles have a ton of RAM and memory in them. How does this present a better solution for creating realistic foliage?
Kevin Meredith: Any improvement in console hardware can result in better real-time rendering, but every SpeedTree customer makes their own decision about how to best utilize SpeedTree in their unique game. In general, though, the kinds of vegetation effects enabled by improved hardware include more photo-real, higher-poly trees, more convincing LOD transitions, better wind and lighting and, occasionally, dynamic destruction and other physics effects.
Ravi Sinha: What does IDV do to make SpeedTree up to date with current graphical demands in the industry? What are some of the features added which differentiate the foliage we see between sequels for the same franchise, for instance.
Kevin Meredith: Our favorite example is the first Witcher game, by CD Projekt, which came out in 2007 and made outstanding use of SpeedTree version 4, with lots of dark and foreboding forests of procedural trees. But for Witcher 2, CD Projekt got to use SpeedTree v5, a major rewrite of the software that enabled hand-drawing of trees and individual branch placement and editing. As you’ll see if you play Witcher 2, they made great use of the new features, for example with branches carefully placed so that the monsters could actually climb down them convincingly to attack the hero.
Ravi Sinha: What kind of potential does SpeedTree hold along with cloud computing on next gen consoles and PC?
Kevin Meredith: Out of the box, SpeedTree doesn’t have anything that will directly take advantage of cloud computing. This isn’t to say that SpeedTree clients can’t marry the two in their integration. Streaming procedural forest population for very large worlds comes to mind.
Rashid Sayed: One interesting feature about the SpeedTree SDK that caught my eye was that it also allows for Wind Simulation. It easily is one of the toughest simulations to create, since we essentially can’t see air. What kind of challenges and hurdles do you guys face in order to accurately recreate something you can’t see?
Kevin Meredith: The toughest part of simulating wind in game environments is getting good behavior with a very small amount of CPU/GPU time. It’s always a balancing act between quality and performance. We provide low and high fidelity options and are constantly updating the algorithms to take advantage of new hardware and platforms.
Ravi Sinha: How does SpeedTree help create realistic foliage without draining on system resources?
Kevin Meredith: Because we’ve tried to make SpeedTree versatile enough to be used in any pipeline configuration and platform hardware, we like to believe that our customers have complete control over how much demand SpeedTree places on their systems. Having said that, we have over the last decade learned countless proprietary tricks for modeling and rendering complex, detailed vegetation extremely efficiently.
Rashid Sayed: SpeedTree has partnered with Epic Games in-order to integrate it into Unreal Engine 4. What kind of modifications did you guys had to make in order to achieve an optimal performance on it? And are the results startling?
Kevin Meredith: Unreal Engine 4 is an excellent engine, and we’re proud to be part of it. While we can reveal that we’re very happy with SpeedTree’s UE4 integration, we unfortunately can’t break confidentiality on integration details.
Rashid Sayed: Is the integration of SpeedTree any different in video games compared to movies? Can you please explain the difference in integration between the two entertainments formats?
Kevin Meredith: Games and Movies share many of the same production tools, so there is a good deal of overlap. That being said, game integrations revolve around being fast. It has to load fast, render fast, detect collisions fast, simulate wind fast, etc. These are the primary reasons why our games package has the Compiler and SDK options and our movie packages do not. Game level models reflect this as well by generally having much lower triangle counts and smooth LOD transitions.
Visual effects and animation integrations are all about pipeline flexibility. Vegetation models often get passed from tool to tool to handle things like texture painting, detail sculpting, and render setup. Then they are rendered by a wide variety of applications, each with their own particular methods for handling materials and animation. Movie level models typically contain millions of triangles reflecting the fact that model fidelity is more important than rendering efficiency in these situations.
Rashid Sayed: What else can we look forward to in the world of SpeedTree? Do you see a saturation point for this technology anytime soon?
Kevin Meredith: We continue to evolve SpeedTree on the basis of what our customers are asking for, what the latest hardware will support, and what we discover on our own as better ways to model and render vegetation. In terms of saturation, there are still a lot of people out there who have never heard of SpeedTree, or don’t know how it works, so we continue to have our work cut out for us. But articles like this help, thank you!
For more on SpeedTree, check out their official site here.