Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais

Documentos relacionados
Utilização. de Shaders de efeitos realistas para jogos. Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais

Survey de técnicas. detalhadas: Análise e Comparação

Geração Procedural de Terrenos em GPU

Introdução Introdução

Renderização em Tempo Real de Pêlos Aplicados Sobre Malhas Tridimensionais Arbitrárias Obtidas de Objetos Reais

GPU (Graphics Processing Unit) Bruno Padilha Gregory De Bonis Luciana Kayo

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA

Desenvolvimento de um Motor Gráfico de Apoio a Ambientes Lúdicos Educacionais

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

3 Fundamentos. 3.1 Pipeline de renderização em OpenGL

Prof. Fernando V. Paulovich 3 de agosto de SCC Computação Gráca

vértices dessas células. Exemplos de malhas estruturadas e não-estruturadas são apresentados na Figura 2.

Computação Gráfica e Áreas Correlatas

Capítulo 3 Primeiros Passos em OpenGL Função Desenha Função Teclado Função Inicializa Programa Principal...

Real-time High Dynamic Range Image-based Lighting

Bruno Pereira Evangelista.

Engenharia Informática Computação Gráfica

Visualização por Computador: Teoria, Prática e Aplicações

Tópicos Especiais em Engenharia de Software (Jogos II)

Introdução à Computação Gráfica. Claudio Esperança Paulo Roma Cavalcanti

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos

INF1339 Computação Gráfica Tridimensional. Waldemar Celes. 2 de Agosto de 2010

PEF 5743 Computação Gráfica Aplicada à Engenharia de Estruturas

António Costa. Paulo Roma Cavalcanti

6 A GPU. 6.1 Introdução

4 Técnicas de Renderização HDR

Técnicas de renderização com textura

Esteban Walter Gonzalez Clua. Impostores com Relevo. Tese de doutorado Departamento de Informática

1 Introdução. I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho

Processamento Gráfico

Computação Gráfica. Prof. André Yoshimi Kusumoto

IMPLEMENTAÇÃO E OTIMIZAÇÃO DE UMA BOUNDING INTERVAL HIERARCHY PARA UM RAYTRACER DE TEMPO REAL USANDO CUDA

Introdução. 1 Introdução

Visualização Interativa de Modelos Massivos de Engenharia na Indústria de Petróleo com o Algoritmo de Voxels Distantes

Processamento de áudio em tempo real utilizando dispositivos não convencionais:

Professor: Computação Gráfica I. Anselmo Montenegro Conteúdo: - Introdução. Instituto de Computação - UFF

Mapeamento de Texturas

Computação Gráfica e Processamento de Imagens. - Sistemas 3D (conceitos básicos) Prof. Julio Arakaki

A terceira dimensão. A terceira dimensão. Modelagem tridimensional. A terceira dimensão Wilson de Pádua Paula Filho

3.1 Linha de Produção Utilizada

Introdução à Computação Gráfica

Computação Gráfica e Áreas Correlatas

Visualização Distribuída utilizando Agrupamentos de PCs 10

Remoção de Superfícies Escondidas

Imagem do Batman: Arkham Asylum capturada em uma GPU NVIDIA. Fornecida pela Eidos Interactive.

INF 1366 Computação Gráfica Interativa. Anti-Aliasing; Eliminação de Superfícies Escondidas. Alberto B. Raposo

Sumário. Gráficos 3D - Evolução Histórica. Computação Gráfica. ! Criação de Gráficos. ! Criação de Modelos 3D. ! Pipeline Gráfico. !

Análise de Motores Gráficos 3D para Simulação de Fluídos

VisEdu-MAT: Visualizador de material educacional, módulo de matemática

Explorando aplicações que usam a geração de vértices em GPU

Lista de exercícios. 4) Defina o conceito de função de eficiência luminosa. (Victor)

Resumo. Computação Gráfica: Uma Proposta de Plano Pedagógico. Áreas Correlatas. Definição. Uma Visão Integrada da C.G.

Realismo Visual. Aula 11 UFF

Introdução a CUDA. Esteban Walter Gonzalez Clua. Medialab - Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center START

Introdução à Computação Gráfica

Os testes foram efetuados em um processador Intel i7 de 2.8 GHz com 12Gb de memória RAM utilizando uma Nvidia GeForce GTX 480.

Revisão. Soraia Raupp Musse

INF2610 Renderização em Tempo Real. Waldemar Celes. 23 de Março de 2017

Disciplina: Computação Gráfica Prof. Dr. Paulo R. G. Luzzardi. Universidade Católica de Pelotas Centro Politécnico Ciência da Computação

Computação Gráfica. Agostinho Brito. Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte

4 Impostores com Relevo

5 Implementação Visão Geral do Mob3D

aula 21 Tecnicas de Iluminação Global IC/UFF 2017 Aura

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 1. Apresentação

Enquadramento e Conceitos Fundamentais

2 Algoritmos de Visibilidade

Determinação de Superfícies Visíveis

Introdução ao Processamento Gráfico

Rodrigo Pereira Martins. Renderização em tempo real utilizando mapas de DISSERTAÇÃO DE MESTRADO. Programa de Pós graduação em Informática

Minicurso: Android com Java - Jogos. Bem Vindos!

O que é CG?? Soraia Raupp Musse

Comparação entre as bibliotecas gráficas. OpenGL e Direct3D. Aluno:Alexandre Otto Strube Orientador: Paulo César Rodacki Gomes

Computação Gráfica Introdução

Projeção de Células baseada em GPU para Visualização Interativa de Volumes

Computação e Imagens: PI, CG e Visualização. Computação Visual

3 Visualização de TetraQuads

5 Resultados Experimentais

Rendering de Polígonos. Determinação de Superfícies Visíveis. Back Face Culling. Back Face Culling. Back Face Culling. Back Face Culling.

5 Frustum culling em GPU

Departamento de Matemática

Mapeamento de Textura

Mapeamento de Materiais. Processo de Acabamento Virtual Professor: João Humberto Camelini /MSN:

Desde o surgimento dos primeiros jogos eletrônicos em meados dos anos 50, uma infinidade de aparatos eletrônicos foram desenvolvidos, principalmente

Computação Gráfica - 12

Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile?

Portais Renderizáveis em 3D

5 Comparação e Resultados

2 Rendering baseado em imagens e as plataformas celulares

Aplicação de Tags em Objetos de Sistemas de Visualização em Tempo Real

Computação Gráfica. Computação Gráfica. Visão Geral. Sistema Gráfico. Introdução à Computação Gráfica e areas relacionadas

Introdução Introdução

Realidade Virtual. Judith Kelner e vários autores

Sumário. Bibliografia


Mapeamento de Geometrias a partir de Texturas em Tempo Real

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos

A terceira dimensão. Modelagem tridimensional Elaboração tridimensional Realidade virtual

Entendendo a geometria

Transcrição:

Bruno Pereira Evangelista Pontifícia Universidade Católica de Minas Gerais

2/60 Apresentação Introdução Pipeline de renderização Efeitos utilizando GPUs Shaders Como utilizar shaders Ferramentas Demos de shaders Outros usos da GPU

3/60 2002-2006: Bacharelado em Ciência da Computação (PUC Minas) 2004-2006: Cursos e mini-cursos sobre OpenGL 2005: Olympya (MMO FutWeb) 2005: Pesquisas na área de não-fotorealismo Renderização de cartoons (Sibgrapi 2005) 2006: Pesquisas na área de foto-realismo Renderização de superfícies detalhadas

4/60 A industria de jogos tem buscado criar ambientes virtuais com alto nível de realismo Níveis de realismo tão altos que não possam ser diferenciados do mundo real

5/60 Durante muito anos as APIs gráficas (DirectX, OpenGL) trabalharam utilizando um modelo de processamento fixo para renderização das cenas Modelo de iluminação fixo Impossibilidade de aplicação de vários efeitos foto-realistas (e não foto-realistas) Jogos com gráficos semelhantes

6/60 Devido a esses problemas surgiu a necessidade de alterar a forma como as cenas eram processadas Com a introdução dos hardwares gráficos programáveis (GPUs) isso se tornou possível Possibilita criar cenas realísticas, com efeitos nunca vistos antes Versões recentes das APIs gráficas possuem suporte as GPUs (DirectX 8+, OpenGL 1.5+)

7/60 Geometria (Espaço 3D) Etapas programáveis Proc. Vertices* Rasterização Proc. Pixels* GameFest: Shaders and Shader Tools for Artists Imagem Renderizada

8/60 Informações necessárias para a construção das geometrias Posição dos vértices (v1, v2, v2) Cor dos vértices Outros Informações geralmente exportadas de softwares de modelagem (3D Studio Max, Maya, outros)

9/60 Geometria (Espaço 3D) Etapas programáveis Proc. Vertices Rasterização Proc. Pixels GameFest: Shaders and Shader Tools for Artists Imagem Renderizada

10/60 Processa os vértices, e informações relativas aos vértices, para poderem ser exibidos na tela Câmeras (Visão, Projeção) Iluminação Deformações nas malhas Animações Outros

11/60 Geometria (Espaço 3D) Etapas programáveis Proc. Vertices Rasterização Proc. Pixels GameFest: Shaders and Shader Tools for Artists Imagem Renderizada

12/60 Transforma as geometrias do espaço vetorial para pixels (Imagem 2D) Geração de uma imagem bidimensional contendo a cena Necessário para ser exibido para o usuário

13/60 Geometria (Espaço 3D) Etapas programáveis Proc. Vertices Rasterização Proc. Pixels GameFest: Shaders and Shader Tools for Artists Imagem Renderizada

14/60 Processa a imagem 2D gerada Filtros para remoção de serrilhamentos Adição de efeitos (Blur, Glow,...) Outros

15/60 Geometria (Espaço 3D) Etapas programáveis Proc. Vertices Rasterização Proc. Pixels GameFest: Shaders and Shader Tools for Artists Imagem Renderizada

16/60 Modelos de luzes reais

17/60 Reflexão e refração de ambientes

18/60 Unreal Engine High Dynamic Rendering

19/60 Relief Mapping (Policarpo 2006) Simulação de detalhes em superfícies

20/60 Hugo Beyer ATI The Matrix Renderização de peles humanas

21/60 Renderização de Cartoons

22/60 O que são shaders? Shaders são pequenos programas que são executados nas GPUs Utilizados para definir o processamento dos vértices e pixels da cena Na nova versão do HLSL (Shader Model 4) também será possível definir o processamento das geometrias

23/60 Linguagens para programação de shaders Cg (nvidia), GLSL (OpenGL), HLSL (Microsoft), Sh, outras Todas as linguagens possuem sintaxe similar ao C Assim como todo programa os shaders também precisam ser compilados e linkados Geralmente ocorre em tempo de execução

24/60 Processamento aplicado a cada vértice da geometria Têm como entrada todos os atributos dos vértices Posição, Normal, Cor, Coordenada de textura, outros Além dessas informações o programa pode fornecer outros parâmetros ao shader Pode fornecer dados de entrada para o Pixel Shader

25/60 Processamento aplica a cada pixel (ou fragmento) da tela Têm como entrada todos os atributos dos pixels Cor, Profundidade, Transparência, outros GPUs geralmente possuem um poder de processamento de pixels muito superior ao de vértices

26/60 A programação com shaders impõem diversas restrições Tamanho do código do programa Desvios dinâmicos (if, switch, while,...) Precisão nos cálculos (float8, float16) Outros Essas restrições tem sido superadas com a evolução dos shaders

27/60 Alguns passos são necessários para utilização de um shader Criação de um programa para renderização utilizando uma API gráfica com suporte a shaders Carregar e compilar o código do shader Fornecer os parâmetros necessários para execução do shader Ativar o shader Desenhar a cena

28/60 Problemas Vários passos para utilização do shaders podem tornar o processo cansativo e improdutivo Algumas modificações precisam ser feitas no código fonte do programa, alterando os dados que são passados para o shader Modificações no shader, e seus parâmetros, não podem ser observadas em tempo real

29/60 Devido as necessidades no desenvolvimento de shader, diversas ferramentas foram criadas FX Composer (nvidia) Render Monkey (ATI) Shader Studio (Garage Games) Outros

ATI Render Monkey

Demo 1: Técnicas de iluminação por vértice e pixel utilizando shaders FX Composer

Demo 2: Aplicação de vários efeitos diferentes na renderização de uma cena FX Composer

Videos Taikodom, DirectX10, Outros

34/60 Devido a seu alto poder de processamento, também é possível utilizar as GPUs para realizar cálculos de propósito geral (General Purpose GPU) Cálculo de estrutura de proteínas Resolução de equações algébricas e sistemas lineares Algoritmos de ordenação Outros

35/60 A utilização da GPU para realização desses cálculos de propósito geral ocorre devido ao seu alto poder de processamento As GPUs atuais possuem um poder de processamento, superior aos processadores

36/60 Luiz Henrique (O2 Games) Rodrigo Damazio (Hoplon) William Mallouk (Egine Cadabra)

37/60 Bruno Pereira Evangelista bpevangelista@gmail.com Página pessoal: www.brunoevangelista.com "De fato, que aproveitará ao homem ganhar o mundo inteiro mas perder sua alma?" Mateus 16, 26