TUTORIAL 03 – CRIANDO UMA FONTE DE LUZ

      Como você deve ter percebido os objetos criados até agora são pouco realistas, isto ocorre porque não possuímos em nosso ambiente uma fonte emissora de luz. Neste tutorial aprenderemos como adicionar uma luz ao nosso mapa e como criar uma fonte de luz personalizada.

      Partindo do principio de que você esta acompanhando os tutoriais a partir do inicio, você já deve saber como criar um projeto, então inicie um novo projeto ou utilize o mesmo que foi criado no Tutorial 01 ou 02.

      Primeiramente vamos utilizar a fonte de luz padrão do 3D Game Builder, que já esta disponível em todos os novos projetos criados, a “MainLight” para listar as luzes selecione a categoria “Luzes” que fica na paleta de objetos, assim todas as luzes disponíveis no projeto serão listadas na paleta de objetos, como ainda não criamos nenhuma fonte de luz para o nosso projeto só será listada a fonte de luz padrão do 3D Game Builder, a “MainLight”, então de dois cliques sobre ela, você verá que no editor de mapas uma pequena esfera será criada, esta é a representação da nossa fonte de luz, caso após você dar dois cliques sobre ela a fonte de luz não aparecer no mapa, verifique se algum objeto não está na frente dela, ou ela está dentro de algum outro objeto, note que novos objetos sempre serão criados no centro da sua tela, então caso você não encontre o novo objeto verifique se ele não esta sendo ocultado por outro objeto.

      Após adicionar a luz ao mapa você pode movimentá-la assim como foi feito com os outros objetos.

      Com a nossa fonte de luz no mapa já é possível notar que os objetos irão ganhar uma forma mais realista, movimente a luz ao redor do objeto para notar como ele se comporta em relação à luz, dependendo da posição da luz algumas faces do objeto podem ficar mais claras e outras mais escuras.

      Agora vamos aprender a criar uma fonte de luz personalizada, para isto acesse o menu Banco de Dados -> Luzes. Você visualizara a seguinte interface:

      Este é o cadastro de novas fontes emissoras de luz, nele é possível criar e editar as luzes do projeto. Vamos criar uma nova luz para o nosso projeto, para isto clique no botão “Novo”, aparecera um dialogo pedindo para informar o nome da nova fonte de luz, para o nosso exemplo vamos chamá-la de “NovaLuz”,  agora é preciso definir as propriedades desta luz, então vamos aprender o que significa cada uma destas propriedades.

      A atenuação da luz determina o quanto rápido será a diminuição da intensidade da luz em relação a distancia dos objetos. Em uma fonte emissora de luz é possível definir três tipos de atenuação. O primeiro deles é o “Quadratic Attentuation” (Atenuação Quadrática) onde a intensidade da luz diminui proporcionalmente ao quadrado da distancia. O segundo é o “Linear Attentuation” (Atenuação Linear) onde a intensidade da luz diminui proporcionalmente a distancia e a “Constant Attentuation” (Constante de Atenuação). E o terceiro tipo é uma união dos dois itens anteriores permitindo uma atenuação quadrática juntamente com a linear.

      - LinearAttentuation: Valor que determina o quanto rápida será a diminuição da intensidade da luz proporcionalmente a distancia.
      - QuadraticAttentuation: Valor que determina o quanto rápida será a diminuição da intensidade da luz proporcionalmente ao quadrado da distancia.
      - ConstAttenuation: Em efeito diminui o brilho da luz em uma quantidade relativa.
      - LightStyle: Define o tipo de luz a ser emitida, este tipo pode ser “Spot Light”, “Omni Light” ou “Parallel Light”. O tipo Spot Light é uma luz que ilumina em certa direção como uma tocha, caso o “Spotcutoff” possua o valor de 180 graus então a luz iluminara em todas a direções. O segundo tipo de luz é o “Omni”, uma fonte de luz deste tipo é como uma representação do sol, ilumina o ambiente não importando o quanto distante os objetos estão da fonte emissora. O outro tipo de luz é o “Parallel”, neste tipo de luz os objetos são auto iluminados.
      - Shining: Ativa ou desativa a luz emitida.
      - SpotCutOff: Especifica o ângulo de expansão da luz. O ângulo deve estar entre 0 e 90 graus para a luz do tipo “Spot Light” funcionar, ou então com um valor de 180 graus para que a luz tenha um distribuição uniforme em uma certa direção.
      - SpotExponent: É usado para especificar o quanto focalizada a luz será. Somente são aceitos valores entre 0 e 128.
      - SpotDirection: São as coordenadas X, Y e Z que definem a direção apontada por uma luz do tipo “Spot”. Se o “Spotcutoff” possuir um ângulo de 180 graus o “SpotDirection” não terá efeito.
      - Ambient Color: Representa a cor de fundo da luz, é definida usando o padrão RGB e valor alpha da cor.
      - Diffuse Color: Determina a cor da fonte de luz, é definida usando o padrão RGB e valor alpha da cor.
      - Specular Color: Determina a cor da fonte de luz, é definida usando o padrão RGB e valor alpha da cor.

      Para o nosso tutorial vamos criar uma luz vermelha para podemos ver como um objeto pode estar sendo iluminado por diferentes fontes de luz. Então para a “NovaLuz” defina as seguintes propriedades:

      ConstAttenuation: 1                                   Ambient Color: Vermelho Claro
      LinearAttentuation: 0                                Specular Color: Vermelho
      QuadraticAttentuation: 0                           Diffuse Color: Vermelho
      LightStyle: Spot                                          SpotDirection: (0, 0, 0)
      Shining:True
      SpotCutOff: 180


      Agora salve a nova Luz clicando no botão “Salvar” e esta pronta a nossa luz vermelha. Feche a janela de edição de luzes e adicione a nossa “NovaLuz” ao mapa, para isto basta selecionar a categoria Luzes na paleta de objetos e dar um duplo clique sobre a “NovaLuz”. Posicione a luz do outro lado do objeto em relação a “MainLight” que já estava no mapa.

      É possível notar que a face do cubo que esta do lodo da “NovaLuz” ficou completamente vermelha e a face que esta do lado da “MainLight” ficou branca, mas com um leve tom de vermelho isso porque a “NovaLuz” ainda esta atingindo em parte esta face.

      Este é apenas o mais básico exemplo do que é possível fazer com as fontes emissoras de luz, em um mapa é possível adicionar até 8 fontes de luz, mas não é aconselhável utilizar muitas luzes em um cenário, é melhor primeiro entender todas as propriedade de uma luz e criar a fonte de luz adequada ao mapa que esta sendo desenvolvido, por exemplo em mapa de um ambiente externo o ideal é utilizar uma fonte de luz única representando o sol, já em um ambiente interno seria adequado usar uma ou mais luzes menos intensas e localizadas em pontos estratégicos do ambiente para criar um cenário mais realista.

      No próximo tutorial aprenderemos como criar uma textura e aplicá-la em um objeto, assim será possível começar a criar os primeiro cenários mais realistas.