Modelo gráfico do VTK: Fonte de Luz e Câmara

12
1 Visualização Científica Modelo gráfico do VTK: Fonte de Luz e Câmara J. Barbosa J. 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.

Transcript of Modelo gráfico do VTK: Fonte de Luz e Câmara

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.

12

23

Visualização Científica

vtkRenderervtkRenderer tem um atributo para indicar a iluminação a usar:

one-sided ou two-sided.vtkRenderer::TwoSidedLightingOn()One-Sided: ilumina as face front facingTwo-Sided: ilumina as faces front e back facing dos polígonos.

One-sided Two-sided