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
ты об этих коэффициентах?
если да, то да — сам настраиваешь характеристику света
просто же в реальности (если не ошибаюсь) яркость падает на величину квадрата расстояния (третий элемент в знаменателе)
но это не всегда приемлемо в графонии для нужного эффекта
а так можно влепить себе, например, линейную зависимость — и всё
если да, то да — сам настраиваешь характеристику света
просто же в реальности (если не ошибаюсь) яркость падает на величину квадрата расстояния (третий элемент в знаменателе)
но это не всегда приемлемо в графонии для нужного эффекта
а так можно влепить себе, например, линейную зависимость — и всё
This media is not supported in your browser
VIEW IN TELEGRAM
attenuation = (1.0 / (0.2 + lightDist * lightDist));
minLuminance = 0.03
luminaceCoeffs = (0.2126, 0.7152, 0.0722)
luminance = dot(color, luminaceCoeffs)
radius = sqrt(luminance / minLuminance)
minLuminance = 0.03
luminaceCoeffs = (0.2126, 0.7152, 0.0722)
luminance = dot(color, luminaceCoeffs)
radius = sqrt(luminance / minLuminance)
This media is not supported in your browser
VIEW IN TELEGRAM
attenuation = (1.0 / (costantOffset + lightDistance * lightDistance)) * (1.0 - pow(lightDistance / lightRadius, 4));
График этой аттенуации, действительно 0 на заданном радиусе
https://www.desmos.com/calculator/vnubu75gny
https://www.desmos.com/calculator/vnubu75gny
Desmos
Desmos | Graphing Calculator
Explore math with our beautiful, free online graphing calculator. Graph functions, plot points, visualize algebraic equations, add sliders, animate graphs, and more.
Forwarded from Иван Валерьевич
Я тоже в пространствах плаваю. Завел себе короче профессиональную сцену с плейном и шариками, сразу стало видно, как я накосячил с поинтами. Но вроде поправил. Поинты у меня в основном во вью считаются. А еще круто было расположить их центром прям по высоте Плейна и искать почему дот направления до света и нормалей в 0 (2й скрин)
Forwarded from SergeyK
Зацените. Более дешёвая формула синуса