Gráficos 3D - Evolução Histórica

Propaganda
Computação Gráfica
11569 - Engenharia Informática
Gráficos 3D Evolução Histórica
Computação Gráfica
1
Sumário
Criação de Gráficos
! Criação de Modelos 3D
! Pipeline Gráfico
! Hardware Gráfico
! Bibliotecas Gráficas
! Gráficos 3D na Internet
! Criação de Gráficos
(Três tópicos)
! Modeling
! how to represent objects;
! how to build those representations
Animação e
Realidade Virtual
! Animation
! representing/controlling the way things move
! Rendering
! how to create images
Computação Gráfica
2
Criação de Gráficos
! Pressupõe a existência de um dispositivo de
saída
! Monitor
! CRT (Cathode Ray Tube)
! LCD (Liquid Crystal Display)
! LED (Light Emitting Diode)
Resolução
! A resolução de um monitor
indica o número de pixeis.
! O que é um Pixel ?
Por exemplo:
! VGA
! SVGA
! XGA
! WXGA
! …
! HD
! Full HD
! 4K
! …
640x480
800x600
1024x768
1280x1024
1280 x 720
1920 x 1080
3840 x 2160
3
Resolução
! A resolução de um monitor
indica o número de pixeis.
! O que é um Pixel ?
Por exemplo:
! VGA
! SVGA
! XGA
! WXGA
! …
! HD
! Full HD
! 4K
! …
640x480
800x600
1024x768
1280x1024
! Mas então como é que um
monitor pode ter várias
resoluções?
1280 x 720
1920 x 1080
3840 x 2160
Resolução
! ! É o número de pixéis usados para representar uma imagem.
Determina quer o nível de detalhe quer os requisitos de armazenamento.
272 × 416
136 × 208
68 × 104
4
Profundidade da cor
(Colour depth)
Imagem monocromática a preto e branco:
! Cada pixel é armazenado num bit (0 ou 1).
! Uma imagem monocromática 640×480 ocupa 37.5 KB em
memória (ficheiro).
! Imagem monocromática em tons de cinzento:
! Cada pixel é armazenado num byte (0 a 255).
! Uma imagem em tons de cinzentos 640×480 ocupa 300 KB em
memória (ficheiro).
! Imagem a cores de 8-bits:
! Cada pixel é armazenado num byte.
! Suporta 256 cores, com qualidade de cor aceitável.
! Uma imagem a cores de 8-bits com resolução 640×480 ocupa 300
KB em memória (ficheiro).
! Imagem a cores de 24-bits:
! Cada pixel é representado por três bytes (e.g., RGB).
! Suporta 256×256×256 cores (16777216).
! Uma imagem a cores de 24-bits com resolução 640×480 ocupa
900 KB em memória (ficheiro).
! Muitas imagens a cores de 24-bits são armazenadas como
imagens de 32-bits, sendo o byte suplementar usado para
guardar um valor alpha.
! 2 níveis
(escala: 0-1)
256 níveis
(escala: 0-255)
formato GIF
(8 bits)
formato JPEG
(24 bits)
http://en.wikipedia.org/wiki/Colour_depth
Profundidade da cor
1 bit
4 bit
8 bits
24 bits
5
Criação de modelos 3D
! Modelação tridimensional
! Malhas de pontos;
! Curvas e superfícies;
! …
! Mas quando os dados são enviado para a
placa gráfica
! Tudo se transforma em TRIÂNGULOS
TRIÂNGULO
! É o polígono mais simples e tudo pode ser
construído com base em triângulos
! Logo é suficiente
! É um polígono convexo
! Logo mais fácil de “pintar”
! É garantidamente plano
! Logo não levanta ambiguidades
6
Pipeline Gráfico
! Aplicação de transformações geométricas aos vértices
! Para posicionar os modelos e criar um cenário 3D;
! Escolhe-se a vista pretendida do cenário através do posicionamento
de uma câmara;
! Faz-se a projecção de 3D para 2D;
+ TG(
)=
Pipeline Gráfico
! Aplicação de transformações geométricas aos vértices
! Para posicionar os modelos e criar um cenário 3D;
! Escolhe-se a vista pretendida do cenário através do posicionamento
de uma câmara;
! Faz-se a projecção de 3D para 2D;
! Faz-se o preenchimento dos triângulos
! Iluminação e materiais
7
Pipeline Gráfico
Créditos: A. Fernandes, Univ. Minho
Hardware Gráfico
! Controladores VGA (Video Graphics Array)
! Introduzido pela IBM em 1987
! Todo o processamento é realizado pelo CPU.
! O VGA é utilizado somente como frame buffer.
8
Hardware Gráfico
! GPU (Graphics Processing Unit)
! Termo introduzido pela nVidia em 1990
! 1ª Geração de GPUs
! até 1998 (nVidia TNT2, ATI Rage)
! Interpolação: capacidade para calcular os pixeis a
partir dos vértices de um triângulo e aplicar texturas.
Hardware Gráfico
! GPU (Graphics Processing Unit)
! 2ª Geração de GPUs
! 1999-2000 (GeForce 256, GF 2, Radeon 7500)
! Transformação de Vértices
! Cálculo de Iluminação (por vértice)
9
Hardware Gráfico
! GPU (Graphics Processing Unit)
! 3ª Geração de GPUs
! 2001 (GeForce 3 e 4, Radeon 8500)
! Programação ao nível dos vértices (Vertex Shader)
! 4ª Geração de GPUs
! 2002-2008 (GeForce FX, ATI Radeon 9700)
! Programação ao nível do pixel (Pixel Shader)
Hardware Gráfico
! GPU (Graphics Processing Unit)
! 5ª Geração de GPUs
! 2008-...
! Programação ao nível da criação de geometria
(Geometry Shader).
10
Pipeline Gráfico
Créditos: A. Fernandes, Univ. Minho
Pipeline Gráfico
GPU
Créditos: A. Fernandes, Univ. Minho
11
www.nvidia.com
GPUs NVIDIA
! GeForce GTX 295
! GeForce 8800 GTX / GTS
Programming using
CUDA Technology
! (768MB/640MB ou 320MB)
! Suporta Microsoft DirectX 10
GPUs NVIDIA
! GeForce GTX 690
12
GPUs NVIDIA
! GEFORCE GTX 1080
GPU Engine Specs:
NVIDIA CUDA® Cores
Base Clock (MHz)
Boost Clock (MHz)
2560
1607
1733
Memory Spec:
Memory Speed
Standard Memory Config
Memory Interface Width
Memory Bandwidth (GB/sec)
10 Gbps
8 GB GDDR5X
256-Bit
320
Technology Support:
Simultaneous Multi-Projection
10 Gbps
VR Ready
Yes
NVIDIA Ansel
Yes
NVIDIA SLI® Ready1
Yes - SLI HB Bridge Supported
NVIDIA G-Sync™-Ready
Yes
NVIDIA GameStream™-Ready
Yes
NVIDIA GPU Boost™
3.0
Microsoft DirectX
12 API with feature level 12_1
Vulkan API
Yes
OpenGL
4.5
Bus Support
PCIe 3.0
OS Certificates
Windows 7-101, Linux, FreeBSDx86
Bibliotecas Gráficas
! Actualmente existem:
! OpenGL
! Direct3D que é parte do DirectX
! Vulcan (https://www.khronos.org/vulkan/)
! Suportada nas Nvidia 1050 >
13
Bibliotecas Gráficas
! OpenGL tem já várias versões
! OpenGL 1.0 (1992)
! OpenGL 2.0 (2004)
! introdução do GLSL
! OpenGL 3.0 (2008)
! Suporte para Geometry Shader
! OpenGL 4.3 (2012)
! Suporte para Tesselation Shader e Compute Shader
! Melhoramentos na transferência de dados entre shaders
! OpenGL 4.5 (2014)
! Compatibilidade com OpenGL ES 3.1
! Introduz vários melhoramentos, ex: função para obter sub-regiões duma
textura, etc.
Gráficos 3D na Internet
! VRML: Virtual Reality Markup Language (1995)
! Ficheiro de texto que permite especificar gráficos
tridimensionais.
! Requer a instalação de um plugin para o browser.
! VRML97: Virtual Reality Modeling Language
! Introduz melhoramentos (ex: interação, animação)
Surgiram vários plugins, logo dificuldades na visualização de
conteúdos correctamente.
14
Gráficos 3D na Internet
! Web3D (2000)
! Consórcio que assumiu a responsabilidade de padronizar de
novo o VRML
! E passou-se a chamar: X3D (Extensible3D)
! Mas o X3D acabou por não obter grandes resultados
! Como os gráficos na Internet requerem:
! Muito desempenho;
! Muita largura de banda;
Estas tentativas acabaram por nunca se impor!
Gráficos 3D na Internet
! O3D
! Uma API que estende o JavaScript com capacidades gráficas 3D,
usando OpenGL e DirectX.
! Criado pela Google
! Mais tarde foi integrado com WebGL
! WebGL – (OpenGL ES 2.0 for the Web)
! Uma API em JavaScript para gráficos 3D/2D para browsers
compatíveis;
! Está disponível a partir do novo elemento canvas do HTML5
! WebGL 1.0 (2011)
! WebGL 2.0 - Baseada na especificação do OpenGL ES 3.0
15
Gráficos 3D na Internet
! WebGL
! Existem várias bibliotecas que disponibilizam WebGL
(ex: GLGE, Three.js, SpiderGL, …)
! Corre no browser, logo em todas as plataformas
(PC, Tablet, Smartphone)
! Logo muito promissor!
HTML5
+
WebGL
Gráficos 3D na Internet
! WebGL
! Exemplos
! http://alteredqualia.com/three/examples/
webgl_terrain_dynamic.html
http://madebyevan.com/webgl-water/
http://helloracer.com/webgl/
http://lights.elliegoulding.com/
16
Download