Shader: Różnice pomiędzy wersjami
(Utworzono nową stronę "Pliki shaderów GLSL znajdują się w katalogu <code>shaders</code> Shadery definiowane przez materiał konstruowane są z plików <code>vertex.vert</code> i <code>mat_...") |
|||
Linia 11: | Linia 11: | ||
<code>#texture (name, location, components)</code> | <code>#texture (name, location, components)</code> | ||
− | - definiuje teksturę przypinaną w pliku .mat. <code>name</code> jest używany jako nazwa samplera który zostanie podpięty do programu i jako alias numeru jednostki w pliku .mat. <code>location</code> ustala numer jednostki tekstury, numeracja kolejnych tekstur musi zaczynać się od 0 i zwiększać się o 1 przy następnej teksturze. | + | - definiuje teksturę przypinaną w pliku .mat. <code>name</code> jest używany jako nazwa samplera który zostanie podpięty do programu i jako alias numeru jednostki w pliku .mat. <code>location</code> ustala numer jednostki tekstury, numeracja kolejnych tekstur musi zaczynać się od 0 i zwiększać się o 1 przy następnej teksturze. <code>components</code> ustala format ładowanej tekstury, musi być jednym z: <code>R</code>, <code>RG</code>, <code>RGB</code>, <code>RGBA</code>, <code>sRGB</code>, <code>sRGB_A</code>. (format jest właściwością tekstury a nie shadera!. jeżeli tekstura zostanie załadowana w innym materiale z innym formatem, użyty format jest dowolny) |
<code>#param (name, location, offset, size, default)</code> | <code>#param (name, location, offset, size, default)</code> |
Aktualna wersja na dzień 10:51, 20 lip 2018
Pliki shaderów GLSL znajdują się w katalogu shaders
Shadery definiowane przez materiał konstruowane są z plików vertex.vert
i mat_X.frag
, gdzie X jest nazwą podaną w pliku .mat.
Do każdego programu automatycznie przypinane są tekstury shadowmap
oraz envmap
Dodatkowo obsługiwane są specjalne dyrektywy:
#include <X>
- zastępuje dyrektywę treścią pliku shaders/X
. Wirtualny plik common
dołącza wbudowane w exe deklaracje struktur UBO przekazywanych do shadera: https://github.com/Milek7/maszyna/blob/gfx-work/gl/glsl_common.h
#texture (name, location, components)
- definiuje teksturę przypinaną w pliku .mat. name
jest używany jako nazwa samplera który zostanie podpięty do programu i jako alias numeru jednostki w pliku .mat. location
ustala numer jednostki tekstury, numeracja kolejnych tekstur musi zaczynać się od 0 i zwiększać się o 1 przy następnej teksturze. components
ustala format ładowanej tekstury, musi być jednym z: R
, RG
, RGB
, RGBA
, sRGB
, sRGB_A
. (format jest właściwością tekstury a nie shadera!. jeżeli tekstura zostanie załadowana w innym materiale z innym formatem, użyty format jest dowolny)
#param (name, location, offset, size, default)
- definiuje dodatkowy parametr przekazywany do programu w UBO modelu. name
ustala alias parametru w pliku .mat. location
i offset
ustala w którym indeksie i pozycji tablicy param ma znaleźć się parametr. default
ustala wartość domyślną gdy nie jest podana w .mat:
required
- NaN, z wypisaniem błędu do errors
nan
- NaN
zero
- 0.0
one
- 1.0
ambient
- właściwość ambient submodelu
diffuse
- właściwość diffuse submodelu
specular
- właścwiość specular submodelu