Panda3D/Manual/Iluminação: diferenças entre revisões

[edição verificada][revisão pendente]
Conteúdo apagado Conteúdo adicionado
He7d3r.bot (discussão | contribs)
Atualizando a categoria do livro, com AutoCat (detalhes). utilizando AWB
Moretti (discussão | contribs)
-typos
 
Linha 1:
'''BasicoBásico de iluminação'''
 
No mundo real, se vocevocê coloca uma lampadalâmpada em uma sala, objetos naquela sala seraoserão iluminados. Por exemplo, se vocevocê colocar uma lampadalâmpada de mesa em sua sala, aquela lampadalâmpada vai automaticamente iluminar o seu sofasofá e sua cadeira. Em um motor 3d como o panda3d, luzes não iluminam coisas automaticamente. Ao invés disso, vocevocê precisa dizer ao sofasofá e áà cadeira para serem iluminados pela lampadalâmpada.
 
Então resumindoResumindo, iluminar uma cena no panda3d consiste de dois passos:
1. Criar as luzes e posicionaposicioná-las dentro da cena
2. Falar aos outros objetos para serem iluminados pelas luzes
 
Panda3D define quatro diferentes tipo de objeto de luz: ponto, direcional, ambiente e luz de areaárea. Cada uma dessas é um nodo que deve ser ligado em algum lugar do grafo de cena. Como qualquer coisa que vocevocê coloca na cena, luzes tem posição e orientação, que são determinadas por operações basicasbásicas do grafo de cena como setPos(), setHpr(), etc. O metodométodo lookAt() é particularmente útil para apontasapontar luzes de areaárea e direcionais para um objeto particular. O codigocódigo áa seguir insere uma luz direcional na cena:
 
luz_d = DirectionalLight( 'minha luz direcional' )
ldnp = render.attachNewNode( luz_d )
 
Note que ao contrário de um bulbo de luz real, objetos luz não são visiveis. Apesar de vocevocê naonão poder ver a luz do panda3d, vocevocê pode ver o efeito que ela tem na geometria ao seu redor. SESe vocevocê quiser fazer as luzes visiveisvisíveis, um truque simples é simplesmente carregar um modelo simples ( como uma esfera ) e parentaparentá-la diretamente áà propriaprópria luz.
 
Criar a luz e a colocar no grafo de cena não vai, por si só, ter qualquer efeito visivelvisível. Seu proximopróximo passo estaestá em falar para os objetos para serem iluminados pela luz. Para fazer isso, use o metodométodo nodePath.setLight(), que liga a luz para o nodepath indicado e qualquer coisa abaixo dele no grafo de cena.
 
In the simplest case, you want all of your lights to illuminate everything they can, so you turn them on at render, the top of the scene graph: