Panda3D/Manual/Shaders

Origem: Wikilivros, livros abertos por um mundo aberto.

O que são Shaders?

Em dado tempo cada placa de vídeo 3D possuía uma lista fixa das coisas que ela poderia fazer. Inicialmente a lista de possibilidades era curta: As placas poderiam desenhar polígonos, realizar alguma texturização basica, um pouco alpha blending, e era só. Com o passar do tempo, a lista de possibilidades cresceu bastante: buffers offscreen, multisampling, transformação de hardware e iluminação... Toda vez que alguém pensava em um novo truque de renderização era precisa criar uma nova placa de vídeo com a nova habilidade. Pessoas são criativas, então a lista de possibilidades excedeu 350 - é verdade, veja a extensão de registro da OpenGL! Cada uma dessas possbilidades correspondiam á cada uma das centenas de truques de renderização que as pessoas tinham pensado até aquele dado momento. Mesmo assim, as pessoas continuaram criando novas habilidades para placas de vídeo, já que sua criatividade para inventar novas tecnicas de renderização não estava nem de longe esgotada.

Eventualmente alguém percebeu que as placas de vídeo precisavam ser mais parecidas com computadores. Quando você queria que seu computador tivesse uma nova habilidade você não cria um novo computador. Você instala uma nova peça de software. Adicionando o software dá novas habilidades á seu computador. Se você pudesse baixar novos softwares para sua placa de vídeo, eles chegaram á conclusão que não seria necessário criar uma nova placa de vídeo toda vez que alguém pensasse em um novo truque de renderização. Bastava você baixar a nova habilidade direto na placa de vídeo, bem an hora que precisasse

Então posteriormente os shaders foram criados. Shaders são softwares para placas de vídeo. shaders parecem muito com programas de computador, mas eles são executados pela placa de vídeo, não pelo computador. Se a placa de vídeo suporta shaders, ela pode ser atualizada para suportar quase qualquer comportamento necessário. A única coisa que limita a placa de video baseada em shaders é a sua velocidade.

Uso Automático de Shaders

Desde a ersão 1.5.0, Panda têm várias técnicas de renderização avançadas como iluminação por pixel, mapeamento normal, mapeamento gloss, mapeamento de brilho, HDR, bloom e traçado cartoon. Para fazê-los funcionar, Panda está sorrateiramente carregando shaders para sua placa de vídeo. Você não precisa escrever shaders para usar essas habilidades, ou mesmo saber muito sobre shader. Você apenas liga essas habilidades. Para aprender como ligar essas habilidades, leia sobre essas habilidades em sua propria sessão do manual.

Escrevendo seus próprios Shaders

Se o que você quer fazer é uma das coisas que o Panda já suporta automaticamente, como iluminação por pixel, mapeamento normal, mapeamento gloss, mapeamento de brilho, HDR, bloom ou traçado cartoon, você não precisa escrever qualquer shader. Apenas deixe o Panda cuidar disso para você.

Mas se você quiser qualquer coisa além disso --- por exemplo, se você quiser realizar uma renderização que lembra pintura, ou reflexões de água, lens flare, ou... bem, a imaginação é o limite --- nesse caso você precisa escrever os seus próprios shaders. As sessões seguintes vão lhe mostrar como fazer isso no Panda3D