Shader: Różnice pomiędzy wersjami

Z MaSzyna
Skocz do: nawigacja, szukaj
(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