LoginSignup
111
87

More than 5 years have passed since last update.

MacユーザーのためのOpenGL始めかた

Last updated at Posted at 2016-06-22

MacユーザーのためのOpenGLはじめかた

一見とっつきにくそうなイメージがあるOpenGL
始まりでつまずきたくないMacユーザーのために、OpenGLの簡単なはじめかたをまとめました
ぜひご参考に!

-目次
 -1.XcodeをつかってOpenGL
 -2.GCCをつかってOpenGL

1.XcodeをつかってOpenGL

①まず、Xcodeを起動し、「Create Xcode Project」を選択する

②次に下画面のように
OSX > Application > Command Line Tool
を選択

スクリーンショット 2016-06-23 1.11.14.png

③ProductNameを名付けて、Nextを選択する

④Sample > Build Phases > Link Binary With Libraries(0 times) > +マークを選択する

スクリーンショット 2016-06-23 1.24.10.png

⑤「GL」と検索し、GLUT.frameworkとOpenGL.frameworkを選択し、Addを押す

スクリーンショット 2016-06-23 1.25.22.png

以上でXcodeの設定はおしまいです

⑦あとはこちらのサンプルコードをmain.cppに記述してみてください

main.cpp
//
//  main.cpp
//  0414Test02
//
//  Created by r.fujiki on 2016/04/14.
//  Copyright © 2016年 藤木良祐. All rights reserved.
//

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

const GLfloat lightPosition1[4] = {0.0f,3.0f, 5.0f, 1.0f};
const GLfloat green[] = { 0.0, 1.0, 0.0, 1.0 };
const GLfloat lightPosition2[4] = {5.0f,3.0f, 0.0f, 1.0f};
const GLfloat red[] = { 1.0, 0.0, 0.0, 1.0 };

const GLfloat teapotAmbient[4] = {0.3f,0.5f, 0.0f, 1.0f};
const GLfloat teapotDiffuse[4] = {1.0f,1.0f, 0.3f, 1.0f};
const GLfloat teapotSpecular[4] = {1.0f,1.0f, 1.0f, 1.0f};
const GLfloat teapotShininess[4] = {20.0f};

void setup(void) {
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHT1);

    glLightfv(GL_LIGHT0, GL_POSITION, lightPosition1);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, red);
    glLightfv(GL_LIGHT0, GL_SPECULAR, red);
    glLightfv(GL_LIGHT1, GL_POSITION, lightPosition2);
    glLightfv(GL_LIGHT1, GL_DIFFUSE, green);
    glLightfv(GL_LIGHT1, GL_SPECULAR, green);
    glMaterialfv(GL_FRONT, GL_AMBIENT, teapotAmbient);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, teapotDiffuse);
    glMaterialfv(GL_FRONT, GL_SPECULAR, teapotSpecular);
    glMaterialfv(GL_FRONT, GL_SHININESS, teapotShininess);
}

void draw(void) {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glutSolidTeapot(0.5);
    glFlush();
}


void resize(int width, int height) {
    glViewport(0, 0, width, height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45.0,
                   (double)width/height,
                   0.1,
                   100.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(-0.5, 2.1, 2.0,
              0.0, 0.0, 0.0,
              0.0, 4.0, 0.0);
}
void display(void){
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glutWireTeapot(0.5);
    glFlush();
}


int main(int argc, char * argv[]) {
    // insert code here...
    glutInit(&argc, argv);
    glutInitWindowSize(600,600);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA | GLUT_DEPTH);
    glutCreateWindow("Wire_teapot");
    glutReshapeFunc(resize);
    glutDisplayFunc(draw);
    setup();
    glutMainLoop();
    return 0;
}

⑧Xcodeをrunしてみて次のように表示されたら完成です!
あとは、OpenGLについてまとめられているサイトを参考にいろいろなコードに挑戦してみてください!

スクリーンショット 2016-06-23 1.30.55.png

2.GCCをつかってOpenGL

①こちらを参考にまずは、自身のMacにGCCをインストールしてください
Macにgccをインストールする

②デスクトップ、もしくは書類にでも任意の場所にmain.cppファイルを作成し、先のサンプルコードをペーストする

③ターミナルを起動し、main.cppファイルの存在する階層に移動する

cd Desktop

スクリーンショット 2016-06-23 1.40.36.png

④main.cppをコンパイルする

gcc -framework GLUT -framework OpenGL main.cpp

スクリーンショット 2016-06-23 1.42.55.png

⑤すると同じ階層にa.outという実行ファイルができるので、実行する

./a.out

スクリーンショット 2016-06-23 1.44.06.png

⑥すると、同じ実行結果になる

スクリーンショット 2016-06-23 1.30.55.png

111
87
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
111
87