Luiz Gonzaga da Silveira Jr



Documentos relacionados
Computação Gráfica. Renderização em Tempo Real. Erivaldo Xavier de Lima Filho

Bruno Pereira Evangelista.

Implementação do algoritmo Marching Cubes usando shaders. Luiz Fernando Oliveira Corte Real

Introdução ao OpenGL 2.1 e GLSL 1.2

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

GLSL Programação de Shaders

Computação Gráfica. GLSL Programação de Shaders

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

OpenGL Shading Language

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

Geração Procedural de Terrenos em GPU

Computação Gráfica. GLSL - Introdução e Programação da Aplicação OpenGL

Visão Geral de Hardwares de Renderização e Ferramentas de Avaliação. Carlos Eduardo Rodrigues

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

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

Pág. 1 de 9 geral@cadtresd.pt Room Player

Animação e Visualização Tridimensional

Bruno Pereira Evangelista.

Gustavo Bastos Nunes. em GPU DISSERTAÇÃO DE MESTRADO DEPARTAMENTO DE INFORMÁTICA

Um Tutorial sobre GPUs

Formação em game programming: 01 - Introdução à programação

Computação Gráfica. GLSL - Programação de Shaders Iluminação

Computação Gráfica. GLSL - Programação de Shaders Iluminação

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

Sistemas Computacionais II Professor Frederico Sauer

Engenharia Informática Computação Gráfica

5 Frustum culling em GPU

Java TM e o Modelo de Objetos

Sistemas Operacionais

Rendering 2D com OpenGL e interface gráfica em Qt

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

Exibindo o Catálogo (Tarefa C) Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Introdução as Unidades de Processamento Gráfico (GPUs) Giovane Roslindo Kuhn

Gamut de Cores. Fábio Markus Nunes Miranda

Frustum Culling Híbrido Utilizando CPU e GPU. Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass

Introdução a Java. Hélder Nunes

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Arquivos de Parâmetros, Cenários e Simulação de Risco Relatório de Definições de Arquivos

Organização de Computadores 1

Visualização de terrenos em GPU

Projeto de Software Orientado a Objeto

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. Luiz Felipe Simões Hoffmann

Aplicações para geraçãode. Gustavo Bastos Nunes Orientador: Alberto Barbosa Raposo Co-orientador: Bruno Feijó

Configurando o Outlook Express - Passo a Passo

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

2 Algoritmos de Visibilidade

Frederico Damasceno Bortoloti. Adaptado de: Claudio Esperança Paulo Roma Cavalcanti

ARQI. Arquitetura de Informação. Prototipação, layout e wireframe. Curso Superior de Tecnologia em Design Gráfico

8. Síntese de Imagens: Cálculo de Cor

5 Detalhamento de superfícies com tesselação em GPU

GPU and GLSL. Prof. João Madeiras Pereira 2008/2009

MA018. Revisão C de 16/09/ de 13

Orientações para Usuários

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Remoção de Faces Traseiras Recorte

Introdução a Linguagem C

Capítulo 25. Gerenciamento de Configuração. Engenharia de Software Prof. Flávio de Oliveira Silva, Ph.D.

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Arquitetura de Computadores. Tipos de Instruções

Informática I. Aula 5. Aula 5-13/05/2006 1

5 Renderização de terreno usando processo local paralelo em GPU

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. Luiz Felipe Simões Hoffmann

2 Orientação a objetos na prática

Programação de Computadores - I. Profª Beatriz Profº Israel

Orientação a Objetos

SISTEMAS OPERACIONAIS

Rendering. Por Angelo Luz

Redes de Computadores Aula 3

Thunder Pro II Gold Edition Manual de operações v 8.7 Rev:b

4 Renderizando Tubos a partir de Curvas Discretas com Anti- Aliasing e LOD Contínuo usando Tecelagem em Hardware

Criação do Modelo 4 Cilindro (Cylinder) 4 Esfera (Sphere) 5 Superfícies (Quadpatch) 6 Bandeira 6 Chão 7 Texto (Text) 8 Materiais (Material) 10

Escrito por Vinícius Godoy de Mendonça Seg, 06 de Abril de :10 - Última atualização Seg, 06 de Abril de :10

VISEDU-CG 3.0: Aplicação didática para visualizar material educacional Módulo de Computação Gráfica

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

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. !

Novos Prazos de Entrega VT Pass

Introdução à Engenharia ENG1000

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

Prática 6 ActionScript

Visualização Científica. Pedro de Botelho Marcos Março/2008. Núcleo de Computação Científica Tópicos Avançados em Computação II

Behavioral Patterns - Command

DSG 1005: Procedimentos para G2

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Computação Gráfica. Modelo de sombreamento Determina como o modelo de iluminação será aplicado e quais seus argumentos

Máquinas Multiníveis

Passo-a-passo para acesso ao novo sistema de reservas de salas no Rochaverá

TRATAMENTO E ANÁLISE DE SINAIS DE BAIXA FREQUÊNCIA PARA EMULAÇÃO DE CANAL RÁDIO

CATÁLOGO DE CUSTOMIZAÇÃO Tag xped e nitempedno XML de Faturamento

Parte 01. Fundamentos de Arquitetura de Computadores. Prof. Pedro Neto

Laboratório de Redes. Professora Marcela Santos

MESTRADO EM MACROECONOMIA e FINANÇAS Disciplina de Computação. Aula 04. Prof. Dr. Marco Antonio Leonel Caetano

Programação científica C++

Evolução Constante GUIA RÁPIDO ELETRODRIVE

UFG - Instituto de Informática

Desenvolvimento de jogos com Unity

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

Pandora s Box Graphics Engine - Uma Engine Gráfica com Aplicação em Visualização de Campos Tensoriais

SmartVNC: An Effective Remote Computing Solution for Smartphones. MAC0463 Renato Augusto Vieira Nishimori

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Transcrição:

Luiz Gonzaga da Silveira Jr

O p e n G L evolução recente Luiz Gonzaga da Silveira Jr

OpenGL 4.x: D3D a guerra não acabou OpenGL 4.2 - novas funcionalidades: Contadores atômicos para shaders Tesselação em GPU Modifica subconjunto de uma textura, sem recarregá- la (performance) Empacota múlolpos de 8 e 16 bits em 32 bits

Geometry shader Vertex Shader Geometry Shader Fragment Shader Refinamento de malha Culling (frustum) GPU LOD GS requer SM4

Geometry Shader Quando surgiu foi um bum...depois: decepção! Uma primiova/unidade de processamento Loop:produção de novos véroces (uma após outra) Melhoria:especificando um contador de invocações no topo do GS: layout(triangles, invocaoons = 3) in; Diz a GPU que seu GS deve rodar 3x em uma primiova

Geometry shader (revisão) Rodas após transformações nos véroces, mas ANTES do shading de cor, clipping,,clamping... O geometry shader começa com uma primiova {ponto, linha, triângulo} Pode kler atributos da primiova para criar novas primiovas Saída do GS: {ponto, line strip, triangle strip} Emite véroces para definir a nova primiova

GS #version 15 layout(triangles) in; layout (triangle_strip, max_vertices=3) out;... void main() { for(int i = 0; i < gl_verticesin; i++) { // copia os atributos gl_position = gl_in[i].gl_position; VertexOut.normal = VertexIn[i].normal; VertexOut.texCoord = VertexIn[i].texCoord; } } // feito! EmitVertex();

Pipeline OpenGL 4.2 Decide como um patch é subdividido. DX Hull Shader Produz as novas primitivas Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader

Pipeline OpenGL 4.2 Vertex Shader Decide como um patch é subdividido. DX Hull Shader Produz as novas primitivas Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader

Pipeline OpenGL 4.2 Vertex Shader Decide como um patch é subdividido. DX Hull Shader Produz as novas primitivas Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Produz as novas primitivas Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Produz as novas primitivas Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Tesselation Evaluation Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Tesselation Evaluation Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Tesselation Evaluation Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader Geometry Shader

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Tesselation Evaluation Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader Geometry Shader

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Tesselation Evaluation Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader Geometry Shader Clipping

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Tesselation Evaluation Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader Geometry Shader Clipping

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Tesselation Evaluation Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader Geometry Shader Clipping Rasterization

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Tesselation Evaluation Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader Geometry Shader Clipping Rasterization

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Tesselation Evaluation Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader Geometry Shader Clipping Rasterization Fragment Shader

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Tesselation Evaluation Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader Geometry Shader Clipping Rasterization Fragment Shader

Pipeline OpenGL 4.2 Vertex Shader Tesselation Control Decide como um patch é subdividido. DX Hull Shader Tesselator Produz as novas primitivas Tesselation Evaluation Pode modificar cada nova primitiva. Ex: posição e outros atributos. DX=domain shader Geometry Shader Clipping Rasterization Fragment Shader Blending

Pipeline detalhado (OpenGL 3.2...4.2) OpenGL 4

Por que Tesselação em GPU?! Exemplo Terreno heighmtap, normal e textura: 4096x4096 128x128 patches subdivididos até 64x Total: 67 mi triangulos GTX460: 10fps Todos triângulos na tela tesselação shader: 300-500 fps

Desempenho PrimiOvas: Cache de véroces NVStrip: hop://www.nvidia.com/object/ nvtristrip_library.html

Montagem de primirvas

Montagem de primirvas

Montagem de primirvas

Montagem de primirvas

Montagem de primirvas

Tesselação Entrada: patches Saída: primiovas (ponto, linhas e triângulos) Patch?! array de véroces (atributos computados pelo VS) Patch Tesselate Shader Vérticies Estágios Tesselation Control programável Tesselator (gerador de primitiva) fixo Tesselation Evaluation programável

Estágios Tessela5on control: Entrada: array com vér5ces para cada patch de entrada Computa os atributos para cada vér5ce da nova primi5va de saída Shaders responsáveis por escrever atributos per patch, que define o grau de subdivisão do patch Tipos de patches: Triângulos Quads A subdivisão é controlada pelos tessela5on levels. Ajustável. Default:64

GS OpenGL 3.2 ++ Opcional Recebe primiovas (triângulos), não recebe strip, loop, fan PrimiOvas de entrada: points (1) lines (2) Primitivas de saida points line_strip triangle_strip lines_adjacency (4) triangles (3) triangles_adjacency (6)

Mini- Projeto I: Grau A: 20% - prazo de entrega: 1 semana! Implementação de exemplo usando as seguintes extensões: ARB_blend_func_extended ARB_explicit_aUrib_loca5on ARB_occlusion_query2 ARB_sampler_objects ARB_shader_bit_encoding ARB_texture_rgb10_a2ui ARB_texture_swizzle ARB_5mer_query ARB_instanced_arrays ARB_vertex_type_2_10_10_10_rev OpenGL 3.3 Grupos de 1 ou 2 alunos Entregáveis: código fonte, descrição da app, descrição detalhada da extensão

Projeto II: Tesselação: Grau A: 30% - prazo de entrega: 2 semanas! Entrada: Quad (simular uma parede) Saida: malha tesselada (nível de tesselação: ajustável) Como? Tesselação em GPU Implementar e entregar por email prazo: 14 dias Início: agora!