Autor Wątek:  Shader paralaksy  (Przeczytany 561 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Online Stele

  • Wydział Repozytorium
  • Administrator
  • Wiadomości: 7279
    • Zobacz profil
  • Otrzymane polubienia: 963
Shader paralaksy
« dnia: 04 Kwietnia 2019, 19:00:00 »
Shader efektu paralaksy zgodnie z tutorialem: https://learnopengl.com/Advanced-Lighting/Parallax-Mapping
Wypakować i nadpisać na aktualne exe i shadery Milka: https://ci.appveyor.com/project/Milek7/maszyna/build/artifacts

https://eu07.pl/userfiles/23180/parallex_shader.7z
W paczce td ze skopanymi torami, z podpiętą depthmapą używaną do generowania normalmapy, średnio spasowaną z diffuse, na ziemi tekstura kostki brukowej a w powietrzu kostka z tutoriala.
Ilość plastrów należy uzależnić od odległości od kamery/używanej mipmapy, ale glsl 3.3 nie posiada potrzebnej funkcji w jądrze a próba użycia rozszerzenia z poziomu shadera spowodowała jedynie crash sterownika gpu.
Jakby ktoś mądrzejszy zajrzał, się nie obrażę. Zachęcam spróbować namalować sobie materiał i zobaczyć jakie efekty da się uzyskać w różnych sytuacjach.
Składnia materiału:
shader: parallax //przypisanie shadera
texture_diffuse: roadcobblestonegray1 //przypisanie tekstury diffuse+alfa
texture_normalmap: roadcobblestonegray1-normal //przypisanie tekstury normal x+y, depth, reflection
param_height_scale: 0.03 //pozorna wysokość efektu
param_height_offset: 0.015 //przesuniecie zera dla prostego trybu rysowania; połowa wysokości

W teksturze w kanałach RG umieszczamy zwykłą normalmapę XY pod opengl, w kanale B depthmapę gdzie 0=poziom wyjściowy 255=max zagłębienie, w kanale A reflectionmapę gdzie 0=brak odbicia 255=pełne odbicie.
Mój kanał youtube