| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- return {
- tag = 'listener',
- summary = 'Set the geometry for audio effects.',
- description = [[
- Sets a mesh of triangles to use for modeling audio effects, using a table of vertices or a
- Model. When the appropriate effects are enabled, audio from `Source` objects will correctly be
- occluded by walls and bounce around to create realistic reverb.
- An optional `AudioMaterial` may be provided to specify the acoustic properties of the geometry.
- ]],
- arguments = {
- vertices = {
- type = 'table',
- description = [[
- A flat table of vertices. Each vertex is 3 numbers representing its x, y, and z position.
- The units used for audio coordinates are up to you, but meters are recommended.
- ]]
- },
- indices = {
- type = 'table',
- description = [[
- A list of indices, indicating how the vertices are connected into triangles. Indices are
- 1-indexed and are 32 bits (they can be bigger than 65535).
- ]]
- },
- model = {
- type = 'Model',
- description = 'A model to use for the audio geometry.'
- },
- material = {
- type = 'AudioMaterial',
- default = [['generic']],
- description = 'The acoustic material to use.'
- }
- },
- returns = {
- success = {
- type = 'boolean',
- description = [[
- Whether audio geometry is supported by the current spatializer and the geometry was loaded
- successfully.
- ]]
- }
- },
- variants = {
- {
- arguments = { 'vertices', 'indices', 'material' },
- returns = { 'success' }
- },
- {
- arguments = { 'model', 'material' },
- returns = { 'success' }
- }
- },
- notes = [[
- This is currently only supported/used by the `phonon` spatializer.
- The `Effect`s that use geometry are:
- - `occlusion`
- - `reverb`
- - `transmission`
- If an existing geometry has been set, this function will replace it.
- ]],
- related = {
- 'lovr.audio.getSpatializer',
- 'Source:setEffectEnabled'
- }
- }
|