我在画椭球体时,亮度出现了问题,网友说光照效果是与法向量有关的,所以如何获得椭球体的法向量呢?请高手指点一下,
非常感谢啊!!!
1、
如果直接通过椭球体曲面方程(方程是已知的)计算的话,
可以得到其曲面上任意点(x,y,z)的法向量(ax+b,cy+d,ez+f),但是这个法向量是一个含有x、y、z的变量,
这该如何调用函数glNomal3fv()呢?(这个函数的参数要求是常数)
2、
下面是我用来画轴半径为ra、rb、rc,并绕Z轴旋转45度的椭球体的代码,我只加了两个函数glRotatef和glScalef。
也就是通过旋转、缩放球体来画出椭球体的,如果这样的话,是不求椭球体曲面的法向量实际上就是求这个球体的
法向量?如果这样的话,又该如何求这个球体的法向量呢?
glEnable( GL_LIGHTING ); 
glEnable( GL_LIGHT0 ); 
glTranslatef( xo, yo, zo ); 
glRotatef(45,0.0,0.0,1.0); 
glScalef(ra/rc),rb/rc),1.0); 
glMaterialfv( GL_FRONT, GL_DIFFUSE, mat_diffuse ); 
glMaterialfv( GL_FRONT, GL_SPECULAR, mat_specular ); 
glMaterialfv( GL_FRONT, GL_SHININESS, high_shininess ); 
auxSolidSphere( rc );