2017年10月19日 星期四

Weiting的計圖第六週

主題 : 複習上周進度 + 打光

Lighting 打光

1. 開啟weeko5專案,點project.cpp


2.  程式要放在 CreateWindow和MainLoop之間

glutCreateWindow(...); ///有開視窗才有openGL功能

glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING); ///打光程式
glEnable(GL_LIGHT0); ///打光程式
glLightfv(GL_LIGHT0, GPOSITION, pos); ///f : 浮點數  v : 向量

glutMainLoop(...);




若沒有glEnable(GL_DEPTH_TEST);圖會變破碎 (如下)



補充 : 
compiler ==> include 
linker ==> lib
assembler ==> ??

執行檔的產生
.o檔 +.a檔 (連結起來!) 變成.exe檔 還要bin裡的dll檔...


滑鼠及鍵盤的互動

加上函式 keyboardmouse



並在main加入這幾行 
glutMouseFunc(mouse); 
glutKeyboardFunc(keyboard);


執行結果
按鍵盤會顯示滑鼠座標位置

用鍵盤旋轉

在keyboard函式加上這幾行




在display函式加上這幾行

glRotatef (旋轉多少, 對x軸轉, 對y軸轉, 對z軸轉);

按1 對x軸轉
按2 對y軸轉
按3 對z軸轉

用滑鼠旋轉

改變main, mouse函式, 新增motion函式






對y旋轉時 是變動滑鼠x的數值




備註 : 

若忘記函式的參數,可以去看include裡的.h檔



作業 : 

keyboard讓他轉
mouse讓他轉(mouse motion)

沒有留言:

張貼留言