o download do demo e código fonte
Voltar ao Índice TUTORIAL
No último tutorial nós adicionamos um modelo 3D para a tela. No entanto, porque não havia luzes criadas, tivemos que desativar a iluminação no modelo completo, caso contrário ele teria aparecido preto. Neste tutorial, vamos adicionar uma luz para a cena
ApplicationManager.h /ApplicationManager.cpp
O ApplicationManager ganha duas novas variáveis:. Luz e um outdoor. A luz é um ponto na cena que é uma fonte de luz.
Ele não é directamente visível si - a luz só é visível sobre a superfície de um modelo 3D. Assim, podemos ver onde a luz é na cena vamos criar um quadro de avisos, que é um retângulo plano que sempre enfrenta a câmera, e anexar a luz como um filho do billboard.
Ao ligar a luz como uma criança do cartaz a luz irá se mover onde quer que os movimentos de outdoor. Esse tipo de apego mãe /filho é bastante comum em motores 3D, já que permite que um grupo de objetos a serem modificados de uma só vez.
Você pode usar isto para anexar uma espada de uma mão os jogadores por exemplo, e, em seguida, a espada iria ficar com o jogador enquanto se movia ao redor.
Na função de inicialização que fazer uma pequena modificação para a chamada para os addCameraSceneNodeFPS função. O modelo 3D ninja é muito pequena, ea câmera se move muito rápido em relação ao modelo. Então, aqui temos substituído alguns dos parâmetros padrão para retardar a câmera para baixo.
Nós adicionamos o modelo 3D ninja para a cena usando o mesmo código como no último tutorial.
A única diferença é que agora não desativar a iluminação.
Em seguida, criar um novo quadro de avisos chamando a função ISceneManager addBillboardSceneNode. Mais uma vez, substituir alguns dos parâmetros padrão para fazer o cartaz um pouco menor, e mais de acordo com o tamanho do modelo 3D ninja.
Nós chamamos a função setMaterialType e fornecer a bandeira EMT_TRANSPARENT_ADD_COLOR para indicar que as cores na textura atribuído ao cartaz vai ser adicionada à cena, a qual faz efectivamente as partes pretas da textura transparente.
A função setMaterialTexture é então usado para atribuir uma textura. O primeiro parâmetro define a camada de textura. Nós fornecemos a 0 porque estamos atribuindo esta como a primeira textura (e único). O segundo parâmetro é a própria textura, que neste caso é carregado a partir de um arquivo de bitmap.
A última coisa que devemos fazer é