Essentially, then, ray tracing tries to find the right information in a database as quickly as possible. This isn’t a problem for rasterization, says Miller. Usually, the rendering process is straightforward, and data is cached and ready to go when the processor needs to use it. With ray tracing, however, the brightness of any given point on a surface could have been created from multiple bounces of a light ray, and data about each bounce of light tends to be stored in a separate location in the database. “This is a nightmare scenario for the caching strategy built into microprocessors, since each read to memory is in an entirely different location,” says Miller.
He explains that his team is exploring various approaches to making these database queries more efficient. Previous research has produced algorithms that bundle certain types of data together to simplify the querying process. For instance, bundles of data can include information that represents rays of light that start from roughly the same location, or rays that head in nearly the same direction. Adobe is not releasing the details of its approach, although Miller says that his team is trying to find the most efficient combination of database-management approaches. Once the researchers develop software that can effectively manage the memory of multicore computers, then ray-tracing algorithms can be rendered at full speed, he says.
“Adobe makes software that improves a user’s ability to create and communicate visually,” says Hart of the University of Illinois. “Software like Photoshop provides methods for processing photographs, but by adding ray tracking, users will have the ability to create photorealistic images of things they didn’t actually photograph.” One of the biggest obstacles at this point, he says, is making the system work fast enough so that a user can run a ray-tracing program interactively.
The current ray-tracing approach alone won’t solve all the problems that computer-graphics researchers are tackling, Hart adds. It’s still impossible to perfectly simulate the human face. “This is an elusive goal,” he says, “because as we get more realistic … subtle errors become more noticeable and, in fact, more creepy. Once we get faces right, we will need high-quality methods like ray tracing to render them, and we’ll want it in real time.”
The system is still just a research project, and the company doesn’t provide a timeline for when it might make it to consumers, but technology on all fronts, including advances in multicore architecture, is advancing rapidly. Miller suspects that consumers will start to see real-time ray tracing in products within the next five years.