Для бипера с одной теоремой Котельникова далеко не уедешь, так как имеет место два существенных фактора:
1) Отсутствует фильтр низких частот, обрезающий зеркальные частоты, которые образуются, в нашем случае, выше 8кГц. Вследствие этого на частотах, превышающих половину частоты дискретизации, также генерируется звук, причем весьма слышимый. Его нельзя игнорировать, за исключением случая, когда половина частоты дискретизации расположена в области выше 14кГц хотя бы.
2) Одноразрядный "ЦАП". На нем невозможно даже синтезировать любые звуки в пределах половины частоты дискретизации. Даже получить чистый тон на частотах, которые не являются дольными от частоты дискретизации, проблематично.
Так что, хоть теорему Котельникова и надо иметь в виду при разработке биперных FX-движков, одной ее недостаточно для полного понимания ситуации.
Для биперных эффектов часто применяется метод "прерывистого синтеза", то есть, какое-то небольшое время процессор занимается синтезом звука на высокой частоте дискретизации, а оставшееся время - рисует графику и т.д. В это время на бипере сигнал имеет постоянный уровень. Несмотря на это безобразие, в спектре сигнала бипера все же присутствуют желаемые частоты. К ним добавляются искажения в виде 50Гц-треска. Это хорошо заметно на звуках движка, описываемого в данном топике. Ну и в играх тоже заметно. Те же Bomb Jack, River Raid, Three weeks in Paradise, Jet Set Willy и т.д.
Также применяется подход, когда во время отрисовки графики и выполнения других долгих, но регулярных задач, проц изредка выводит в бипер новое значение. Примеры - Sea Dragon и др. Это несколько расширяет возможности синтеза и ослабляет 50Гц-треск.
Если изображение на экране обновляется не каждый кадр - то можно использовать целые кадры исключительно для звуковых эффектов. В пределах "звукового" кадра звук может быть сложным и богатым. Для коротких звуковых эффектов часто и не нужно времени больше, чем 1/50с. В отдельных случаях игра может даже замораживаться на время воспроизведения звукового эффекта. При грамотной реализации это можно даже сделать не очень заметным для игрока.
В играх с лучшими биперными эффектами, я думаю, применяются какие-то комбинированные подходы. На данный момент, с моей точки зрения, R-Type непревзойден.





Ответить с цитированием