View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003042 | The Dark Mod | Sound System | public | 02.03.2012 13:31 | 11.06.2023 10:07 |
Reporter | New Horizon | Assigned To | grayman | ||
Priority | normal | Severity | normal | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | All | ||||
Product Version | SVN | ||||
Target Version | TDM 2.00 | Fixed in Version | TDM 2.00 | ||
Summary | 0003042: Open visportals do not propagate sound loss to player. | ||||
Description | As discussed in this thread... http://forums.thedarkmod.com/topic/12479-using-sound-loss-on-visportals/page__hl__portal__fromsearch__1 The method discussed in the thread only works for sound propagated to AI. Until the arrival of the source code, we had no way to add similar functionality for what the player hears. Ideally, we would want there to be a sound loss to the player whether the portal was open or closed, perhaps even with some rough automatic approximation for what the loss should be so that the mapper doesn't have to set it on each portal manually. | ||||
Steps To Reproduce | Springheel was attempting to solve the following issue. "I have a room with a hole in the floor, and a guard patrolling underneath in the basement. The hole has a visportal in it, but it still sounds like the basement guard is right in the same room with you when he walks around. I was hoping to increase the sound loss when it goes through the portal so the basement guard couldn't be heard so clearly. " | ||||
Additional Information | Orbweaver: "It sounds like the main problem is that merely tracing distance through chains of portals is too naïve, because it assumes portals are generally the same size. In real life a small hole between two rooms would attenuate sound considerably, which I think is the situation Sprinheel is describing; but the Doom 3 sound-propagation code is not taking portal area into account. And I think you are right that this cannot easily be fixed without the Doom 3 source. " Ishtvan: "sound_loss only affects AI sound, not player sound you can hear. Forcing a portal open or closed presumably uses D3's "door loss" to affect audible sound, which is a value we can change, but it's the same for all portals across the map (until the sound engine source is released and we can change it). " | ||||
Tags | No tags attached. | ||||
[ignore] |
|
The previous note is incorrect. A portal closed with a func_portal provides a default occlusion distance of 450. This might be enough to silence sounds with small radii, but the ones with larger radii can still be heard, though they're more quiet. | |
1 – Changed the way sound reaches the player. Instead of using a distance-based method to determine sound loss across portals, use a dB-based method. Discard the fixed occlusion amount across portals with varying occlusion based on door sound loss spawnargs, location separators, and portal settings entities. 2 – Created a portal settings entity that acts like a location separator w/o creating a location boundary. It carries a sound loss spawnarg that can be applied to AI-heard sounds only, Player-heard sounds only, or both. 3 – Allowed visportals to touch doors with the addition of a new spawnarg, “transparent”. This keeps the portal from closing when the door closes. This allows us to use location separators and portal entities to add further adjustments to sound loss across portals. 4 – Allowed sound loss across an opening or closing door to vary based on the size of the opening. To the player, any sounds coming through an opening door will increase in volume, and decrease as the door closes. 5 – Fixed the “text” entity so it can use the “developer” mode to show its text. The docs said you could toggle the text on and off by toggling the developer mode, but it didn’t work. 6 – Fixed a problem with hearing sound while sitting on the “Player Ready” screen at the start of a mission. Sounds were starting before the player hit the attack button, which caused nearby sounds to be heard through portals, whose occlusion values weren’t set up until a few frames after the attack button was pressed. Fix was to delay starting sounds until after the occlusion values were installed on the portals. 7 – Allowed scripts to adjust the sound loss on portal entities and location separators. 8 – Fixed a bug in a method that determined how “open” a door was. The method only worked for doors opening counter-clockwise, but gave strange results for doors opening clockwise. 9 – Fixed a bug that was occluding sound on a visportal closed by a func_portal. Now no occlusion occurs, allowing sounds to pass through these closed portals without losing volume. 10 – Allow open visportals to occlude sound if they have a touching location separator or portal settings entity. This lets mappers muffle sounds through smaller openings that otherwise would come through loud and clear. rev. 5695: Script_Thread.cpp Script_Thread.h BinaryFrobMover.cpp BrittleFracture.cpp BrittleFracture.h Entity.cpp FrobDoor.cpp FrobDoor.h Game_local.cpp Misc.cpp Misc.h Mover.cpp SndProp.cpp SndProp.h SndPropLoader.cpp SndPropLoader.h RenderWorld.cpp RenderWorld.h RenderWorld_demo.cpp RenderWorld_local.h tr_local.h snd_emitter.cpp snd_local.h snd_world.cpp rev. 13326: misc.def Also committed a test map, “playersound” for testing. Read playersound.txt for a walkthrough. |
|
Committed a change to reduce the amount of time spent finding sound paths from a speaker to the player. rev. 5696 snd_world.cpp |
|
Next round … Add 10dB loss to doors for player only. This brings sound volumes through doors more in line with what they were before the sound changes were made. rev. 5711: FrobDoor.cpp And rev. 5713: snd_world.cpp |
|
Next round … Adjustment to sound passing through an opening door so that it reaches full volume at the 50% open position instead of a 100% open position. rev. 5732: FrobDoor.cpp |
|
Date Modified | Username | Field | Change |
---|---|---|---|
02.03.2012 13:31 | New Horizon | New Issue | |
29.01.2013 21:34 | Springheel | Note Added: 0005036 | |
06.02.2013 18:27 | grayman | Note Added: 0005052 | |
06.02.2013 18:27 | grayman | Assigned To | => grayman |
06.02.2013 18:27 | grayman | Status | new => assigned |
16.02.2013 02:34 | grayman | Note Added: 0005065 | |
16.02.2013 02:34 | grayman | Status | assigned => resolved |
16.02.2013 02:34 | grayman | Resolution | open => fixed |
16.02.2013 02:34 | grayman | Fixed in Version | => TDM 2.00 |
16.02.2013 02:34 | grayman | Target Version | => TDM 2.00 |
16.02.2013 19:26 | grayman | Note Added: 0005068 | |
17.02.2013 19:22 | Springheel | Note Edited: 0005036 | |
14.03.2013 18:02 | grayman | Note Added: 0005177 | |
14.03.2013 19:55 | grayman | Note Edited: 0005177 | |
01.04.2013 21:52 | grayman | Note Added: 0005281 | |
11.06.2023 10:07 | stgatilov | Relationship added | related to 0006224 |