Для початку я настійно пропоную прочитати презентацію Наґі Гофмана, що стосується фізики візуалізації. Однак, я спробую відповісти на ваші конкретні запитання, запозичивши зображення з його презентації.
Дивлячись на одну частину світла, яка потрапляє в точку на поверхні матеріалу, вона може робити 2 речі: відбивати або заломлювати. Відбите світло буде відштовхуватися від поверхні, подібно до дзеркала. Заломлене світло відскакує всередині матеріалу і може вийти з матеріалу на деяку відстань від місця, де воно ввійшло. Нарешті, кожного разу, коли світло взаємодіє з молекулами матеріалу, воно втрачає певну енергію. Якщо вона втрачає достатню частину своєї енергії, ми вважаємо її повністю поглиненою.
Цитуючи Наті, "Світло складається з електромагнітних хвиль. Оптичні властивості речовини тісно пов'язані з її електричними властивостями". Ось чому ми групуємо матеріали як метали чи неметали.
Неметали виявлятимуть як відображення, так і заломлення.
Металеві матеріали мають лише відображення. Все заломлене світло поглинається.
Спробувати моделювати взаємодію частинок світла з молекулами матеріалу було б надмірно дорого. Ми натомість робимо деякі припущення та спрощення.
Якщо розмір пікселя або площа затінення великі порівняно з відстанями входу-виходу, ми можемо зробити припущення, що відстані фактично дорівнюють нулю. Для зручності ми розділили світлові взаємодії на два різні терміни. Термін відбиття поверхні ми називаємо "дзеркальним", а термін, що виникає в результаті заломлення, поглинання, розсіювання та рефракції, ми називаємо "дифузним".
Однак це досить велике припущення. Для більшості непрозорих матеріалів це припущення нормально і не надто відрізняється від реального життя. Однак для матеріалів з будь-якою прозорістю припущення не вдається. Наприклад, молоко, шкіра, мило тощо.
Спостережуваний колір матеріалу - це світло, яке не поглинається. Це поєднання як відбитого світла, так і будь-якого заломленого світла, що виходить з матеріалу. Наприклад, чистий зелений матеріал поглине все світло, яке не є зеленим, тому єдине світло, що потрапляє до наших очей, - це зелене світло.
Тому художник моделює колір матеріалу, надаючи нам функцію ослаблення матеріалу, тобто те, як світло буде поглинати матеріал. У нашій спрощеній дифузній / дзеркальній моделі це можна представити двома кольорами, дифузним кольором та окулярним кольором. Ще до використання матеріалів, заснованих на фізичній основі, художник довільно обирав кожен із цих кольорів. Однак, здається, очевидно, що ці два кольори повинні бути пов'язані. Сюди входить колір альбедо. Наприклад, в UE4 вони обчислюють дифузний та окулярний колір наступним чином:
DiffuseColor = AlbedoColor - AlbedoColor * Metallic;
SpecColor = lerp(0.08 * Specular.xxx, AlbedoColor, Metallic)
де металевий дорівнює 0 для неметалів та 1 для металів. Параметр 'Specular' контролює чутливість об'єкта (але зазвичай це постійний 0,5 для 99% матеріалів)