最終更新: mikk_ni3_92 2009年08月19日(水) 17:56:47履歴
現在地: メニュー >> 実践編10 >> 実践編10::mqoファイルローダ >> 実践編10::まとめコード2
【メモ】
場合によってはexitのエラーがでるので、glut.hより先にインクルードした。
#include "GLMetaseq.h" #include <GL/glut.h> //---------- 各種外部変数 ----------// MQO_MODEL mqomodel; // MQOモデル char *modelname = "ninja.mqo"; //--------- プロトタイプ宣言 -----------// void display(); void reshape(int w, int h); //--------- モデルロード処理 -------------// void LoadModel() { mqoInit(); mqomodel = mqoCreateModel(modelname,0.1);//スケール0.1で読み込む } //------------- OpenGLの初期化 -------------// void GLUT_CALL_FUNCs() { glutDisplayFunc(display); glutReshapeFunc(reshape); } void OtherMyInit() { glClearColor(1.0, 1.0, 1.0, 1.0); glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING);//光源の有効化 glEnable(GL_LIGHT0); glEnable(GL_NORMALIZE); LoadModel(); } void GLUT_INITs(int *argcp, char **argv) { glutInit(argcp,argv); glutInitDisplayMode(GLUT_RGBA| GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(640,480); glutCreateWindow("Model Loader"); GLUT_CALL_FUNCs(); OtherMyInit(); } //-------------メイン関数-----------------// int main(int argc, char **argv) { GLUT_INITs(&argc,argv); glutMainLoop(); return 0; } //------------- ここから各種コールバック -----------------// void display() { static float Light0Pos[]={-100.0, 100.0, 100.0,0}; //光源の位置 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(40.0, 80.0, 80.0, 0,0,0, 0.0, 1.0, 0.0); glLightfv(GL_LIGHT0, GL_POSITION, Light0Pos);//位置だけ設定(あとはデフォルト) mqoCallModel(mqomodel); glutSwapBuffers(); } void reshape(int w, int h) { glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, (double)w / (double)h, 0.1, 1000.0); glMatrixMode(GL_MODELVIEW); }
【メモ】
場合によってはexitのエラーがでるので、glut.hより先にインクルードした。