Вообще снова три раза пытался продвинуться в пассе с поинт-лайтами и три раза отлетал из-за краша рендера. Мне не нравится этот пасс на основе текстуры позиций, и хочется куллить стенсилем что дирекшонал, что поинты.
Начну еще разок сначала
Начну еще разок сначала
This media is not supported in your browser
VIEW IN TELEGRAM
Вечер я провел за поиском текстуры глубины, которую сделал две недели назад в GBuffer пассе. Надо почаще нажимать на маленькие незаметные ворнинги в дебагере)
Самый примитивный денро-фекальный деферред готов. Надо причесать этого Франкенштейна, сделать приличные шейдера и свет. Дальше Taile Based дефферед, аргумент буфер, а потом посмотрим.
This media is not supported in your browser
VIEW IN TELEGRAM
Визуально ничего, просто порефакторил и поделил команд буферы на тот, что не рисует в экран (тени и g-buffer), и команд буфер, который рисует на экран (drawable текстуру)
setVertexBytes лишь сахар над метал-буффером и подходит для констант общим размером до 4 кб
вот они справа на лево: байт, сайз, страйд
https://habr.com/ru/companies/hh/articles/546856/
https://habr.com/ru/companies/hh/articles/546856/
Хабр
Память в Swift от 0 до 1
В этой статье мы рассмотрим принципы работы памяти в Swift и разберемся, как Swift располагает байты в памяти, как управляет памятью, и что из себя представляет жизненный цикл объектов. Содержание Что...
Forwarded from WellMOR
если структурка относительно большая (больше 64байт), то желательно держать рядом-используемые переменные - рядом.
Типа у тебя в шейдере в вертексной части используются position и lightType, а остальное во фрагментной. Вот их группируешь рядом.
Типа у тебя в шейдере в вертексной части используются position и lightType, а остальное во фрагментной. Вот их группируешь рядом.
чет выравнивая по 16 байт в нативном метале будто задают другие правила компоновки данных
Best Practices. Старенькие, без актуальных штук, но все же
https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/MTLBestPracticesGuide/index.html#//apple_ref/doc/uid/TP40016642-CH27-SW1
https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/MTLBestPracticesGuide/index.html#//apple_ref/doc/uid/TP40016642-CH27-SW1
Apple
Metal Best Practices Guide: Fundamental Concepts
Describes the recommended best practices for developing a Metal game or app.
Media is too big
VIEW IN TELEGRAM
Попытка улучшить поинтлайты через коэффициенты аттенуации. Радиуса, соответственно, больше нет. Для пасса с маской он расчитывается через люминанс. Как указано тут. https://gamedev.stackexchange.com/questions/51291/deferred-rendering-and-point-light-radius
Пока не уверен, особенно в подборе коэффициентов
Пока не уверен, особенно в подборе коэффициентов
Forwarded from Dima Skupejko
ты об этих коэффициентах?
если да, то да — сам настраиваешь характеристику света
просто же в реальности (если не ошибаюсь) яркость падает на величину квадрата расстояния (третий элемент в знаменателе)
но это не всегда приемлемо в графонии для нужного эффекта
а так можно влепить себе, например, линейную зависимость — и всё
если да, то да — сам настраиваешь характеристику света
просто же в реальности (если не ошибаюсь) яркость падает на величину квадрата расстояния (третий элемент в знаменателе)
но это не всегда приемлемо в графонии для нужного эффекта
а так можно влепить себе, например, линейную зависимость — и всё