111
87

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?