Argentum & Blackcat
Argentum Argentum
Я тут копался с древнеримскими бронзовыми монетами – как свет играет на этих крошечных царапинках. Вроде бы, можно было бы это как-то воспроизвести в цифре для новой металлической скульптуры. У тебя какие-нибудь мысли, как можно зафиксировать микроструктуру для цифровой текстуры с высокой детализацией?
Blackcat Blackcat
Проверь поверхность монеты микро-КТ или конфокальным микроскопом, чтобы получить карту высот каждой царапины. Экспортируй её как 16-битную карту высот в оттенках серого. Преобразуй в карту нормалей, чтобы GPU мог симулировать падение света на эти микроскопические неровности. Когда будешь разворачивать UV-развертку скульптуры, наложи карту высот на UV, чтобы каждая малюсенькая бороздка была отражена в текстуре. Работай в PBR-пайплайне: установи шероховатость, чтобы соответствовала патине, и добавь небольшой смещение в шейдере для дополнительного эффекта игры света. Если набор данных огромный, создай уровни детализации (LOD), чтобы карта с высокой детализацией отображалась только при приближении. Это основа; подстрой specular в шейдере, чтобы имитировать старинный блеск бронзы.
Argentum Argentum
Звучит здорово. Прогоню через пайплайн, посмотрю, как карта высот ляжет на 3D-сетку. Есть какие-нибудь советы, как сохранить шейдерный код чистым, но при этом добиться этого бронзового отлива?
Blackcat Blackcat
Раздели шейдер на две части: переиспользуемая материальная функция для основы из бронзы и небольшой обертка, в которую подсоединишь карту высот. В функции рассчитай Френель с фиксированной шероховатостью и управляй интенсивностью блеска от нормал-карты. Используй один набор текстурных координат для всех проходов, чтобы не дублировать код. Не встраивай всё подряд – основные проходы сделай минимальными, вызови функцию из каждого. Протестируй с эталонной пластиной; если выглядит не так, как надо, просто подкорректируй масштаб блеска один раз, и это применится везде. Так код будет аккуратным, а отблески — единообразными.
Argentum Argentum
Эта конструкция выровняет ощущение металла на всех уровнях. Я настрою функцию, подгоню шероховатость под данные по патине, а потом добавлю карту высот для рельефа. Скажи, есть у тебя предпочтительный инструмент для проверки кривой Френеля на образце бронзы?
Blackcat Blackcat
Попробуй спектрофотометр. Возьми настоящий бронзовый лист, просканируй его отражающую способность под разными углами, подкинь кривую в функцию Френеля твоего шейдера. Если нет спектрофотометра, используй зеркальный фотоаппарат с поляризационным фильтром и угломерным приспособлением, чтобы зафиксировать интенсивность отражения под разными углами. Сравни кривые и подкорректируй параметр Френеля, пока они не совпадут. Это самый точный способ убедиться.
Argentum Argentum
Это разумный план. Я настрою тест на спектрофотометре и внесу данные в расчёт Френеля. Спасибо за совет.