2012年6月17日 星期日

HW5

一、主題介紹︰自訂主題3D動畫程式─神社


二、過程與成果展示
正面


側面


飛鷹(會動唷^.<)




三、心得與討論

這次重新load了新的背景,也自己找了很多新的模組來用。
但是在使用免費的模組時,其實有不少obj檔不知道為何都無法load進程式使用
大致上就是編譯通過,開啟程式約3秒後就關閉了,原因不明。

或是有些obj檔有額外的texture要載入使用,但OpenGL似乎並沒有支援此load的功能。
亦或是要我自己撰寫....

而我在看過一些texture mapping的範例之後,仍然無法使用將texture map到model上...
另外,還有其他的模型檔,.max、.fbx....在OpenGL上似乎都要另外使用函式庫支援。
因此在使用模組的選擇上,都盡量找靜態的物件使用.....
 而最後所完成的動畫, 就是一隻在天空飛翔的老鷹.....

OpenGL在許多設計上並不是很完善的支援其他格式的模組,在開發上過於困難。
在這裡所學得大部分都為基本的圖學程式應用。
希望在之後能碰到開發上比較方便的軟體時,能夠完成令自己滿意的作品。

2012年6月13日 星期三

HW4

一、主題介紹︰元智校園擬真3D空間場景


二、過程與成果展示

內部


由外往內看


 由外往內看2



三、心得與討論

這次為上一次的成果加上打光、貼背景材質和放模型。
打光的準備動作為

  float light_diffuse[4] = {1.0, 1.0, 1.0, 1.0};  // 定義燈光的反射值
  float mat_diffuse[4] = {1.0, 1.0, 1.0, 1.0};  // 定義多邊型表面的反射值
  float light_position[4] = { 0.0, 1.0, -1.0, 1.0 };  // 定義燈光的反射值
 
  glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);  //指定0號光源的反射係數
  glLightfv(GL_LIGHT0, GL_POSITION, light_position);  //指定0號光源的位置
 
  glEnable( GL_LIGHTING );  //啟動光源
  glEnable( GL_LIGHT0 );  //啟動0號光源


而材質和模型的內容比較多,就先不貼了。
不過主要的動作大致上為,載入模型(材質),貼模型(材質)。

這次的練習對我也是全新的概念。
雖然都是載入→使用的動作,但這次還需要另外引進更多的函式。
例如#include "glm.h"、#include <GL\glaux.h>以及bool Load_Texture(unsigned int & aTexture, char * fileName)
以及在dev c的專案選項中,需要設定參數
把連結器用的參數設定為-lglut32 -lglu32 -lopengl32 -lwinmm -lgdi32 -lglaux

如此才可以成功的編譯,當初在自己撰寫時,雖然參考了範例。
但怎樣都編譯不出來,直到我去檢查這些內容時才注意到。

 這次其實想利用Rotate的方式將模型換角度,但在實做時一直失敗就放棄了。
 而且模型其實有材質可以貼,但在嘗試貼材質時,也因為缺乏參考最後也沒有成功。

 雖然很多想加入的設定一直沒加進去,但這次都還不夠熟練
 只好重複找更多文件去參考學習一下,讓下次做得更好。