O documento discute conceitos importantes de materiais, texturas e luzes no Unity 3D, incluindo como importar e aplicar texturas em materiais, configurar parâmetros de repetição de textura, usar mapas de deslocamento para simular relevo, e definir diferentes tipos de luz como direcional, pontual e em faixa para iluminar cenas.
1. Projetos RAD : Unity 3D
Materiais, Texturas e Luzes
Augusto Bülow
2. 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
3. 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
4. Unity
• Tile exemplo:
– Textura onde os
lados se encaixam
– Repetição, definição
de escala = número
de repetições
5. 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
6. Unity
• Conceitos Texturas:
– Transparência = camada alpha (TGA, TIF,...)
– Branco = sólido, visível
– Preto = transparente
– Grayscale = nível de transparência
7. Unity
• Criando Materiais
– Importar BMAP – textura
• 1
• Assets -> Import New Asset....
• Localizar BMP: exemplo muro01.bmp
– Criar material
• Assets -> Create -> Material
• Diffuse : material básico
• Selecionar BMAP da lista
8. Unity
• Diffuse: material básico
• 1
– 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
9. Unity
• Atribuir material à objetos
• Selecionar objeto
• Componente Renderer:
– Material -> Selecionar
• 1
• 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
10. Unity
• Shaders estão diretamente relacionados • 1
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
11. Unity
• Coleção de Shaders Unity
• 1
• 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
12. 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
13. Unity
• Shaders calculados em relação a incidência de luz
sobre a superfície / sobre o pixel • 1
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)
14. 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
15. Unity – Lights
• Point – ponto de luz
• 1
– 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
16. 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) {
• 1
renderer.material.color.r = 0;
luz.range = 0;
}
else {
renderer.material.color.r = 255;
luz.range = 10;
}
17. Unity - Lights
• Spot – faixo de luz direcional, com cone de abertura
– Spot: uma lanterna ou refletor
• Parametros básicos:
• 1
– Cor, intensidade
– Spot Angle : ângulo de abertura do spot
– Sua direção (ângulos) é fundamental
18. Unity - Lights
• Exemplo básico
• 1
– atachar Spot ao player
– Colocar o spot como CHILD do player (hierarquia)
19. Unity - Lights
• Exemplo básico 2
• 1
– 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