Aula9 material

19
Projetos RAD : Unity 3D Materiais, Texturas e Luzes Augusto Bülow

description

Aula para adição de materiais no unity3D

Transcript of Aula9 material

Page 1: Aula9 material

Projetos RAD : Unity 3DMateriais, Texturas e Luzes

Augusto Bülow

Page 2: Aula9 material

Unity

• Materiais = imprimir texturas e efeitos sobre formas e objetos

• Importância das texturas– Essencial

• Textura = bitmaps representativos• Efeitos:

– Parâmetros gerais de reflexão e luz

– Shaders

Page 3: Aula9 material

Unity

• Texturas:– Bitmaps em basicamente todos os formatos

• (BMP, TGA, JPG, GIF, TIF)

– Restrições de tamanhos (texturas):• Largura e comprimento precisam ser em potencia de 2

• Ex: 64x 64 (pixels), 256 x 512, 1024x128, 1024x1024*

– Conceito Tile • Texturas preparadas para repetição • Lados da textura se conectam sem marcas visiveis

Page 4: Aula9 material

Unity

• Tile exemplo:– Textura onde os

lados se encaixam– Repetição, definição

de escala = número de repetições

Page 5: Aula9 material

Unity

• Conceitos Texturas:– JPG – arquivos compactados

• Perda em qualidade geral• Processamento : descompactar em tempo real

– TGA, TIF• Arquivos com camada ALPHA

• Transparência

• Uso da camada ALPHA em alguns Shaders

Page 6: Aula9 material

Unity

• Conceitos Texturas:– Transparência = camada alpha (TGA, TIF,...)– Branco = sólido, visível

– Preto = transparente

– Grayscale = nível de transparência

Page 7: Aula9 material

Unity

• Criando Materiais – Importar BMAP – textura

• Assets -> Import New Asset....• Localizar BMP: exemplo muro01.bmp

– Criar material• Assets -> Create -> Material

• Diffuse : material básico

• Selecionar BMAP da lista

• 1

Page 8: Aula9 material

Unity

• Diffuse: material básico– Opaco– Textura + coloração adicional

• Definição de Tiling– Repetição em X e Y na

superficie– Offset: deslocamento em

pixels X e Y = alinhamento da textura na superfície

• 1

Page 9: Aula9 material

Unity

• Atribuir material à objetos• Selecionar objeto• Componente Renderer:

– Material -> Selecionar

• Definição de tiling por material

• Possível criar mais de um material com mesmo BMP, e diferentes Tilings

• Ex: criar material muro1-mini, com tiling dierente e aplicar

• 1

Page 10: Aula9 material

Unity

• Shaders estão diretamente relacionados aos materiais, na Unity

• Shaders – Sombreadores – adicionam luz, sombra na imagem– Processamento adicional sobre a imagem visível

• (por pixel, por vértice)

– Necessidade de processamento (elevada)– Melhora considerável na imagem final– Simulação de detalhes sem necessidade de malha 3D

• Barba, vincos de uma parede, pelos, glow, etc

• 1

Page 11: Aula9 material

Unity

• Coleção de Shaders Unity• Cerca de 30 shaders, em 6 famílias básicas• Shaders Básicos:• 1. Bump:

– simulação de relevo na textura

– Mapa azul / magenta auxiliar

• 1

Page 12: Aula9 material

Unity

• Definindo um shader Bump, um “mapa azul” será necessário

• Conversão de Bmaps em Bump, DOT3 : programas auxiliares

• Conversão na Unity, durante a importação do Bmap: – Flag: Generate Bumpmap

• Criar material muro-bump

Page 13: Aula9 material

Unity• Shaders calculados em relação a incidência de luz

sobre a superfície / sobre o pixel específico• Necessidade de Luz definida

– Mais especificamente, direção do Sol no jogo

– Outras fontes pontuais de luz atuando no objeto *

• Luz dá vida ao Shader (e ao game)

• 1

Page 14: Aula9 material

Unity - Lights• Direcional – simulação de luz do sol• Proveniente de um ponto no infinito, até o infinito

• Cobre todo mapa, e têm uma direção (ângulos X, Y, Z)

• Posição X,Y,Z principalmente para efeitos Flare– Olhando para o sol = camera flare

• Possível alterar pos e ângulo em tempo-real – Simulação do dia

• 1

Page 15: Aula9 material

Unity – Lights• Point – ponto de luz

– Abertura ou alcance da luz = Range– Abertura esférica em relação a seu

centro– Definição de Cor – Attenuate: diminui em relação a

distância– Efeitos adicionais:

• Flare: brilho na câmera, quando visível• Draw Halo: simulação de luz

volumétrica

• 1

Page 16: Aula9 material

Unity – Lights• Point – ponto de luz • Todos parâmetros alteráveis em tempo real • Exemplo:

var tempo = 0.1;function Update () {

tempo += 1 * Time.deltaTime;if (tempo >= 0.5) {

tempo = 0;var luz = GetComponent(Light);if (luz.range > 0) {

renderer.material.color.r = 0;luz.range = 0;}

else {renderer.material.color.r = 255;luz.range = 10;}

• 1

Page 17: Aula9 material

Unity - Lights• Spot – faixo de luz direcional, com cone de abertura

– Spot: uma lanterna ou refletor

• Parametros básicos:– Cor, intensidade– Spot Angle : ângulo de abertura do spot– Sua direção (ângulos) é fundamental

• 1

Page 18: Aula9 material

Unity - Lights• Exemplo básico

– atachar Spot ao player– Colocar o spot como CHILD do player (hierarquia)

• 1

Page 19: Aula9 material

Unity - Lights• Exemplo básico 2

– Spot fixo olha / aponta para objeto em movimento:

var quem : Transform;

function Update () {

transform.LookAt(quem);

}

• transform.LookAt(objeto)– Transforma os ângulos para apontar para (look at) posição do

objeto determinado

• 1