Перейти к содержанию

Рекомендуемые сообщения

 
 
18 минут назад, AC777 сказал:

Например?

Все вопросы, можешь в Discord, лично разработчику задать. Ниже, его ответы, по теме...

 

Переходим к рендеру, тут совсем другой мир, и тут есть насколько я помню только одно настакивающееся барахло, это источники света, у каждого источника там есть квери-запросы, волуметрики и прочая ерунда которая не мало отжирает. Как это выносить на DX11? Через ж... отложенные контексты, т.е. вы бьете рендер на логические части, многопоточно готовите данные для отрисовки, потом это все синхронизируете и друг за другом подготовленные данные засовываете в команд листы, а потом где-то перед пресентом кадра их исполняете. В DX12 такая архитектура используется по умолчанию, но у нас появляются две мощнейшие киллер-фичи этого API, это реальная GPU параллелизация, не на уровне потоков, а на уровне логики, т.е. мы реально можем параллельно готовить данные для отрисовки на GPU и просчитывать тот же самый постпроцессинг которого горы просто во всяких шейдерных модах типа SSS, у DX11 нету GPU-параллелизации, только CPU.

Если так я понятно объясняю, то могу продолжить если интересно. Т.е. немного о своем видении будущего устройства рендера рассказать.

К слову на видосе в новостях я уже добавил для теста реальную GPU-параллелизацию для загрузки текстур (название видоса намекает). Т.е. текстуры больше не вызывают stall процессора. Ладно, справедливости ради я подобное и на DX11 сделал через костыль, но тут это абсолютно легальное и каноничное решение предназначенное для параллельной загрузки ресурсов в GPU (т.е. рендер пошел считаться дальше, а ресурсы отдал грузить совершенно другой очереди, и это прям супер просто делается на DX12). Т.е. решение на DX11 подвержено багам, решение на DX12 предсказуемо, надежно и более эффективно, так как драйвер явно понимает что вы хотите делать в этой очереди.

Про CPU я дополню еще неприятные моменты это рантаймовая загрузка объектов, да-да те самые фризы в Баре. И с этим мы уже тоже ведем борьбу, у нас полностью вынесена загрузка текстур и звуков в другие потоки, это значительно снижает пролаги, но не до конца, очень много сжирается загрузкой модели которая связана с очень дорогим вызова луа-скрипта. Я практически уверен что я понял как это все барахло просто вырезать и переписать на C++ чтобы это тоже все вынести на другие потоки, возможно мы с Баком когда-то этим займемся. Может быть фризы уйдут, может быть нет, не сделаешь не узнаешь.

Ну а далее опять к рендеру. Если хватит моральных сил, то я бы переписал весь фронтенд на вычислительные шейдеры и считал бы все это параллельно, т.о. мы сэкономим кучу времени для каких-то дополнительных эффектов, или просто более качественных существующих. Есть отдельные решения для растительности и травы, DX12 позволяет это все сделать полностью на GPU, DX11 не позволяет. Концепты не вижу смысла рассказывать, думаю никому они тут не нужны.

Вкратце надеюсь понятно ответил на вопрос, если что-то еще будет интересно то спрашивайте, я открыт к диалогу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, Питерский-Ромыч сказал:

для каких-то дополнительных эффектов

Всё ясно. Удачи в реализации.


:u26A0:  Разработчик NLC7 AC и Stalker AC mod (основной проект).  :u26A0:

Если есть 18 лет и нравятся сложные игры, то жми сюда >>> Stalker AC mod

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу