Bang. Clatter. Tinkle. Jingle. When solid objects collide in the real world we hear a sharp impact sound, sometimes followed by a ringing aftershock. Creating sounds like that to accompany computer animation has long been a challenge. In a movie, you can plug in pre-recorded sound -- although it doesn't always fit perfectly. In virtual reality for games or training the sound must be created on the fly, based on what's happening in the animation.
Cornell computer scientists have devised a new method, based on an overlooked bit of physics, to make these sounds more realistic. The results were reported at the 39th International Conference and Exhibition of Computer Graphics and Interactive Techniques (SIGGRAPH), Aug. 2-9 in Los Angeles, by Doug James, associate professor of computer science, and graduate students Jeff Chadwick and Changxi Zheng.
The usual approach is to use the laws of physics to calculate how objects will vibrate when they collide with the velocity and (imaginary) mass portrayed in the animation, and how those vibrations would produce sound waves in air around the object. James, a specialist in computer-generated sound, has been using that approach, but he hasn't been happy with it. It just didn't sound right. "We realized that just simulating the vibrations of objects to get the sound was flawed," he said. With large objects like a bowl or a garbage can, the ringing sound tends to be the dominant contribution, he explained. With small, rigid objects like ball bearings or rolling dice, the ringing sound can be too high-pitched for human hearing, and the algorithm would generate no sound at all.
What's missing, James explained, is acceleration noise. When rigid objects collide, as Newton's third law of motion tells us, there's an equal and opposite reaction: The objects are briefly accelerated back the way they came, pushing back at the air behind them and creating a pressure wave we perceive as sound. With large objects the ringing noise from vibrations can overshadow acceleration noise, he noted, but adding acceleration noise still increases realism.
Physicists have already worked out equations to calculate how much the acceleration pulse would be. The sound it creates depends on the shape of the object. A flat coin falling on the floor makes a different sound from a ball bearing. With a large, hollow object like a mug or a bowl, there is some unique acceleration noise from the inside as well as the outer surface. To make real-time computation possible, the Cornell researchers give the shape to the computer in advance so it can pre-compute how sound will propagate from that object, and then simply plug in the information about the acceleration pulse to synthesize the sound at runtime.
Using the familiar physics of how sound travels through air, a "virtual microphone" can be placed anywhere -- usually the point from which the action is seen. Place two microphones and you get stereo sound.
The work was supported by the National Science Foundation, fellowships from the Alfred P. Sloan Foundation and the John Simon Guggenheim Memorial Foundation, a Natural Sciences and Engineering Research Council of Canada Postgraduate Scholarship, and donations from Pixar and Autodesk.