2021年5月12日 星期三

yun_電腦圖學筆記week12

 今天上課老師讓我們安裝3D Exploration



#define GL_BGR_EXT 0x80E0
#define GL_BGRA_EXT 0x80E1
輸入兩行程式碼宣告

這兩行因為這裡用不到,所以先用"//"取消程式碼


執行後就會這樣動了

將程式碼原本的旋轉跟縮放取消
並加入兩行程式碼讓他站著轉動就好
glRotatef (nAngle,0,1,0);
glScalef(3,3,3);


像這樣左右轉動
接下來學習用maya切割模型,用.obj存檔
我沒有裁切完成,總會少幾個零件,不過怎麼匯入匯出我會了


再接著老師教我們hw4怎麼做,先讓我們複製老師的程式碼
#include <GL/glut.h> void display() { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glutSolidTeapot( 0.3 ); glutSwapBuffers(); } ///下面是從 GLUT專案main.cpp剪貼來的 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 }; int main( int argc, char** argv ) { glutInit( &argc, argv ); glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH); glutCreateWindow("week12 hw4"); glutDisplayFunc(display); ///下面是從 GLUT專案main.cpp剪貼來的 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); glutMainLoop(); }



cdp檔案用notepad++打開


將freeglut.dll的位置改到 執行目錄裡 並更改week.cbp 的路徑位置"."

  • CodeBlocks會出現 Reload畫面, 設好它,按確定就好
    檔案準備好 source.zip (glm.h glm.cpp(改), transformation.c)



  • 模型準備好 gundam還沒切開.zip 裡有 Gundam.obj Gundam.mtl Diffuse.jpg 

  • 位置都放對之後就可以了



沒有留言:

張貼留言

距地表面160 Week11

 #include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) {     if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...