Comments 63
Интересно, как раз встал вопрос о добавлении музыки в игру
Представьте себе, если бы «добавлять» не пришлось. По умолчанию звуки уже были бы в игре, надо было бы только довести их до желаемого результата.
похоже на использование материалов вместо текстур
Да, хорошая аналогия. Использование моделей материалов.
Похожий подход реализован в BFXR
www.bfxr.net
www.bfxr.net
На самом деле нет. BFXR — это ничем не обусловленное сочетание разных базовых элементов синтеза и обработки. Но штука занятная — для создания очередного Марио сэкономит время.
Пасиба за ссылку
UFO just landed and posted this here
Основная проблема в том, что бинауральный эффект зависит от т.н. head-related transfer function, общепринятого способа корректно и эффективно моделировать которую нет. Можно нагуглить целые диссертации на эту тему (на английском).
По сути это следствие того же «недостатка внимания». Найдется разработчик, который не поленится и использует это в игре, и тут начнется)
По сути это следствие того же «недостатка внимания». Найдется разработчик, который не поленится и использует это в игре, и тут начнется)
Предупреждать же надо — на 1:21-22 что-то справа постучало, как будто в окно. А у меня окно ровно справа. Я чуть было не подорвался посмотреть, кто там мне в окно стучит. А этаж-то последний -_-
Хорошо, что вы целы :) А то бы не видать нам этой технологии.
UFO just landed and posted this here
К слову, как я понимаю, дома кустарными методами собрать аппарат для записи бинаурального звука не так уж и сложно. Конечно, вариант будет уступать профессиональному, но если просто взять макет головы в реальном масштабе, вставить ей в слуховые проходы микрофоны, то должно получиться некоторое подобие такой записи. Особенно если базовые параметры бинауральной головы будут совпадать с параметрами головы слушателя получившегося аудио. Главным образом, это касается расстояния на которое были разнесены микрофоны при записи и на которое будут разнесены наушники в ушах при последующем прослушивании.
Представляете, собрать такую голову, а потом сесть перед ней и писать на неё подкасты. Был бы очень оригинальный звук. Некоторые бы борцы за качество звучания съели бы свою шляпу от завести. :-)
Вот еще хорошее видео.
Собрать кустарно несложно. Но на качество влияет куча мелочей, которые кустарно сложно сделать.
Собрать кустарно несложно. Но на качество влияет куча мелочей, которые кустарно сложно сделать.
UFO just landed and posted this here
Тут дело не столько в просто разнесенных микрофонах, сколько в повторении формы ушного канала
На самом деле важно все. И не стоит забывать про полости черепа, они резонируют.
Все эти вещи, кстати, параметризуются тоже. Представьте, вы вводите в программу свой возраст (можно еще и национальность), она подгоняет бинауральную модель под среднестатистические параметры черепа человека конкретного возраста (и конкретной национальности). Только пожалуйста, не надо про закон Годвина =)
Или еще проще — сделать трехмерную МРТ и ввести в программу.
Добавлю. В ушном канале расположены еще и волоски, которые раздражаются в зависимости от того, с какой стороны пришел звук. Таким образом, раздраженные волоски, дают дополнительную информацию мозгу о направлении источника звука. И это помимо внтуренних переотражений, поглощений и усилений звуковых волн, на что влияет, разуеется, и материал из которого изготовлены уши). Постоянно слушая, и зная направления до источника звука, мозг учится сопоставлять различные дополнительные источники информации о направлении и чем взрослее (опытнее на нейрофизиологическом уровне) человек становиться, тем сложнее «обмануть» его уши.
Предположим такую ситуацию, человек слушает в наушниках бинауральную аудиозапись, все фазы, микроэхо и вообще все что можно передать акустически, соответствуют реальному положению вещей. Но! Но реально звук идет от двух источников расположенных около ушей. Что это значит? А это значит, что:
1 Микроволоски устилающие внутреннюю поверхность ушного канала, раздражаются не в соответствии с реальным расположением источников звука.
2 Отсутсвует правильный резонанс черепа
3 Плотность, отражающие и поглащающие свойства поверхности ушного канала все равно не будут соответствовать этим же параметрам корпуса микрофона. А значит поглощения смежных сигналов на разных частотах не будут соответсвовать таковым в реальной ушной раковние, что так же привнесет определенные искажения.
Думаю что при воздействии только лишь на барабанную перепонку, будет крайне сложно создать алгоритм, способный полностью «обмануть» ухо.
Предположим такую ситуацию, человек слушает в наушниках бинауральную аудиозапись, все фазы, микроэхо и вообще все что можно передать акустически, соответствуют реальному положению вещей. Но! Но реально звук идет от двух источников расположенных около ушей. Что это значит? А это значит, что:
1 Микроволоски устилающие внутреннюю поверхность ушного канала, раздражаются не в соответствии с реальным расположением источников звука.
2 Отсутсвует правильный резонанс черепа
3 Плотность, отражающие и поглащающие свойства поверхности ушного канала все равно не будут соответствовать этим же параметрам корпуса микрофона. А значит поглощения смежных сигналов на разных частотах не будут соответсвовать таковым в реальной ушной раковние, что так же привнесет определенные искажения.
Думаю что при воздействии только лишь на барабанную перепонку, будет крайне сложно создать алгоритм, способный полностью «обмануть» ухо.
Очень интересно. Представьте себе начального школьника, слишком много играющиего в игры с такой технологией. Может ли он превратиться в «акустического идиота» за год? :)
С какой стороны пришёл звук мозг определяет по разнице громкости и по задержке сигнала между левым и правым ухом. Не совсем понятно про какие «волоски» в ушном канале вы говорите. Если про рецепторы внутри улитки, то они не определяют с какой стороны пришёл звук и их нельзя натренировать. Они отвечают только за перевод давления жидкости в улитке в импульсы, которые потом преобразовываются мозгом. Если же вы про волоски в наружном ухе (пух или твёрдые волосы), то они вообще ни на что, кроме внешней привлекательности, не влияют, как усы не влияют на обоняние.
По разнице в громкости и задержке сигнала, вы определите направление только по одной оси. Человек же, способен определять направление до источника звука в трех осях. А о волосках я говорю о тоех, что расположены в слуховом канале. Если будет не совсем онятно, я могу проиллюстрировать.
В четырёх осях. Ещё во времени ;)
На самом деле волоски в слуховом канале наружного уха (если они там вообще есть) не имеют отношения к слуху, как и волоски на внешней части уха, т.к. они никак не связаны со слуховыми рецепторами, расположенными в улитке. Наружное ухо частично защищает среднее ухо от механических повреждений и в незначительной степени фильтрует частоту входящего звука, исключительно благодаря форме ушной раковины и слухового канала в форме тоннеля. Никакой другой функции у внешнего уха и его элементов нет. А положение источника звука впереди/сзади, вверху/внизу определяется характерной разницей частот и фазовых изменений волны, которые регистрируются улиткой и интерпретируются мозгом. И эти характерные особенности можно без проблем имитировать даже программным способом. Примеры есть в комментариях выше.
На самом деле волоски в слуховом канале наружного уха (если они там вообще есть) не имеют отношения к слуху, как и волоски на внешней части уха, т.к. они никак не связаны со слуховыми рецепторами, расположенными в улитке. Наружное ухо частично защищает среднее ухо от механических повреждений и в незначительной степени фильтрует частоту входящего звука, исключительно благодаря форме ушной раковины и слухового канала в форме тоннеля. Никакой другой функции у внешнего уха и его элементов нет. А положение источника звука впереди/сзади, вверху/внизу определяется характерной разницей частот и фазовых изменений волны, которые регистрируются улиткой и интерпретируются мозгом. И эти характерные особенности можно без проблем имитировать даже программным способом. Примеры есть в комментариях выше.
Волоски там есть и они, в том числе, решают и описанную мной задачу. Это медицинский факт. Источник уже не найду. Все что вы написали касательно опеределения положения источника верно. Но неполно. Полно описал я выше. Это тоже медицинский факт.
Хорошо, спорить не буду, может быть вы врач. Но по-моему, ваше утверждение равноценно тому, что разницу между реальностью и компьютерной графикой, опытный человек различает не только с помощью глаз, но и частично благодаря натренированным ресницам.
Я не врач, я просто интересуюсь нейрофизиологией и всем что с этим связано. Но ваш пример с ресницами, в данном случае, некорректен. Ресницы так же выполняют несколько задач, но не связанных с визуальным восприятем. Хотя я не исключаю, что дифракционные свойства ресниц, мозг может использовать для неких иных целей ;)
Вот авторы этой технологии. У них есть свой движок для 3D звука в играх.
Технологии ушли дальше и есть более совершенные алгоритмы чем придумали они, к примеру тот что используется в видео по вашей ссылке.
Технологии ушли дальше и есть более совершенные алгоритмы чем придумали они, к примеру тот что используется в видео по вашей ссылке.
Да уж, с синтезом звука всё плохо. И что интересно, звуковики даже слышать не хотят ни о каком генерированном аудио. Мол, «нинужно, я и так под все ваши нужды наваяю эффектов с нужным качеством, так процедурное аудио по сравнению с этим будет звучать как полное говнище».
Ну что тут сказать? Кажется, кто-то зажрался. Ведь с видео тоже можно делать пререндер. А почему нет? Представьте себе комнату и персонажа в ней. Просто рендерим в какой-нибудь Maya виды при повороте камеры от 0 до 359 градусов. Всего 360 кадров. Предположим, комната 10x10 шагов. Тогда на весь рендер уйдёт всего 36000 кадров, которые можно пожать каким-нибудь кодеком и завернуть в контейнер MKV (к примеру). Это ведь какие-то жалкие 20 минут фильма, сколько оно там займёт… Скорость каналов и ёмкости дисков уже позволяют так делать, а ведь качество профессионально отрендеренной графики будет уж не в пример лучше полигонального on-the-fly!
При создании графики любого, кто выдвинет столь «гениальную» идею, немедленно уволят. Звуковиков же почему-то не увольняют, хотя это точно такой же идиотский подход — мол, отрендерим все виды звука и потом просто будем миксить разные сэмплы с разной громкостью. Это ж такая примитивщина, по сравнению с которой даже трекерная музыка 90-х кажется недосягаемой технологической вершиной.
А ведь требования к звуку растут. Всё больше и больше сложных вариантов озвучки в играх, всё больше она занимает места (в процентах). Уже в Mass Effect-2 звук занимает 19% от общего веса игры. И это при том, что там весьма качественная графика, неплохие текстуры, куча видеороликов.
Вот как только звук начнёт занимать более 70% игровых ресурсов, тут-то разработчики и задумаются, что надо бы кому-то дать по рукам и сделать наконец SPU (аналог GPU), ввести звуковые шейдеры и программный синтез.
Ну что тут сказать? Кажется, кто-то зажрался. Ведь с видео тоже можно делать пререндер. А почему нет? Представьте себе комнату и персонажа в ней. Просто рендерим в какой-нибудь Maya виды при повороте камеры от 0 до 359 градусов. Всего 360 кадров. Предположим, комната 10x10 шагов. Тогда на весь рендер уйдёт всего 36000 кадров, которые можно пожать каким-нибудь кодеком и завернуть в контейнер MKV (к примеру). Это ведь какие-то жалкие 20 минут фильма, сколько оно там займёт… Скорость каналов и ёмкости дисков уже позволяют так делать, а ведь качество профессионально отрендеренной графики будет уж не в пример лучше полигонального on-the-fly!
При создании графики любого, кто выдвинет столь «гениальную» идею, немедленно уволят. Звуковиков же почему-то не увольняют, хотя это точно такой же идиотский подход — мол, отрендерим все виды звука и потом просто будем миксить разные сэмплы с разной громкостью. Это ж такая примитивщина, по сравнению с которой даже трекерная музыка 90-х кажется недосягаемой технологической вершиной.
А ведь требования к звуку растут. Всё больше и больше сложных вариантов озвучки в играх, всё больше она занимает места (в процентах). Уже в Mass Effect-2 звук занимает 19% от общего веса игры. И это при том, что там весьма качественная графика, неплохие текстуры, куча видеороликов.
Вот как только звук начнёт занимать более 70% игровых ресурсов, тут-то разработчики и задумаются, что надо бы кому-то дать по рукам и сделать наконец SPU (аналог GPU), ввести звуковые шейдеры и программный синтез.
Все к этому и идет, думаю, почти уже научились синтезировать человеко-подобную речь, вот скоро и синтезом музыки начнут заниматься.
А потом роботы станут композиторами.
А потом роботы станут композиторами.
Они уже.
Есть программа EMI, которая проанализировала тысячи партитур, созданных известными композиторами, и может имитировать стиль любого из них.
И есть Continuator, которая может, основываясь на стиле исполнения, подсказывать музыканту, как продолжить произведение.
Есть программа EMI, которая проанализировала тысячи партитур, созданных известными композиторами, и может имитировать стиль любого из них.
И есть Continuator, которая может, основываясь на стиле исполнения, подсказывать музыканту, как продолжить произведение.
Так где её можно скачать???
Не знаю=) Первая — результат почти 30-тилетней работы, вторая — почти 20-тилетней. Вряд ли на трекер выложат)
Ну GTA V ведь выложили :D
Это будет ад X) В высоких обществах создателя EMI многие уже давно хотят четвертовать. Искушенные слушатели не в состоянии отличить партитуру EMI от партитуры Вивальди. А когда узнают правду, воспринимают это как плевок в душу. Что уж говорить о композиторах o_O
UFO just landed and posted this here
Даже Massive и Zebra имеют ограниченные (хоть и непревзойденные среди VSTi) возможности параметризации. Множество требуемых результатов намного мощнее множества результатов, которые могут выдавать эти синты. Плюс, потенциальный доступ к низкоуровневым параметрам синтеза извне.
Так а зачем использовать готовое, если можно под свои нужды написать то, что нужно именно тебе? Оно заодно и меньше ресурсов, скорее всего, будет жрать, по сравнению с «универсальным» монструозным синтом, который может почти всё.
UFO just landed and posted this here
Вот да. Тот же стандарт VST достаточно прост, хост к нему написать — задача вполне выполнимая. Если нужно свои синты — тоже без особых проблем создаются.
С другой стороны, имея опыт использования их для написания музыки, могу сказать, что процессор они нагружают довольно-таки прилично, с этим ничего не поделаешь. Возможно, будущее — за специальными устройствами, на которые можно будет переносить тяжелые вычисления звука, по аналогии с видеокартами? :)
С другой стороны, имея опыт использования их для написания музыки, могу сказать, что процессор они нагружают довольно-таки прилично, с этим ничего не поделаешь. Возможно, будущее — за специальными устройствами, на которые можно будет переносить тяжелые вычисления звука, по аналогии с видеокартами? :)
Так речь не о каком-то конкретном стандарте. Смысл описанного стека в этом и заключается. VST так VST. Тут главное — концепция. Аудио уже встроено в объекты мира, оно является его «природной» легко управляемой частью.
Я понимаю, да. Я имел в виду гипотетическую модель, где спустя какое-то время накопится достаточно готовых решений почти на все нужные разработчику случаи жизни. Например, я могу сейчас открыть какой-нибудь Sylenth и сделать там более-менее нормальный звук лопастей вертолета (а скорее всего, там уже, наверное, есть подобный пресет). А могу вместо этого написать свой синт Helicopter (который будет специализироваться на реалистичном звуке вертолета). Кто-то еще напишет синт Boeing 747. Будет такая большая библиотека звуков окружающей среды. И тогда разработчики игр смогут просто покупать эти синты и использовать их в своей игре как им заблагорассудится (управляя частотой вращения лопастей в режиме реального времени, громкость и чем еще угодно).
Что думаете про новую технологию TrueAudio от AMD, где звук будет обрабатываться не на CPU, как сейчас в большинстве игр, а на видеокарте?
Небольшой перевод этой новости на русский.
Небольшой перевод этой новости на русский.
Интересно, спасибо за ссылку. Насколько мне представляется, это как раз один из шагов в сторону вычислительного аудио. Как я понял из оригинала статьи, упор в частности будет делаться как раз на пространственные эффекты. Это как раз одни из наиболее затратных вычислений — множественные отражения сигнала, диффузия и т.д.
Спасибо. Отличная статья!
По поводу процедурного аудио — у всех существующих программ, которые позволяют реализовывать сложные звуковые модели (PD, CSound, SuperCollider, Max/Msp, NI Reactor и т.п.) есть один очень существенный недостаток — общая регидность и качество звучания модулей. Поэтому, несмотря на то, что можно создать очень детальную и реалистичную модель — звук получается значительно хуже чем ожидается.
В мире синтезаторов основной характер инструмента создаётся фильтрами. Это касается и программных и железных синтезаторов. Тот же Monark от NI, моделирующий звучание аналогового Mini-Moog, хоть и сделан на движке Реактора, но фильтры, переписывались и калибровались с нуля, т.к. со стандартными фильтрами Реактора получить такое звучание невозможно. А смоделировав аутентичные фильтры — получаем требовательный к ресурсам инструмент, который может воссоздавать звучание только одного конкретного синтезатора. А для того, чтобы получить, например, фирменный звук Roland TB-303, нам нужно заново создавать и калибровать модель фильтра.
Поэтому для эффективного развития процедурного аудио (в его текущем направлении) нужно создавать очень много качественных физ. моделей. Не только для фильтров, но для всего. Как например существующие уже физ. модели фортепиано, rhodes, некоторых типов перкуссии и струнных инструментов, где существует математически описанная физ. модель возбудителя (жесткий молоточек, мягкий молоточек, смычок...) и физ. модель тела (цилиндр, конус, пластина, струна...). Такие же модели должны быть созданы для всех вариантов взаимодействия в игре: модели поверхностей (песок, камень, дерево, ткань...), тел (деревянный дом, картонная коробка, металлическая контейнер, лиственный лес...) и т.п. А это уже серьёзное программирование, которое чуждо среднестатистическому звуковому дизайнеру. Равно как чужды понятия, «ламповая теплота», «мягкая сатурация», «реверберация лиственного леса» среднестатистическому программисту :)
По поводу процедурного аудио — у всех существующих программ, которые позволяют реализовывать сложные звуковые модели (PD, CSound, SuperCollider, Max/Msp, NI Reactor и т.п.) есть один очень существенный недостаток — общая регидность и качество звучания модулей. Поэтому, несмотря на то, что можно создать очень детальную и реалистичную модель — звук получается значительно хуже чем ожидается.
В мире синтезаторов основной характер инструмента создаётся фильтрами. Это касается и программных и железных синтезаторов. Тот же Monark от NI, моделирующий звучание аналогового Mini-Moog, хоть и сделан на движке Реактора, но фильтры, переписывались и калибровались с нуля, т.к. со стандартными фильтрами Реактора получить такое звучание невозможно. А смоделировав аутентичные фильтры — получаем требовательный к ресурсам инструмент, который может воссоздавать звучание только одного конкретного синтезатора. А для того, чтобы получить, например, фирменный звук Roland TB-303, нам нужно заново создавать и калибровать модель фильтра.
Поэтому для эффективного развития процедурного аудио (в его текущем направлении) нужно создавать очень много качественных физ. моделей. Не только для фильтров, но для всего. Как например существующие уже физ. модели фортепиано, rhodes, некоторых типов перкуссии и струнных инструментов, где существует математически описанная физ. модель возбудителя (жесткий молоточек, мягкий молоточек, смычок...) и физ. модель тела (цилиндр, конус, пластина, струна...). Такие же модели должны быть созданы для всех вариантов взаимодействия в игре: модели поверхностей (песок, камень, дерево, ткань...), тел (деревянный дом, картонная коробка, металлическая контейнер, лиственный лес...) и т.п. А это уже серьёзное программирование, которое чуждо среднестатистическому звуковому дизайнеру. Равно как чужды понятия, «ламповая теплота», «мягкая сатурация», «реверберация лиственного леса» среднестатистическому программисту :)
Рад, что статья понравилась :)
Насчет синтезаторов — согласен, чтобы учесть все нелинейные тонкости и получить теплый ламповый муг, действительно нужны ресурсы, да еще желательно препарировать оригинальный инструмент. Хотя взять тот же Diva, — не особо ресурсоемкий, а звучит очень хорошо и имитирует много всего. Противоположный пример — Massive, который как раз собран в Reaktor. Сколько пытался сделать сам и сколько пресетов перерыл — тепла в нем действительно нет.
Касательно качества модулей — это зависит от «искусства апроксимировать». Действительно, еще много чего надо смоделировать и написать, чтобы результат был легче и качественнее.
Спасибо за ссылки.
Насчет синтезаторов — согласен, чтобы учесть все нелинейные тонкости и получить теплый ламповый муг, действительно нужны ресурсы, да еще желательно препарировать оригинальный инструмент. Хотя взять тот же Diva, — не особо ресурсоемкий, а звучит очень хорошо и имитирует много всего. Противоположный пример — Massive, который как раз собран в Reaktor. Сколько пытался сделать сам и сколько пресетов перерыл — тепла в нем действительно нет.
Касательно качества модулей — это зависит от «искусства апроксимировать». Действительно, еще много чего надо смоделировать и написать, чтобы результат был легче и качественнее.
Спасибо за ссылки.
А можете примерно предположить, о ресурсах какого порядка может идти речь? То есть сколько процентов это составляет от того, что сейчас в среднем требует графика? Если, конечно, можно говорить об этом с какой-то определённостью.
Я думаю, это не сравнимо с графикой. В несколько раз меньше.
Естественно, при условии грамотного подхода. Если бессмысленно, маниакально точно моделировать водопад, то тут только на чем-то из TOP500. Если с головой — то на планшетах все будет гладко. А если с отдельным звуковым чипом работать, то совсем замечательно.
Подход к обработке и синтезу звука в целом заключается к быстрому прямому и обратному преобразованию Фурье, плюс не запредельная математика. Короче, о ежесекундной обработке огромных массивов данных типа вершин многополигональных моделей и шейдеров речи вообще не идет :)
Естественно, при условии грамотного подхода. Если бессмысленно, маниакально точно моделировать водопад, то тут только на чем-то из TOP500. Если с головой — то на планшетах все будет гладко. А если с отдельным звуковым чипом работать, то совсем замечательно.
Подход к обработке и синтезу звука в целом заключается к быстрому прямому и обратному преобразованию Фурье, плюс не запредельная математика. Короче, о ежесекундной обработке огромных массивов данных типа вершин многополигональных моделей и шейдеров речи вообще не идет :)
Из моего опыта: всё очень зависит от конкретной физ.модели и способа её реализации/оптимизации. Например, одновременное звучание 26 копий физмод синтезатора Chromaphone, который качественно эмулирует звуки перкуссии (бонги, гонги, ксилофоны, колокола и т.п.), съедает 100% ресурса процессора i7-3770K. Но это искусственный тест. В реальных проектах всё не так плохо.
Таким образом можно и музыку писать, используя только простейшие математические формулы: goo.gl/UJl0i
Послушайте Яниса Ксенакиса) Партитуру писала программа, а исполняли люди: www.youtube.com/watch?v=1H7JYwmM7vU
UFO just landed and posted this here
Помню, в сети нашёл программу «Звуки леса.» В ней были звуки птиц, дождя и шума ветра, в общем хорошо воссоздавала лесную обстановку. Но через неделю-две регулярных включений все записанные звуки приелись и стали раздражать. Надеюсь, что-то подобное смогут генерировать процедурно, чтобы звучало натурально, не повторялось и не раздарало.
Да тема интересная, но такое смогут позволить себе только команды с достаточным количеством денег и достаточным желанием улучшить звук.
Начинающие разработчики может быть и хотят всякие такие вещи, но:
1. как уже сказал на это нет денег
2. движок который они используют такое не умеет или доводить это сложно/проблемно (взять тот же Unity).
Вообще, кому интересно, разработки в этой сфере делаются, и лично я, когда будут возможности буду использовать подобные вещи:
www.cs.cornell.edu/projects/sound/fire/
www.cs.cornell.edu/projects/FractureSound/
gamma.cs.unc.edu/PrecompWaveSim/
gamma.cs.unc.edu/symphony/
gamma.cs.unc.edu/SlidingSound/SlidingSound.html
Ещё скажу, мипмап не из-за экономии ресурсов используется (он-то как раз их пожирает), а для правильного отображения текстур дальних объектов (чтобы мерцания и мельтешания пикселей не было).
Начинающие разработчики может быть и хотят всякие такие вещи, но:
1. как уже сказал на это нет денег
2. движок который они используют такое не умеет или доводить это сложно/проблемно (взять тот же Unity).
Вообще, кому интересно, разработки в этой сфере делаются, и лично я, когда будут возможности буду использовать подобные вещи:
www.cs.cornell.edu/projects/sound/fire/
www.cs.cornell.edu/projects/FractureSound/
gamma.cs.unc.edu/PrecompWaveSim/
gamma.cs.unc.edu/symphony/
gamma.cs.unc.edu/SlidingSound/SlidingSound.html
Ещё скажу, мипмап не из-за экономии ресурсов используется (он-то как раз их пожирает), а для правильного отображения текстур дальних объектов (чтобы мерцания и мельтешания пикселей не было).
Текстуры дальних объектов никто не запрещает накладывать «честно», используя для одной точки проекции среднее значение всех точек текстуры, попадающих в нужную область. Причем геометрически множество точек текстуры, которое надо усреднить, имеет форму не квадрата, а овалообразного объекта, вытянутого в стороны в зависимости от угла между нормалью к поверхности и вектором на камеру. Это, конечно, очень затратно вычислительно. Но очевидно, что мипмап дает только весьма приближенную замену описанному выше механизму, зато позволяет для одной точки поверхности дальнего объекта взять всего одну точку одной из вариантов текстуры (вместо десятков-сотен). Расходы на мипмап — только память (а она дешева) и однократное вычисления массива уменьшенных текстур.
Под ресурсами я имел ввиду именно память. Просто встречал заблуждение что мипмап её экономит. Ещё мипмап позволяет задать своё изображение для нужного уровня детализации/расстояния, так например вблизи можно показывать чёрную землю под кустами травы, а вдали (где трава уже не рисуется) показывать изображение-имитацию этой травы вместо чёрной земли.
Что касается дешевизны, видеопамять не так уж дёшева была до недавнего времени, да и сейчас её по факту не так уж много (если идти в ногу со временем), ведь текстуры это и карты теней (которые всё большего и большего разрешения), да и на объект теперь нередко не одна и не две карты для шейдера идут, потом всё чаще используются 3д/объёмные текстуры (для тех же облаков или освещения). Помимо текстур в памяти лежат ещё модели, тяжесть которых тоже растёт, и буферы всякие. В общем, памяти по прежнему не хватает и прямо уж разбрасываться ей нельзя.
Что касается дешевизны, видеопамять не так уж дёшева была до недавнего времени, да и сейчас её по факту не так уж много (если идти в ногу со временем), ведь текстуры это и карты теней (которые всё большего и большего разрешения), да и на объект теперь нередко не одна и не две карты для шейдера идут, потом всё чаще используются 3д/объёмные текстуры (для тех же облаков или освещения). Помимо текстур в памяти лежат ещё модели, тяжесть которых тоже растёт, и буферы всякие. В общем, памяти по прежнему не хватает и прямо уж разбрасываться ей нельзя.
Sign up to leave a comment.
Процедурное аудио