130 likes | 214 Views
II Projeto de PG. Thiago Augusto Souza do Nascimento. Breve Descrição. Fazer a visualização de objetos triangularizados utilizando o algoritmo de conversão por varredura com Interpolação de cores Gouraud, e Equação de Iluminação de Phong. Arquivo de Entrada. Número de Pontos
E N D
II Projeto de PG Thiago Augusto Souza do Nascimento
Breve Descrição • Fazer a visualização de objetos triangularizados utilizando o algoritmo de conversão por varredura com Interpolação de cores Gouraud, e Equação de Iluminação de Phong.
Arquivo de Entrada • Número de Pontos • Número de Triângulos • Os ‘n’ Pontos • Os ‘m’ Triângulos
Parâmetros da Câmara • Cx Cy Cz (foco , ponto ) • Nx Ny Nz (mira, vector) • Vx Vy Vz (orientação vertical) • d (distância do foco ao plano real) • hx hy ( tamanho do plano de vista, real)
Atributos do Objeto • Ka , coeficiente ambiental [0,1] • Kd, coeficiente difusa, vetor [0,1]³ • Od, cor do objeto, vetor [0,1]³ • Ks, constante especular [0,1] • Const, constante de rugosidade, [0,...]
Atributos da Cena • Ia, cor ambiental, vetor [0,255]³ • Pl, posição da fonte de Luz, • Il, cora da luz, vetor [0,1]³
Passo-a- Passo • Carregar os Dados • Ajustes necessários nos parâmetros da câmera. • Inicializar o Z- Buffer • Conversão das coordenadas mundiais para de vista de todos os pontos.
Passo-a- Passo • Calcular as Normais • Calcular as Normais dos Triângulos • Calcular as normais dos pontos
Varredura • Percorre a lista de triângulos • Para o atual triângulo • Calcular a cor dos vértices do triângulo P1, P2 e P3 gerando I1, I2, I3
Varredura • Como calcular a cor: • L1 = Pl – P1 , onde L1 é um vetor • Normaliza L1 • V1 = -P1 , onde V1 é uma vetor • Normaliza V1 • R1 = 2 <N1,L1> - L1 • Casos Especiais • <N1,V1> < 0 -> N1 = - N1 • <N1, L1> < 0 -> não tem componente difusa, nem especular • <R1, V1> < 0 -> não há componente especular
Varredura • Componente Ambiental • Ca = Ka . Ia • Componente Difusa • Cd = <N,L>. Kd*Od*Il • Componente Especular • Ce = Ks. (pow(<R,V>, const)). Il • Cor I do vértice • I = Ca + Cd + Ce
Varredura • A reta de varredura (Yscan), para cada para Xmin e Xmax, percorre-se todos os pixels e para cada pixel P = (X’, Yscan) • Calcula as coordenadas baricêntricas de P em relação aos vértices projetados. • Calcula o Z do ponto original • Consulta o Z- buffer na posição P
Varredura • Se Z- Buffer [P] > Z (calculado) • Inseri o Z no Z-buffer • Calcula a cor do ponto P e pinta na tela