Autor Wątek: Oświetlenie: Kilka świateł na scenie i shaderki.  (Przeczytany 1302 razy)

Offline Ryba

  • Użytkownik

# Luty 18, 2006, 15:22:08
Witam,
Zalozmy ze chce miec na scenie kilka siwtel ALE nie mam z gory okreslonej ich liczby. I jak teraz napisac odpowiedni shader?? Przeciez nie moge przekazac liczby swiatel i zrobic petli for w shaderku. Nie mam pojecia jak rozwiazac ten problem.
Pozdrawiam,
Ryba

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Luty 18, 2006, 15:39:37
Jeżeli oświetlasz per-vertex to robisz kilka wersji shadera, albo ustawiasz nieużywane swiatła na kolor czarny. Te kilka wersji shadera można wygenerować automatycznie pisząc odpowiednio shader np. w CG (korzystasz z pętli, którą CG rozwinie i stałej NLIGHTS, którą różnie definiujesz dla różnych wersji).

Przy oświetleniu per-pixel zwykle renderuje się na raz tylko jedno światło, a kolejne światła sumuje się renderując ten sam obiekt kilka razy przy włączonym blendingu. Można oczywiście renderować kilka świateł jednocześnie, ale nie zawsze jest to możliwe (ograniczenia pixel shaderów 1.1-1.4 i trudność w połączeniu z niektórymi technikami cieni, np. stencil shadows). Można także w przypadku świateł statycznych renderować wiele świateł na raz używając wcześniej przeliczonego oświetlenia, zapisując potrzebne informacje na teksturach. :)