aula9 material
Post on 02-Jul-2015
535 Views
Preview:
DESCRIPTION
TRANSCRIPT
Projetos RAD : Unity 3DMateriais, Texturas e Luzes
Augusto Bülow
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
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
Unity
• Tile exemplo:– Textura onde os
lados se encaixam– Repetição, definição
de escala = número de repetições
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
Unity
• Conceitos Texturas:– Transparência = camada alpha (TGA, TIF,...)– Branco = sólido, visível
– Preto = transparente
– Grayscale = nível de transparência
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
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
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
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
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
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
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
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
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
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
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
Unity - Lights• Exemplo básico
– atachar Spot ao player– Colocar o spot como CHILD do player (hierarquia)
• 1
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
top related