Я видел этот вопрос на SO, но здесь я хочу сосредоточиться на GFX.
Так что, по вашему мнению, какие приложения / функции должен писать / изменять каждый начинающий программист GFX, чтобы стать лучше?
Сообщество вики, так как нет «правильного ответа».
Л.Е .: Не относится к реальным играм, но к графическим функциям, например, к изменению чего-либо в движке (например, как он загружает объекты), созданию композитора и так далее.
Ответы:
Мой ответ всегда один и тот же: если вы не написали его раньше, напишите raytracer.
Вам придется иметь дело со структурами оптимизации, числовой точностью и многими другими проблемами, но вы также будете работать непосредственно с математикой света так, как это редко случается при работе со всеми взломами и аппроксимациями, которые составляют Рендерер в реальном времени.
Уберите все здание систем загрузки, модных слов недели, отложенного-того или этого-вперед, и вы, наконец, останетесь со светом, проходящим через среду. В конце концов, это все, что есть в графике.
источник
В наши дни это может оказаться малопригодным для практического применения, но написание программного рендера, по крайней мере, базового (возможно, просто с несколькими вращающимися текстурированными кубами), является полезным упражнением.
Понимание того, как самостоятельно трансформировать, проецировать, обрезать, сортировать по глубине, растеризовать и использовать полигональные карты текстур, поможет вам лучше понять, что делают 3D-оборудование и API-интерфейсы рендеринга.
источник
Хотя код не рендерится, я думаю, что написание BSP-компилятора и сопровождающего его кода обхода - хорошее упражнение в векторной математике.
Во-вторых, отложенный рендер. Не потому, что это окончательный ответ на рендеринг, но он даст вам представление о другом подходе к рендерингу.
источник
Изучите механику и навыки написания хороших шейдеров. Хотя это не на 100% необходимо во всех случаях, это ценный навык, который нужно знать.
источник