2019年3月28日 星期四

ˊ_>ˋ_week06

前置作業:

step1:進入http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/

step2-4:分別下載這四個檔案

step5:把windows檔解壓縮到windows\(E)-->打開解壓縮後的windows檔-->把data壓縮檔裡的data直接拉進windows檔裡-->再把glut32.dll檔也拉進去windows檔案夾裡

這樣 Light&Material.exe檔就不會閃退了


step6:研究一下


(1) 主題:打光part1

試做打光茶壺


#include <GL/glut.h> 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 }; void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glutSolidTeapot( 0.3 ); glutSwapBuffers(); } int main(int argc, char**argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH); glutCreateWindow("week06"); glutDisplayFunc(display); ///一堆 OpenGL設定在這裡 glEnable(GL_DEPTH_TEST); 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(); }

(2)主題:模型OBJ檔



(3)實作:GLM v.s OBJ

(4)回家作業

老師網址:https://www.youtube.com/watch?v=D4a7cNFF9kQ
用Maya建3D模型 
輸出自己的3D模型

沒有留言:

張貼留言