Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Введение в OpenAL, и проигрывание музыкального формата OGG/Vorbis (Комментарии к статье) (4 стр)

Введение в OpenAL, и проигрывание музыкального формата OGG/Vorbis (Комментарии к статье) (4 стр)

Страницы: 1 2 3 4 5 6 Следующая »
ЮзверьПостоялецwww11 июля 20060:30#45
Да статей полно на сайте Алексея Борескова http://steps3d.animekazan.net/
Я там статью про OpenAL почитал, и сразу сделал демку. Там еще статьи по OpenGL есть про современные расширения.
st0keПостоялецwww11 июля 20066:10#46
FreemaN
нужна аппаратная поддержка OpenAL, иначе смысла нету и тебе квака выдаёт предупреждение.
Evgeniy13Постоялецwww11 сен. 200614:34#47
хм... как я понимаю, данные openAL с диска подсасывать не умеет (соотв. стриминг надо вручную делать), а как же дела обстоят с xbox360? В http://www.openal.org/platforms.html говорят, что xbox поддерживается...
Интересно, что с PS3...
ИннокентийПостоялецwww18 ноя. 200612:39#48
как узнать elapsed time(ну или remaining) какого-нить sound source?

updated
сделал так, если кому интересно :)
clock_t m_endTime = clock();
(m_endTime - m_startTime) / CLOCKS_PER_SEC;

DaBrainНовичокwww21 янв. 200723:31#49
Никак не пойму в чем дело - абсолютно одинаковый код OpenAL из статьи работает изолированно простом консольном приложении, однако при попытке встроить в движок ничего не работает - ошибок OpenAL нет - но и звука нет. Единственное отличие от консольного приложения в том что в игре сначала грузится DLL движка, которая в свою очередь грузит OpenAL. У кого-нибудь есть соображения по этому поводу - всю голову сломал уже. Код выверен чуть ли не построчно.
petya-kurochkinПостоялецwww18 мар. 200719:43#50
У меня ov_pcm_total возвращает 0, объясните, пожалуйста, почему такое может быть?
petya-kurochkinПостоялецwww20 мар. 200714:30#51
Неужели никто не знает? А у меня меж тем, функция ov_read возвращает не правильные данные. Читаю я всё из памяти, т.е. открываю через ov_open_callbacks...
Если что-то надо я выложу, только скажите, в чём может быть ошибка...
Мурат ДжусуповНовичокwww4 сен. 200718:48#52
Большое спасибо авторам и переводчикам этого материала. Я добавил для своего звукового движка несколько новых функций (считывающих wav, pcm и ogg из памяти в буфер) и пришлось пока обойтись без функции LoadOggFile(), так как обнаружился глюк — даже после Close() при попытке декодирования нового ogg-файла из диска (Streamed = false) и наполнения звуком OpenAL буфера (с последующим добавлением в ассоциативный массив информации о новом буфере и имени файла) происходит ошибка якобы некорректного формата ogg-файла в функции ov_open_callbacks(...). Попробую заменить тело функции LoadOggFile() кодом из учебника Мейсона МакКаски «Звук в играх».
ShtilleПостоялецwww22 июня 200814:03#53
Хотелось бы дать некоторые замечания по статье.
1) alutLoadWAVFile() проигрывает не все файлы WAV. Из за этого вылетает пресловутая ошибка "Invalid Value".
2) Автор забыл упомянуть про функцию alSourcePause, которая ставит проигрывание звука на паузу, а не сбрасывает, как функция alSourceStop. Если вызвать затем alSourcePlay, то в первом случае проболжит проигрывание с того же места, а во втором случае проигрывание начнется с самого начала.
Evgeniy13Постоялецwww22 июня 200817:41#54
Ну рассказывай давай, какие там wav-файлы не проигрываются.
ShtilleПостоялецwww28 июня 20082:51#55
От балды скачал парочку файлов wav с сети. Плеер их спокойно проигрывал. А вот загрузить такой файл с помощью соответсвующей функции не удавалось.
ketzerНовичокwww23 авг. 200814:26#56
Отличная статья! Огромный респект!

ссылка на OpenAL SDK 1.0.zip

ketzerНовичокwww24 авг. 200813:32#57
Duncon, в разделе download твоей ссылки есть SDK версии 1.1 , в которой нет alu.h и иже с ней.
4mlrПостоялецwww14 фев. 200918:43#58
Как вариант: можно скачать пример и там есть все библиотеки.
constructor_Постоялецwww4 мар. 200922:33#59
Да, с кодеками проблема. Когда ставил от 2001 года glut -- некоторые wav не грузились.
Поставил с сайта (от 2006 года -- последний). Уже прочитал размер и какие-то данные не грузившихся файлов, но сам звук так и не загрузил.

А вот сама функция alutLoadWAVFile -- мб ее нужно несколько раз вызывать? Не нашел толкового описания в документации((

Кстати, почему у тебя в примере "mPos" в открытых данных?
Их изменение ничего не дает, зато сбивает с толку.

Ведь ты хоть и даешь в alSourcefv ссылку на данные, но ссылка то используется только для копирования.. Я так сделал у себя:

...
class Sound
...
public:

  void setPosition(const vector3df &pos);
  void setVelocity(const vector3df &vel);

  void setPitch(const f32 &pitch);
  void setGain(const f32 &gain);

  bool IsStopped();

private:
  vector3df Velocity;
  vector3df Position;
  f32 Pitch;
  f32 Gain;
...
void Sound::setPosition(const vector3df &pos)
{
  Position = pos;
  alSourcefv(SourceID, AL_POSITION, &Position.X);
};

bool Sound::IsStopped()
{
  ALint value;
  alGetSourcei(SourceID, AL_SOURCE_STATE, &value);
  return (value == AL_STOPPED ? true : false);
};

void Sound::setVelocity(const vector3df &vel)
{
  Velocity = vel;
  alSourcefv(SourceID, AL_VELOCITY, &Velocity.X);
};
...
Просто и понятно. И нет желания (а главное возможности) ручками лезть куда не надо (единственно смешение типов не есть гуд).
Фактически можно вообще убрать "Position" и "Velocity" -- если состояние объекта не важно. К тому же вообще, состояние можно узнавать из самого же OpenAL


PS Ах, самое главное. Спасибо за статью. Большое! Правда она мне помогла.

PPS Кстати, интересно, а сколько на свете врапперов, если каждый считающий себя программистом написал не меньше десятка? О_о

Страницы: 1 2 3 4 5 6 Следующая »

/ Форум / Программирование игр / Общее

2001—2018 © GameDev.ru — Разработка игр