О да, пришёл в игрострой примерно в 2015 - очень рад, что успел совместно поработать с людьми, которые пилили Корсаров (в том числе мою любимую вторую часть), и послушать всяких баек и инсайдов обо всех любимых игровых студиях. Да и со статьёй в целом согласен, правда знаю девушек, которые достаточно долго в геймдеве именно на позиции программистов.
А какие именно группы состояний кэшируются? Т.е., грубо говоря кэшируется уникальная комбинация RasterizerState, DepthStencilState, BlendState? Или туда ещё добавляются состояния сэмплеров или ещё какие-нибудь?
Я рассказал про алгоритм, который исследовал в свободное время.
Про Skyforge, к сожалению, ничего не могу сказать. Возможно, вам будет интересно почитать эту статью и комментарии к ней. Но, например, AW сделан на CryEngine, в котором для GI используется Light Propagation Volumes.
Да, это хорошая идея в целом. Убирает некоторые артефакты.
Вообще, если начинать трассировку с самого нижнего уровня, то кроме самоосвещения может возникнуть проблема самозатенения. Здесь собраны предложения от других разработчиков, как это можно обойти.
Не изучал глубоко PRT, но насколько понимаю, здесь отличие в отсутствии precomputed шага, если не считать таковым вокселизацию и построение SVO, которые работают достаточно быстро.
Также алгоритм больше заточен на динамику, перестройку сцены на лету и другие вещи. Думаю, можно придумать подходы, при которых, например, можно было бы в динамике менять свойства материалов в вокселях, и это бы ничего не стоило, т.к. пересчитывая свет мы бы опирались на уже существующее SVO.
Да, пересчёт освещения довольно дорогой, но есть подходы по оптимизации.
С другой стороны, в UE4 использовали и VCT, и лайтмапы, и отдали предпочтение последним.
Важно отметить, что стоит стремиться к тому, чтобы размер текселя на экране совпадал с пикселем. Поэтому, выбирая плотность, стоит также отталкивать от того, сколько места будет занимать тот или иной полигон на экране (на каком-нибудь эталонном 1920х1080).
О да, пришёл в игрострой примерно в 2015 - очень рад, что успел совместно поработать с людьми, которые пилили Корсаров (в том числе мою любимую вторую часть), и послушать всяких баек и инсайдов обо всех любимых игровых студиях. Да и со статьёй в целом согласен, правда знаю девушек, которые достаточно долго в геймдеве именно на позиции программистов.
Кстати, судя по результатам эксперимента с телефонами, падение способностей там не сильно драматичное, менее 10%.
А какие именно группы состояний кэшируются? Т.е., грубо говоря кэшируется уникальная комбинация RasterizerState, DepthStencilState, BlendState? Или туда ещё добавляются состояния сэмплеров или ещё какие-нибудь?
Про Skyforge, к сожалению, ничего не могу сказать. Возможно, вам будет интересно почитать эту статью и комментарии к ней. Но, например, AW сделан на CryEngine, в котором для GI используется Light Propagation Volumes.
Вообще, если начинать трассировку с самого нижнего уровня, то кроме самоосвещения может возникнуть проблема самозатенения. Здесь собраны предложения от других разработчиков, как это можно обойти.
Также алгоритм больше заточен на динамику, перестройку сцены на лету и другие вещи. Думаю, можно придумать подходы, при которых, например, можно было бы в динамике менять свойства материалов в вокселях, и это бы ничего не стоило, т.к. пересчитывая свет мы бы опирались на уже существующее SVO.
Да, пересчёт освещения довольно дорогой, но есть подходы по оптимизации.
С другой стороны, в UE4 использовали и VCT, и лайтмапы, и отдали предпочтение последним.