1

.obj ファイルを (3d で) レンダリングするにはどうすればよいですか? そして、どうやってそれに色を追加しますか?私は OS X を使用しており、XCode 4 を使用しています。これが私の小さな「テスト ラボ」です。

#include <GLUT/glut.h>
#include <iostream>

void render(void);

void keyboard(unsigned char c, int x, int y);

void mouse(int button, int state, int x, int y);

int main(int argc, char ** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(500, 500);
    glutCreateWindow("Simple GLUT Application");

    glutDisplayFunc(render);
    glutKeyboardFunc(keyboard);
    glutMouseFunc(mouse);

    glutMainLoop();
}

void keyboard(unsigned char c, int x, int y) {
    if (c == 27){
        exit(0);
    }
}

void mouse(int button, int state, int x, int y) {
    if (button == GLUT_RIGHT_BUTTON){
        exit(0);
    }
}

void render(void) {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    //RENDER STUFF HERE
    glBegin(GL_POLYGON);
    glVertex3f(  0.0, -0.8,  0.5);
    glVertex3f(  0.0,  0.2,  0.5);
    glVertex3f(  0.5,  0.8, -0.5);
    glVertex3f(  0.5, -0.2, -0.5);
    glEnd();

    glutSwapBuffers();
}
4

1 に答える 1

5

OpenGL は低レベルの 3D API です。モデル ファイルの読み込みなどの高レベルの機能はありません。したがって、.obj ファイルをレンダリングするには、自分でデータをロードするコードを記述し、ロードしたポリゴンを描画する OpenGL コードを記述します。

描画する OpenGL プリミティブに色とテクスチャを追加するには、いくつかの方法があります。現在のコードは「即時モード」で OpenGL を使用しており、色を追加する即時モードの方法はglColor*()、頂点を生成する前に関数を使用して色を設定することです。

glBegin(GL_TRIANGLES);
glColor3f(   1.0,  0.0,  0.0);
glVertex3f(  0.0, -0.8,  0.5);
glColor3f(   0.0,  1.0,  0.0);
glVertex3f(  0.0,  0.2,  0.5);
glColor3f(   0.0,  0.0,  1.0);
glVertex3f(  0.5,  0.8, -0.5);
glEnd();

ここ数年で、OpenGL API にいくつかの重要な変更が加えられました。オンラインでよく見かける OpenGL チュートリアルでは、OpenGL を使用する古い方法について説明しています。OpenGL SuperBible: Comprehensive Tutorial and Referenceという本の最新版を入手することを強くお勧めします。OS X のネイティブ ウィンドウ API である Cocoa での OpenGL の使用に関する章を含め、OpenGL の最新の使用法 (非即時モード) について詳しく説明しています。

OpenGL Superbible の第 5 版 (この記事の執筆時点で最新版) は、新しい OpenGL が OS X でサポートされるよりも少し前に作成されましたが、その後、新しい機能が追加されています。それらを使用するには、Cocoa または OS X の GLUT 実装で「OpenGL コア プロファイル」を有効にする方法について Apple のドキュメントを読む必要があります。

于 2012-10-08T15:34:01.533 に答える