W załączniku wszystkie shadery w wariantach z podpiętą mapą specular/glossines/metalic oraz kostka testowa, pomocna w doborze parametrów pod materiał, jaki chcecie utworzyć. Przykładowy wpis dla niej na TD:
node -1 0 wzornik model 0 10 0 0 kostka.t3d none endmodel
Specular to światło odbite od źródła bezpośrednio do kamery, zgodnie z prawem odbicia. Im większy, tym więcej światła będzie odbijane do kamery pod pewnymi kątami. UWAGA. Model Phonga-Blinna pozwala złamać prawo zachowania energii, gdzie materiał odbija więcej światła, niż na niego pada, więc trzeba mieć wyczucie.
Glossines to wykładnik skupienia, określający intensywność światła odbitego przy odchylaniu kamery od kąta odbicia. Dla niskich wartości, odbłyski będą widoczne w dużym zakresie kąta i przy niższych wartościach specular. Przy wyższej wartości tylko w linii wektora odbicia i przy wyższych wartościach specular, dając węższą pręgę/mniejszy punkt.
Metalic określa kolor światła odbitego. Dla materiału niemetalicznego światło odbite ma kolor światła padającego. Dla materiału metalicznego, kolor materiału.
Nową mapę podpinacie do materiału jako texture_specgloss:
Jest to tekstura RGBA, gdzie kanały oznaczają:
R - siła specular
G - glossines
B - metalic
A- nieużywany, ustawiać na 0 (czarny)
Pojedyncze kanały tekstury kostki testowej w załącznikach dla lepszego zrozumienia.
W podstawowych shaderach (bez tej mapy) wartości te były stałe dla całego materiału i wyrażały się:
specular: (1/2 sumy składowych koloru tekstury diffuse) * param_specular
Dla braku param_specular było to 1/3 specular zdefiniowanego w t3d dla geometrii nieprzezroczystej i 3/2 dla geometrii przezroczystej.
glossines: param_glossiness lub dla braku domyślnie 10.
metalic: 1 dla ujemnego param_glossiness lub 0 dla dodatniego (domyślnie)
W shaderach z mapą wartości są zależne od tekstury i wyrażają się:
specular: kanał specular (R) * param_specular
glossines: kanał glossines (G) * 8 * param_glossiness Daje to zakres 0-80 bliskie popularnym shaderom o zakresie 0-64, do których tekstury znaleźć można w sieci.
metalic: 1 dla kanału metalic (B) > 0.5, 0 dla mniejszego. Należy stosować wartości skrajne B=0 lub B=255.