Sorry for my english. I’m work with FMOD and everything is ok, i find 2 problems:

when i play short 3d sound once, hardware or software don’t matter, and i have sound occluders, the short sound dosn’t not occluded, its play, but if i play it in loop, or play long file its ok, its occluded, what can i do fix my problem?

another problem with static 3d pos chanels they don’t occluding too, but if i every frame do something like this
m_pChannel->set3DAttributes( pos+random(0.001) ) its occluded with given geometry ok

[quote="dead":2gtb4vhu]Fade time when sound occluding make another problem, when the scene starts and camera is set, and geometry is set and positions of channels is sets, at the first time i can listen sound witch i realy cant listen, after a 150-200 ms all ok, its volume become 0, my fps is 200-400 i think that its good, but the problem exists, i can of corse start sounds with 0 volume and after some time set it to normal but this is not a solution, this is a hack

What about second problem?
quote:
another problem with static 3d pos chanels they don’t occluding too, but if i every frame do something like this
m_pChannel->set3DAttributes( pos+random(0.001) ) its occluded with given geometry ok[/quote:2gtb4vhu]It sounds like maybe the solution would be a special flag or variation on set3dAttributes that bypasses the interpolation/fading and immediately sets the new occlusion value.

every frame
that what i think about it, when the long time sound channel move behind occluder it sound volume become to 0 not at once, it become 0 in some time > 0, like this
1.0 – 0.8 – 0.5 – 0.0
I think short sounds are not in time will lower up to zero, they come to an end earlier

short time sound for example human steps

temporary for this problem i wrote my own intersection, but i want fmod do this correct, because a long time sound work correct

hm good point, occlusion is only updated in System::update.
The only solutions i can think of at the moment are to start all sounds that you want to start in the frame paused, then unpause them after your system update.

I’ll look into making fmod’s playsound calculate occlusion when the sound is played.

[quote="brett":1wrqpj48]hm good point, occlusion is only updated in System::update.
The only solutions i can think of at the moment are to start all sounds that you want to start in the frame paused, then unpause them after your system update.

I’ll look into making fmod’s playsound calculate occlusion when the sound is played.[/quote:1wrqpj48]Is occlusion too expensive to have updated during the mixing process, like volume ramping, or in a background thread? It would be nice if it had more granularity than updates, since on some systems a game may be running at only 20 or 30 fps and in that case the occlusion updates would be noticable.

if your game is only 20fps, then your sounds will only be changing position at 20fps as well, so it wouldn’t serve any purpose to update faster than the framerate, or are you talking about the smooth fading fmod does when you go from fully occluded to not occluded and vice versa?

[quote="brett":17ggylvl]if your game is only 20fps, then your sounds will only be changing position at 20fps as well, so it wouldn’t serve any purpose to update faster than the framerate, or are you talking about the smooth fading fmod does when you go from fully occluded to not occluded and vice versa?[/quote:17ggylvl]Yes, that’s what I was talking about – so then I take it that is done the same way ramping is done for normal volume changes?

I suppose it makes sense that position changes are only updated at 20fps, but I was thinking that it could be possible to use the velocity values to interpolate a sound’s position (and occlusion) at a rate greater than the game’s framerate for more accurate sound. Then again, it probably sounds fine at 20fps if it has interpolation.

Fade time when sound occluding make another problem, when the scene starts and camera is set, and geometry is set and positions of channels is sets, at the first time i can listen sound witch i realy cant listen, after a 150-200 ms all ok, its volume become 0, my fps is 200-400 i think that its good, but the problem exists, i can of corse start sounds with 0 volume and after some time set it to normal but this is not a solution, this is a hack

What about second problem?
quote:
another problem with static 3d pos chanels they don’t occluding too, but if i every frame do something like this
m_pChannel->set3DAttributes( pos+random(0.001) ) its occluded with given geometry ok