COMMAND ENCODER (Barkar Ivan)
163 subscribers
168 photos
72 videos
17 files
108 links
Cool shading, nice ball moment
Download Telegram
косяки после восстановления z уже у мировых нормалей. Вероятно, у рендер таргета придется забирать все 3 компонента
и распихивать рафнес и металлик по свободным альфа каналам

или проблема read вместо sample, но фильтрация тут лишняя
консоль нашел 👌
Вообще снова три раза пытался продвинуться в пассе с поинт-лайтами и три раза отлетал из-за краша рендера. Мне не нравится этот пасс на основе текстуры позиций, и хочется куллить стенсилем что дирекшонал, что поинты.
Начну еще разок сначала
Да в попу ваш метол и стенсиль туда же
Варик определить normalMatrix (трансформирует нормаль в мировую) в шейдере, если не собирать на CPU и слать в Uniforms/FrameData
маска поинт-лайтов
XCode лучший
Объединяю лаитинг пасс в один, а комманд буффера два оставил зачем-то.
Проверял его просто
еще подсказка
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 кб
можно и лучше
Forwarded from WellMOR
если структурка относительно большая (больше 64байт), то желательно держать рядом-используемые переменные - рядом.

Типа у тебя в шейдере в вертексной части используются position и lightType, а остальное во фрагментной. Вот их группируешь рядом.
чет выравнивая по 16 байт в нативном метале будто задают другие правила компоновки данных