OpenCS sound diameter

Feedback on past, current, and future development.
Post Reply
User avatar
Tes96
Posts: 232
Joined: 29 Feb 2012, 03:45
Location: Off-grid

OpenCS sound diameter

Post by Tes96 »

It would be very helpful to see the diameter for the sound activators. I'm adding the cave sounds to my cave claim for Province:Cyrodiil and it's such a pain in the ass to figure out where the sounds overlap and where there are no sounds at all. You can view light radius in the CS but not sound radius. Could this be something that could be implemented in OpenCS?

And another note on sound, it would be a huge improvement if sound didn't suddenly stop and start as you approach its radial area. I can take a one or two steps forward and hear the cave wind sound and then a step or two backwards and it suddenly stops. What would be better is if sound started but very softly and then increased as you got closer to the activator source. That way, sound just doesn't suddenly appear but gradually increases as you move.

Also, sound bleeding through walls and rooms and from 1st floor buildings to the 2nd or 3rd floors, including actors' voices.
Thanks.
Chris
Posts: 1626
Joined: 04 Sep 2011, 08:33

Re: OpenCS sound diameter

Post by Chris »

Tes96 wrote:And another note on sound, it would be a huge improvement if sound didn't suddenly stop and start as you approach its radial area. I can take a one or two steps forward and hear the cave wind sound and then a step or two backwards and it suddenly stops. What would be better is if sound started but very softly and then increased as you got closer to the activator source. That way, sound just doesn't suddenly appear but gradually increases as you move.
This is controlled by the minimum and maximum sound radius. The minimum sound radius is where the sound plays unattenuated (at normal volume), and the maximum radius is where it should reach silence. The farther apart these two values are, the smoother the transition will be.

We do have a bit of an issue, though. We currently use a linear distance model, which mean the gain linearly ramps between 1 and 0 for the min and max radius. This is not what vanilla does (at least when using hardware), and it's not a physically correct model. We should be using the logarithmic inverse-distance model. However, we do it because NPC voices are too quiet otherwise, and that's because the actor voices are emanating from the wrong place (the object root/feet, instead of the Head), while the listener is correctly placed at the actor head.
Also, sound bleeding through walls and rooms and from 1st floor buildings to the 2nd or 3rd floors, including actors' voices.
Sound dampening from obstructions is something I'd really like to add. It'd require using the physics engine to detect when the location of a given sound source does not have LOS to the listener, and applying an appropriate low-pass filter on the source's direct path (ideally using the surface material to determine the type and total strength of filtering, but Morrowind content does not define any such material properties so we'd have to use some generic defaults).
User avatar
Tes96
Posts: 232
Joined: 29 Feb 2012, 03:45
Location: Off-grid

Re: OpenCS sound diameter

Post by Tes96 »

Chris wrote:
Tes96 wrote:And another note on sound, it would be a huge improvement if sound didn't suddenly stop and start as you approach its radial area. I can take a one or two steps forward and hear the cave wind sound and then a step or two backwards and it suddenly stops. What would be better is if sound started but very softly and then increased as you got closer to the activator source. That way, sound just doesn't suddenly appear but gradually increases as you move.
We do have a bit of an issue, though. We currently use a linear distance model, which means the gain linearly ramps between 1 and 0 for the min and max radius. This is not what vanilla does (at least when using hardware), and it's not a physically correct model. We should be using the logarithmic inverse-distance model. However, we do it because NPC voices are too quiet otherwise, and that's because the actor voices are emanating from the wrong place (the object root/feet, instead of the Head), while the listener is correctly placed at the actor head.
Are there plans of switching to using a logarithmic inverse-distance model despite the current issue?
Is there a way to move the sound source from the feet to the head? (Why the hell would Bethesda have voicing coming from the feet instead of the head?)


Chris wrote:...but Morrowind content does not define any such material properties so we'd have to use some generic defaults).
Is that what you guys are aiming to have accomplished by version 1.0.0?
Chris
Posts: 1626
Joined: 04 Sep 2011, 08:33

Re: OpenCS sound diameter

Post by Chris »

Tes96 wrote:Are there plans of switching to using a logarithmic inverse-distance model despite the current issue?
Is there a way to move the sound source from the feet to the head? (Why the hell would Bethesda have voicing coming from the feet instead of the head?)
Bethesda didn't (at least, I don't think they did). But we do. The problem is our sound manager doesn't have an efficient way to lookup the position and orientation of a specific bone on a given actor from outside the rendering manager, without going through a bunch of virtual function calls per actor... so we just play the sound at the object's location, which is its root position.
Chris wrote:...but Morrowind content does not define any such material properties so we'd have to use some generic defaults).
Is that what you guys are aiming to have accomplished by version 1.0.0?[/quote]
No. I'm not, anyway. At most maybe we'll get underwater reverb by 1.0, but even that isn't for sure. Sound obstruction and occlusion isn't something I'd expect before a bunch of performance optimizations are done first, at the very least.
User avatar
Tes96
Posts: 232
Joined: 29 Feb 2012, 03:45
Location: Off-grid

Re: OpenCS sound diameter

Post by Tes96 »

Chris wrote:
Tes96 wrote:Are there plans of switching to using a logarithmic inverse-distance model despite the current issue?
Is there a way to move the sound source from the feet to the head? (Why the hell would Bethesda have voicing coming from the feet instead of the head?)
Bethesda didn't (at least, I don't think they did). But we do. The problem is our sound manager doesn't have an efficient way to lookup the position and orientation of a specific bone on a given actor from outside the rendering manager, without going through a bunch of virtual function calls per actor... so we just play the sound at the object's location, which is its root position.
Okay. I hope in the future after version 1.0.0 you guys will be able to get the sound manager to locate any position on any bone. I guess the main thing right now is getting 1.0.0 to play Morrowind completely stable without any bugs, and all the fun bells and whistles will come later.
Post Reply