Texturas em Jogos IA 725 – Computação Gráfica Professa Dra. Wu, Shin-Ting Leandro de Pinho Monteiro Roteiro Introdução Definições da área Tipos de Textura Texturas em Jogos Texturas nas Bibliotecas Gráficas Conclusão Introdução Adicionar realismo a uma cena Evitar processamentos desnecessários Garantir certos aspectos visuais Mármore, madeira, roupa, vegetação etc. Cenário / Mapas dos Jogos Gerador de terrenos Roupas dos Personagens Definições Básicas Textura • Espaço de Textura • Diversidade de Conceitos Texel Texturização • • Função de Mapeamento Mapeamento de Texturas Outros Termos Texture mapping Bump mapping Mip mapping Environment mapping Algumas Imagens Mais Imagens Tipos de Textura Dificuldade na Classificação • • • • • Dimensão (1D, 2D, 3D) Padrão (Rugosidade, Regulares, Ruído) Luminosidade (Refração, Reflexão, Sombra) Origem (Procedural, Imagem Digital) Distribuição (Espectrais, Estatísticas, Estruturais) Tipos de Textura Texturas de Superfície Texturas Sólidas Texturas Procedimentais Imagens Imagens Texturas em Jogos Engines (Cenários) • • Efeitos Especiais (Photoshop) Gerador de Terrenos (3D Game Studio) Softwares de Modelagem (Personagens) • • Roupas (Maya, 3DS) Armas, Veículos, Telas de Interação etc. Jogos Simples Personagens Armas Artilharia Aviões Mais Aviões Helicópteros Mais Helicópteros Veículos Cenários Realismo Mais Realismo Gerador de Terrenos Telas Camadas de Textura Mapeamento de Ambiente Espelhamento UVW map Anti-Aliasing Mip mapping Bibliotecas Gráficas DirectX SDK (Battlefield Vietnã) • • • • • Direct3D (d3ddefs.h) DirectInput DirectSound DirectMusic DirectPlay OpenGL (Quake 3 – Arena) • GL, GLU, GLUT, GLAUX OpenGL Criar um objeto de textura e especificar uma textura para este objeto • Indicar como a textura deve ser aplicada a cada pixel • glTexParameter() Habilitar mapeamento de texturas • glGenTextures(), glBindTextures() glEnable() Desenhar a cena, fornecendo as coordenadas de textura e de objeto • glTexCoord2f(), glVertex3f() DirectX pRenderTexture = NULL pRenderSurface = NULL pRenderTexture->D3DXCreateTextureFromFile() pRenderSurface->SetSurface() pRenderTexture->GetSurfaceLevel() pRenderTexture->SetRenderState() pRenderTexture->SetTextureStageState() pRenderTexture->SetTexture() DirectX vs OpenGL DirectX é mais rápido DirectX é mais completo e complexo DirectX é mais direcionado a jogos OpenGL é melhor estruturado OpenGL é multi-plataforma OpenGL é mais flexível Conclusão Aumento de realismo e interatividade Redução de processamento Possibilidades de combinação Grande suporte de bibliotecas gráficas Área em pleno desenvolvimento