steam-audio: Crashing iplSimulatorRunReflections with baking

System Information

  • Steam Audio version: 4.5.2
  • Operating System and version: Windows 11

Issue Description Reflections work fine in my project but it’s compute-heavy, so I want to bake my reflections. I have one source that moves around in a circle. My listener is in the middle of circle. I want to perform a static listener bake for the reflections. I’ve generally followed the programmer’s guide for baking, but changed it up a bit to use static listener instead of static sources. However, when I call iplSimulatorRunReflections after baking, it crashes with an “Access violation reading location 0x0000000000000000.” error.

Steps To Reproduce

  1. I have one probe array, one probe batch, and one identifier.
  2. When I run the simulation, I set the simulator inputs baked flag and baked data identifier to the same one I used to initially bake.
  3. Crashes when I call iplSimulatorRunReflections

One thing I noticed is that my call to iplReflectionsBakerBake is instantaneous. In the Steam Audio docs, it says that this function will block, so I assumed that it would take a while to simulate the reflections. However, that doesn’t seem to be the case for me. I’m wondering if this may be the reason why running reflections is crashing after I bake.

I have also tested with the static source variation but I still get the exact same crash.

About this issue

  • Original URL
  • State: closed
  • Created 2 months ago
  • Comments: 16

Most upvoted comments

Are you trying to place probes on that thin edge? Your down vector is -Y and if there is a just a thin plane, no probe is going to land on that thin edge.

You can manually add probes using iplProbeBatchAddProbe to a probe batch before baking reflections if iplProbeArrayGenerateProbes does not generate probes that you want.

A 4 x 4 matrix basically can represent - scaling, rotation, and transform. This link has some basic information that might be helpful on specifying translation in a matrix.

To answer your questions.

  1. Probe box center can be specified through the boxTransform.
  2. The box is centered around the center and its size is defined by the scale.
  3. Imagine dropping probes and them falling on geometry, wherever they hit the geometry is the floor. Height is the distance above the floor at which we place the probe.
  4. As long as the triangles are part of the scene, this should be fine.

Below are three main causes when no probes are generated:

  • Scene has no geometry added to it.
  • The Box doe not include any of the geometry in the scene.
  • All the probes generated (i.e. height of 1.5 above the floor/geometry in the box) lie outside the box itself.

All that said, we should probably do graceful failure here.