Комментарии 14
Для использования фильтра Гаусса (и для более простого варианта с суммированием в квадрате) можно применить фильтр по вертикали и потом по горизонтали (или наоборот) — сложность вместо O(width*height) изменится на O(width+height).
С гауссом фишка в том, что вес пропорционален exp(-adx^2-bdy^2) = exp(-adx^2) exp(-b*dy^2), и он распадается на две независимые составляющие по каждой координате.
Ни в коем разе не в укоризну, а комплектности для.
Я не автор статьи, но подобный вопрос у меня возникал несколько лет назад.
Из институтских курсов реально необходима линейная алгебра. Без неё никак.
Ещё время от времени появляются некоторые отсылки к матану и физике (эффекты преломления и отражения, сохранение количества света, сферические функции, преобразование Фурье, кватернионы) — лучше в них самому разбираться. В компьютерной графике они довольно спецефически применяются, в общих курсах такого может и не быть.
Главный совет — учиться читать на техническом английском, на нём документация и есть хорошие материалы. (На русском может быть устаревшая информация, если вообще будет)
Я начинал с F. Dunn, I. Parberry — "3D Math Primer for Graphics and Game Development". Там есть описание алгоритмов и примеры кода на с++. Начинается с самых азов типа векторов и систем координат — мне было знакомо, но зато помогло привыкнуть к английским наименованиям.
Mathematics for 3D Game Programming and Computer Graphics, Third Edition 3rd Edition by Eric Lengyel
https://www.amazon.com/dp/1435458869/ref=pd_lpo_sbs_dp_ss_1?pf_rd_p=1944687722&pf_rd_s=lpo-top-stripe-1&pf_rd_t=201&pf_rd_i=159200038X&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=7039KSJ1H4BNPTQ2X7WX
Насколько я понимаю, этот труд обрел уже статус классического
Introduction to 3D Game Programming with DirectX 11 by Frank Luna
Отличная книга, весьма подробно описывающая как многие современные техники рендеринга, так и основы. Рекомендую.
(Кстати, при написании этой статьи во многом опирался на эту книгу)
https://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228
HLSL Development Cookbook by Doron Feinstein
Весьма доступно раскрываются методы реализации более продвинутых приемов рендеринга. Cascaded shadow mapping, Dynamic sun shafts и многое другое ждет вас на страницах этой книги
Темы кроме алгебры — английский(если у вас с ним конечно проблемы как у меня)) ). А если ближе к предметной области — то рекомендую копать все. Я вот в определенный момент понял, что не понимаю то, о чем пишут в тех же GPU Gems или ShaderX и начал слушать алгебру с самого начала на khanacademy. Я болшьше, к сожалению, не могу вам ничего посоветовать, потому как сам еще только учусь. Я желаю вам успехов в учебе и в работе!
Андре Ламот. Программирование трехмерных игр для Windows
(https://www.ozon.ru/context/detail/id/1692806/)
Это просто вещь!!! Автор рассказывает, как написать свой конвеер рендеринга с нуля. Это определенно ваш выбор, если вы хотите понять, «как», «что» и «почему». Кто-то может сказать, что книга устарела — мол, там нет суперэффектов и шейдеров — на что я отвечу, что знания, в ней изложенные, настолько фундаментальны, что вне времени
Screen Space Ambient Occlusion