Manual de Apoio 2010
Manual de Apoio 2010
Manual de Apoio 2010
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Vectores Normais às SuperfíciesO vector normal (normal vector) <strong>de</strong> uma <strong>de</strong>terminada superfície, é um vector que começa num ponto imaginárioalgures na superfície fazendo um ângulo recto com esta (Figura 5.18).Figura 5.18: Vectores Normais (2D e 3D)É possível especificar normais para os polígonos gerados pelas primitivas OpenGL. No entanto, po<strong>de</strong> fazersentido especificar normais para pontos em particular, por exemplo, no caso em que a normal não é totalmenteperpendicular ao polígono.Especificação da NormalA Figura 5.19 mostra um plano paralelo ao plano xy no espaço 3D. O vector normal po<strong>de</strong>rá será <strong>de</strong>finido pelovector entre o ponto (1, 1, 0) e qualquer outro ponto (acima <strong>de</strong>ste) na recta que o atravessa, como por exemplo oponto (1, 10, 0).Figura 5.19: Exemplo <strong>de</strong> um vector normal a uma superfíciePara especificar o vector normal do exemplo seriam necessários 2 pontos. No OpenGL é possível especificaro vector normal utilizando apenas um ponto, para tal, movemos o vector para a origem (0, 0, 0), subtraindo oprimeiro ponto ao segundo, obtendo:V normal = V (1,10,10) − V (1,1,0) = V (0,9,0)O ângulo do vector normal inicial mantém-se no vector entre a origem e nosso novo ponto (Figura 5.20).O vector normal po<strong>de</strong> ser associado a uma superfície utilizando a função glNormal, como mostra o exemplo:gl. glBegin ( GL_TRIANGLES );gl. glNormal3f (0.0f, -1.0f, 0.0 f);gl. glVertex3f (0.0f, 0.0f, 60.0 f);gl. glVertex3f ( -15.0f, 0.0f, 30.0 f);gl. glVertex3f (15.0f ,0.0f ,30.0 f);gl. glEnd ();50