<h1 class="main_title">

Calum J. Macdonald

</h1>

<div class="navigation">
</div>
<div class="main_body">

<div class="project_title">

Dissertation

2011

C++

</div>
<img class="project_image">


</img>

<div class="project_summary">

The purpose of this project was to explore the performance of having rain sound effects generated entirely through the software and not having to rely on pre-recorded sounds. The reason to look into this area is that unless there is a large amount of sound effects available there is a possibility that there could be a lot of repetition within the sound effects that would detract from the realism that is attempting to be conveyed in the environment. One possible way to avoid this could be to have the program create the sound effects procedurally, taking in a series of variables to create a unique sound perfectly for the scenario presented.

The way in which this project was tackled was by creating three separate applications all of which were compared against each other to determine the efficiency produced. All three of the applications contained the same 3D environment (pictured above) but varied in terms of audio. One was silent, one used pre-recorded sound effects and one used procedural sound effects. The environment was created by using OpenGL, the audio API used to play back the pre-recorded sounds was DirectSound. For creating the procedural sounds an audio engine called Phya was used. To generate audio, the Phya system requires updates from a virtual environment dealing with the impacting objects. The dynamic information that is received is what is used to generate the samples of audio. The application developed did not include actual rainfall from which to receive impact data from so instead the application would randomly produce impacts that would produce the required data, the frequency of these collisions (or the heaviness of the rainfall) was user controlled through 9 levels.

To compare each of the applications they were each ran on the same computer and had the frames-per-second evaluated, having the minimum, maximum and average calculated. The computer used for the testing had an Intel Core 2 Quad Q8300 CPU running at 2.50GHz, 8GB of DDR2 RAM, an AMD Radeon 6870 HD graphics card (1GB VRAM) and ran Windows 7 Professional Edition. The program used to calculate the results was FRAPS.

Application Min. FPS Max. FPS Avg. FPS
Silent 1200 2543 2483.6
Pre-Rec 1033 1890 1859.6
Procedural 912 928 918.867

From the results comparing the three separate applications it is clear to see that there is a noticeable change in the performance levels by the use of both sound effect methods. It was predictable that the procedural method would be less efficient than using pre-recorded sound effects due to there being more computing required since the sound has to be created as well as played back. The average frame-rate for this application was 623.7 lower than that of the silent application, this works out to be running at 74.887% the rate of that one. The efficiency of this is fairly high and gives a good indication of as high as can be expected for constant audio generation. The average frame-rate for this application was 1564.733 lower than that of the silent application, this works out to be running at 36.997% the rate of that one. This is down 37.89% from the pre-recorded method.

The question that was to be answered was 'Is current hardware sufficient enough to efficiently generate the sound of rainfall through procedural methods?' Based on the results and analysis of them it is clear that the sound of rainfall can not be created efficiently through the use of a procedural method. The computational cost that is required to generate the sound of rainfall constantly procedurally is a lot higher than playing back pre-recorded sounds. As a result of this it is very unlikely that a developer would be interested in using this method. The emphasis on graphics within the games industry is far too high to have the graphical quality of a game diminished to allow there to be a more realistic method of audio implemented. The main point taken from this is that the traditional method of sound effect generation is a lot more efficient than the procedural method that has been used in this project and that is why it has remained the traditional method for sound generation in games. A game that required more realistic audio within it opposed to realistic graphics is the only situation that currently is realistically plausible to contain an audio system like the one used here.


</div>

</div>
<div class="footer">


</div>