week04
從老師給的網址( https://jsyeh.org/3dcg10/ )下載windows.zip和data.zip,解壓縮後把data資料夾中的data放入windows的資料夾,後開啟windows裡的Transformation.exe
glRotatef ( 0.00 , 0.00 ,0.00 ,0.00 ) 第一格是旋轉的角度,後面三格是指定的向量,例如x軸是(1,0,0),y軸是(0,1,0),z軸是(0,0,1),右手拇指為向量方向,其他手指為轉動方向glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glPushMatrix ( ) ; 備份矩陣
glRotatef ( angle , 0 , 1 , 0 ) ; 轉 angle 度
glPopMatrix ( ) ; 還原矩陣
angle++ ; 角度++
glutIdleFunc(display) ; 重畫畫面
| 旋轉茶壺 |
從原本的GLUT程式碼中複製紅色框框中的程式碼( 打光 )( 第177行 Ctrl-F 找 light )
const GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f } ;
const GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f } ;
const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f } ;
const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f } ;
const GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f } ;
const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f } ;
const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f } ;
const GLfloat high_shininess[] = { 100.0f } ;
----------------------------------------------------------------------------------
glEnable(GL_DEPTH_TEST) ;
glDepthFunc(GL_LESS) ;
glEnable(GL_LIGHT0) ;
glEnable(GL_NORMALIZE) ;
glEnable(GL_COLOR_MATERIAL) ;
glEnable(GL_LIGHTING) ;
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient) ;
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse) ;
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular) ;
glLightfv(GL_LIGHT0, GL_POSITION, light_position) ;
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient) ;
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse) ;
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular) ;
glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess) ;
沒有留言:
張貼留言