Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Dudas con OpenAL

Iniciado por misscelan, 22 de Diciembre de 2007, 02:12:41 PM

« anterior - próximo »

misscelan

Buenas,

¿Sabéis si se puede definir áreas de sonido en OpenAL?.

Me explico, Por ejemplo, un lago enorme y quiero que se oiga el agua más o menos igual en todos los puntos dentro del lago o un terreno dónde llueve y me gustaría que se oyese más o menos igual en todos los puntos donde caen las gotas.

Siempre digo más o menos porque por ejemplo la forma del lago podría ser muy compleja como para definirla, me bastaría con que se puedise definir un radio respecto a un punto o un cubo.

¿Alguien sabe algo de esto?

Muchas gracias y un saludo.

Pogacha

Me imagino que tendras que programarlo:


float radio= Get_Distancia_Al_Lago();
float volumen;
static bool pausado = true;

if( radio < 100.0f) {
  volumen = MAXIMO_VOLUMEN;
} else if (radio<150.0f) {
  volumen = (MAXIMO_VOLUMEN - MINIMO_VOLUMEN) * (radio-100.0)/50.0f;
} else volumen = MINIMO_VOLUMEN;

if(volumen == MINIMO_VOLUMEN && !pausado)
{
  SonidoDeGotas->Pausar();
  pausado = true;
}

if(volumen != MINIMO_VOLUMEN && pausado)
{
  SonidoDeGotas->Continuar();
  pausado = false;
}

if(!pausado) SonidoDeGotas->Set_Volumen( volumen );

misscelan

Gracias pogacha. Soy un tío muy vago y esperaba que OpenAL estuviese más preparado, pero si no hay más remedio...

Un saludo.

Pogacha

Me corrijo, lo que tu pides se puede hacer perfectamente, lo que tienes que hacer es modificar la funcion de atenuación. Aca tenes las bases:

http://www.openal.org/oalspecs-specs/attenuation-by-distance.html#AEN454
http://www.openal.org/oalspecs-specs/object-sources.html

Pero ten en cuenta que deberas pasarle la posición del escuchador y la dirección del mismo, asi como tambien primero definir la posición y radio del lago y su función de atenuación (deberas usar la clamped)

Obviamente esto te valdrá para una esfera, pero para nada mas.

Saludos

fjfnaranjo

Cita de: "misscelan"esperaba que OpenAL estuviese más preparado,

No es objetivo de OpenAL cumplir esa tarea, sería como pedirle a OpenGL que tuviese una función para modelar un Torus. OpenAL es una librería de bajo nivel para que tu programes tu motor de sonido encima, aun así, es muy potente y tiene cosas muy buenas implementadas (efecto doppler, cosas así)...
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.