O documento fornece uma introdução sobre o Fast Light Toolkit (FLTK), abordando o que é FLTK, sua hierarquia de objetos, ferramentas como o FLUID, suporte a gráficos 3D via OpenGL. Também discute conceitos sobre placas de vídeo, GPUs e tecnologias como SLI e CrossFire.
1. 1 de 40INTRODUÇÃO AO FAST LIGHT TOOLKIT - FLTK
The Fast Light ToolKit
Curso de Verão – Instituto de Computação & CA Computação
Michel Alves dos Santos - UFAL
Bolsista do Centro de Pesquisa em Matemática Computacional
8º Impacto
2. 2 de 40O QUE É FLTK ?
The Fast Light ToolKit
O FLTK (sigla de Fast Light ToolKit), pronunciado como "fulltick", é um kit de
desenvolvimento de interfaces gráficas para a linguagem C++, disponível para
diversos sistemas operacionais (GNU/Linux – através do sistema gráfico X11, M$
Windows®
, Mac OS X, OS/2 e Solaris).
Suporta gráficos 3D via OpenGL®, bem como provê emulação à
biblioteca GLUT.
Fornece um rico conjunto de componentes gráficos porém, visando se
manter sempre enxuto e modular, prezando pela eficiência sem
ostentação.
Software Livre distribuído sob a licença LGPL (GNU Library General
Public License).
Possui uma ferramenta chamada FLUID, que permite de maneira fácil e
visual a construção de todo o esqueleto de uma interface gráfica.
3. 3 de 40
Hierarquia de objetos do pacote FLTK
HIERARQUIA DAS CLASSES DO PACOTE FLTK
4. 4 de 40FLUID - FLTK USER INTERFACE DESIGNER/FAST LIGHT USER INTERFACE DESIGNER
FLUID
O FLUID (sigla de FLTK User Interface Designer) é um editor visual de
interfaces gráficas, uma ferramenta integrante do pacote FLTK,
responsável pela geração automática do código fonte (na linguagem
C++) da interface gráfica construída.
5. 5 de 40SUPORTE A GRÁFICOS 3D VIA OPENGL E A KITS COMO O GLUT
Suporte a OpenGL®
6. 6 de 40
Nosso foco hoje é
suporte a OpenGL,
mas antes vamos
falar um pouco sobre
tecnologia ...
VAMOS FALAR UM POUCO SOBRE TECNOLOGIA
7. 7 de 40TECNOLOGIAS E PLACAS
Vídeo – Tecnologias e Placas
Visão Geral
Unidade de Processamento
Software e Programação
Fabricantes e Tecnologias
Projeções Futuras
8. 8 de 40VISÃO GERAL
Visão Geral
Definição e Funções
Memória
Barramento
9. 9 de 40DEFINIÇÃO E FUNÇÕES
Definição e Funções
Placa de Vídeo – Dispositivo responsável pelo
processamento de dados vindos da memória
principal. Os resultados do processamento são
enviados ao monitor, que irá formar a
imagem.
NVIDIA Quadro FX 5800 – 4GB de memória e 240
processadores paralelos e programáveis CUDA.
Preço aproximado U$ 3499,00.
GeForce GTX 280
Radeon HD 4870 X2
16. 16 de 40O QUE É GPU ?
GPU – Graphics Processing Unit
GPU (Graphics Processing Unit), conhecido também como
VPU, é um tipo de microprocessador especializado em
processar gráficos em computadores pessoais, estações de
trabalho ou videogames.
GPUs modernas têm estrutura de processamento paralelo
que as tornam mais capazes neste tipo de trabalho que
CPUS normais.
Exemplo de algumas “pastilhas”
de GPU´s da NVIDIA
17. 17 de 40EVOLUÇÃO DAS GPU´s
GPU – Evolução
O que aconteceu com as GPU´s nos últimos anos?
Número de operações de ponto flutuante por segundo para a CPU e GPU.
18. 18 de 40CPU VERSUS GPU
CPU X GPU
A GPU dedica mais transistores ao processamento de dados;
Maior número de processadores paralelos.
19. 19 de 40
Pipeline de uma GPU
PIPELINE DE UMA GPU
Estrutura/Esquematização do pipeline de uma GPU
20. 20 de 40API´S PARA GPU´S
API´s para programar a GPU
Alto nível:
– Brook, Sh, RapidMind
– Microsoft Accelerator
• Baixo nível:
– DirectX, OpenGL
– CUDA (Compute Unified Device Architecture) - NVidia
– CTM (Closer to Metal) - ATI/AMD
21. 21 de 40
Shaders :
– ARB (GPU Assembly Language)
– GLSL (OpenGL Shading Language)
– Cg (C for Graphics – Nvidia)
– HLSL (DirectX High-Level Shader Language)
Exemplo de um vertex shader :
void main (void)
{
vec4 v = vec4(gl_Vertex);
v.z = 0.0;
gl_Position = gl_ModelViewProjectionMatrix * v;
}
Programando a GPU
PROGRAMANDO A GPU
22. 22 de 40PHYSX
PhysX
O NVIDIA PhysX é um poderoso mecanismo de física, que permite o
uso de elementos físicos em tempo real nos mais modernos jogos
para PC e para console.
O software PhysX é compatível com Sony Playstation 3, Microsoft
Xbox 360, Nintendo Wii e PC.
Criado especificamente para aceleração de hardware através de
poderosos processadores com centenas de núcleos. Em conjunto
com a excepcional capacidade de processamento paralelo da GPU, o
PhysX produz um crescimento exponencial na potência de
processamento da física, com recursos tais como:
Explosões com efeitos de poeira e destroços;
Personagens com geometrias complexas e articuladas para
permitir movimentação e interação mais realistas;
Espetaculares armas novas, com efeitos incríveis;
Tecidos que se enrugam e rasgam naturalmente;
Fumaça e névoa formadas em torno de objetos em movimento.
23. 23 de 40SOFTWARE E PROGRAMAÇÃO
Software e Programação
Vertex Shader
Pixel Shader
Geometry Shader
DirectX
OpenGL
24. 24 de 40SHADERS
Shaders
O Shader nada mais é que um campo na computação
gráfica que pode ser usado por um hardware
específico (placa de vídeo) para renderizar efeitos.
O Shader é
responsável por
calcular efeitos(cores) e
também por calcular a
visibilidade de um
objeto.
Exemplo de shader usando o
famoso e adorado TeaPot.
25. 25 de 40VERTEX, PIXEL E GEOMETRY
Vertex, Pixel e Geometry Shader
• Vertex shader - Manipula vértices. Esses são
então enviados para os geometry shaders.
• Geometry shader - Combina uma série de
vértices em objetos que serão processados
pelos pixel shaders.
• Pixel shader - Um pixel shader serve para
manipular um pixel, geralmente para aplicar um
efeito em uma imagem, exemplos: realismo,
sombras e efeitos de explosões.
26. 26 de 40EXEMPLO DE APLICAÇÃO DOS SHADERS
Aplicação dos Shaders
Exemplo de aplicação dos
shaders em uma “cena”.
27. 27 de 40DIRECTX
DirectX
Microsoft Directx é uma
grande biblioteca de APIs
- Application
Programming Interface
(ou Interface de
Programação de
Aplicativos) para
aplicações relacionadas a
multimídia e programação
de jogos, usando as
plataformas da Microsoft.
28. 28 de 40OPENGL
OpenGL
O OpenGL é um
conjunto de
algumas centenas
de funções, que
fornecem acesso
a praticamente
todos os recursos
do hardware de
vídeo.
29. 29 de 40FABRICANTES E TECNOLOGIAS
Fabricantes e Tenologias
nVidia
ATI
SLI
CrossFire
32. 32 de 40
SLI
SLI
Placas de vídeo conectadas em paralelo para aumentar desempenho em
jogos.
PCI-Express 16x
Placa-mãe baseada no chipset nVIDIA.
Mesmo chip Gráfico
SLI, SLI-Quad , SLI de três vias.
.
Modos:
SFR (Split Frame Rendering)
AFR (Alternate Frame Rendering)
AFR de SFR
SLI AA (Anti-Alising)
Apenas uma saída de vídeo e aumento menor
que 100%.
33. 33 de 40
CrossFire
CROSSFIRE
Placas de vídeo conectadas em paralelo para aumentar desempenho em
jogos.
PCI-Express 16x
Placa-mãe baseada chipset AMD / ATI ou Intel.
Pode usar chip Gráfico diferente. (Mesma Família).
CrossFire, CrossFire Nativo, CrossFireX.
.
Modos:
Scissors
SuperTiling
AFR (Alternate Frame Rendering)
Super AA (Anti-Alising)
Apenas uma saída de vídeo e aumento menor
que 100%.
35. 35 de 40
CUDA
CUDA
Nvidia : Beneficiar-se do alto desempenho da GPU.
Nvidia x Intel
Processamento Independente e de propósito geral em
cada Stream/thread processor
Base para a criação do PhysX
36. 36 de 40
AMD [ APU ]
APU
União GPU e CPU em uma única peça de silício;
CPGPU/APU;
GPU: Alto processamento
CPU: Alta programabilidade
Núcleos Heterogêneos
DirectX 10.1
Possivelmente utilizará a Arquitetura da GPU RV 800
37. 37 de 40
INTEL
INTEL
1ª Geração: Larrabee;
Processamento Independente;
Chips x86 interconectados;
16/48 núcleos;
Suporte tanto a OpenGL como Directx.
39. 39 de 40PENSAMENTO DO DIA !
Siddhartha Gautama – Mais conhecido como “Buddha”
“Três classes de pessoas são infelizes:
a que não sabe e não pergunta, a que
sabe e não ensina, a que ensina e não
faz”