modelo gráfico do vtk: fonte de luz e câmara
TRANSCRIPT
1
Visualização Científica
Modelo gráfico do VTK:Fonte de Luz e Câmara
J. BarbosaJ. Tavares
2
Visualização Científica
Fonte de Luz e Câmara
• Para criar uma cena 3D (render) é necessário definir pelo menos uma Fonte de Luz e uma câmara.
• Se não forem criados explicitamente, o vtk cria por defeito os dois elementos.
2
3
Visualização Científica
Fonte de Luz: vtkLight• Fornece métodos para posicionar e direccionar a fonte de
luz, ligar e desligar, definir o seu brilho e cor.
Fonte de luz direccional: fonte de luz no infinito, raios paralelos.
Fonte de luz pontual: fonte de luz com posição finita; épossível definir o cone de iluminação e factor de atenuação.
Movimento da fonte de luz: as fontes de luz são classificadas com um tipo que indica a forma como se deslocam em relação ao movimento da câmara.
4
Visualização Científica
Fonte de Luz: vtkLightvtkLight::SetLightTypeToHeadLight ()A sua localização no espaço coincide com a câmara, e brilha na direcção do ponto focal da mesma.
vtkLight::SetLightTypeToSceneLight ()A SceneLight faz parte da cena 3D e não se move com a câmara.Tipo por defeito quando não é definido.
vtkLight::SetLightTypeToCameraLight () Move-se com a câmara, mas a sua posição pode ser não coincidente.CameraLights são definidas no espaço de coordenadas normalizado, onde a câmara está em (0, 0, 1), o ponto focal é (0, 0, 0), e o View-Up-Vector é(0, 1, 0).
(Execute o projecto exer3)
3
5
Visualização Científica
Fonte de Luz: vtkLight
Métodos mais usados:
vtkLight::SetPosition()vtkLight::SetFocalPoint()vtkLight::SetColor()
Exemplo:vtkLight *fonte = vtkLight::New();fonte->SetColor(1,1,0); // luz amarelafonte->SetFocalPoint(camera->GetFocalPoint());fonte->SetPosition(camera->GetPosition());render->AddLight(fonte);
Executar exercício 3
6
Visualização Científica
Câmara
4
7
Visualização Científica
Pipeline de Visualização
Projecção: é uma transformação que mapeia de um espaço dimensional para um de menor dimensão (ex: 3D 2D).
Plano de Projecção: plano no qual é feita a projecção.
Centro de projecção (CoP): posição do observador ou câmara em relação ao plano de projecção.
Clipping no espaço 3D
(volume de visualização)
Coordenadas mundo (3D) Projectar para o
plano de projecçãoTransformação para Viewport
Coordenadas 2D do dispositivo de
visualização
8
Visualização Científica
Definição de uma vista arbitrária 3DO plano de projecção é caracterizado por um ponto no plano designado de view reference point (VRP) e pela normal ao plano view plane normal (VPN).
O sistema de eixos v,n,u é definido no plano de projecção. É o eixo de referência para efectuar a projecção.
O vector VUP permite ao utilizador indicar a direcção da projecção. Os vectores v e u são obtidos a partir de n e VUP.
Janela de visualização definida no plano de projecção. Apenas os elementos projectados no interior desta janela são transformados para o viewport.
CW: centre of window
5
9
Visualização Científica
Projecção
Perspectiva: a distância de CoP ao plano de projecção éfinita
Paralela: a distância de CoP ao plano de projecção é infinita
A projecção é definida por raios de projecção que saem do centro de projecção, passando por cada ponto do objecto e intersectando o plano de projecção.
10
Visualização Científica
Volume de visualização
Centro de projecção CoP é também designado de PRP (projection reference point). O ponto é definido em relação a VRP.
View Volume:limita a região do espaço que vai ser visível (operação de clipping). Para a projecção perspectiva tem a forma de uma pirâmide.
View Volume para a projecção paralela tem o formato de um paralelepípedo.
6
11
Visualização Científica
ProjecçõesProjecção Perspectiva: Distância do Centro de Projecção ao plano de projecção é finito.
Projecção Paralela: Distância do Centro de Projecção ao plano de projecção é infinito.
12
Visualização Científica
ProjecçõesPerspectiva
Semelhante ao sistema fotográfico/sistema de visão humano. Na projecção o tamanho dos objectos varia inversamente com a distância ao centro de projecção.
Vantagem: aspecto realista.Desvantagens:
- não é útil para registar a forma e as dimensões exactas dos objectos;- não se pode obter as distâncias reais;- os ângulos só são preservados apenas nas faces do objecto paralelas ao plano de projecção;- linhas paralelas normalmente não são projectadas como paralelas.
ParalelaVantagens:
- as projecções permitem a medição exacta das dimensões do objecto;- linhas paralelas mantém-se paralelas;
Desvantagens:- menos realista;- os ângulos só são preservados apenas nas faces do objecto paralelas ao plano de projecção.
7
13
Visualização Científica
Projecção em Perspectiva
As projecções em perspectiva são caracterizadas pelo número de Pontos de Fuga principais, ou seja em x, y e z.
Para ter um ponto de fuga principal o plano de projecção tem de intersectar o eixo correspondente. Para ter apenas um ponto de fuga, por exemplo em z, o plano de projecção tem de ser paralelo aos restantes eixos.
Verifica-se que as projecções têm apenas um ponto de fuga principal porque as rectas paralelas a x e y não convergem.
14
Visualização Científica
Projecção em Perspectiva
Plano de projecção corta apenas o plano z
Plano de projecção corta o plano z e xApenas as linhas paralelas ao eixo y não convergem para um ponto.
8
15
Visualização Científica
Projecção ParalelaCaracterizada pela normal ao plano de projecção e direcção dos raios de projecção.
Normal ao plano de projecção e direcção da projecção coincidem
Normal ao plano de projecção e direcção da projecção não coincidem
Três projecções ortográficas: topo, frontal e lateral.
Em cada uma das projecções o plano de projecção é perpendiculares a um dos eixos de coordenadas.
Utilização: desenho técnico. Permite medir distâncias e ângulos correctamente.
16
Visualização Científica
Volume de Visualização
9
17
Visualização Científica
Volume de Visualização
18
Visualização Científica
Volume de Visualização
10
19
Visualização Científica
Câmara
• Roll: roda o view-up-vector em torno do plano de projecção.
• Azimuth: rotação, na direcção da longitude, da câmara em torno do FP.
• Elevation: rotação, na direcção da latitude, da câmara em torno do FP.
vtkCamera::Dolly(double) Move a câmara na direcção do FP, ao longo da direcção de projecção.
20
Visualização Científica
Câmara
• Yaw: Roda o Focal Point em torno do view-up-vector centrado na posição da câmara.
• Pitch: Roda o Focal Point em torno do vector obtido pelo produto externo entre view-up-vector e a direcção de projecção, centrado na posição da câmara.
11
21
Visualização Científica
Câmara - exemploren1->GetActiveCamera()->SetFocalPoint(0,0,0); ren1->GetActiveCamera()->SetPosition(0,0,1); ren1->GetActiveCamera()->SetViewUp(0,1,0); // Projecção paralelaren1->GetActiveCamera()->ParallelProjectionOn(); ren1->ResetCamera(); // Actualiza os parâmetros da câmara de modo a visualizar todos os
actores.
ren1->GetActiveCamera()->SetParallelScale(1.5);// Com Projecção perspectiva: ren1->GetActiveCamera()->Zoom(3.0);
22
Visualização Científica
Registo/Reposição do estado da câmaraEm algumas situações é necessário guardar o estado da
câmara para o repor mais tarde, i.e. recuperar um ponto de vista.
A melhor forma será definir várias câmaras a activar quando necessário: vtkRender::SetActiveCamera() ou instanciar um objecto vtkCamera com os parâmetros necessários. Nomeadamente: SetClippingRange, SetFocalPoint, SetPosition e SetViewUp.