OpenGLのひな形

opengl-template.png

OpenGLのひな形

2Dのひな形はこちらです。
より高機能な3Dのひな形はこちらです。
バウンディングボックスと自在に動かせる自作ユーティリティ入り。
右クリックで平行移動。
ミドルボタンでズームアップ
足りないファイルはutilityからとってきてね。
足りないライブラリはmiffy(git)からとってください
basic-cube.png
OpenGL-Template(ソースコードgit)

黒い画面を出すだけの最小プログラム

#include <GLFW/glfw3.h>
#pragma comment(lib, "glfw3.lib")
int main(void)
{
    glfwInit();
    GLFWwindow* window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
    glfwMakeContextCurrent(window);
    while (!glfwWindowShouldClose(window))
    {
        glfwSwapBuffers(window);
        glfwPollEvents();
    }
 
    glfwTerminate();
    return 0;
}

三角形が描画されるプログラム

#include <GLFW/glfw3.h>
#pragma comment(lib, "glfw3.lib")
int main(void)
{
    glfwInit();
    GLFWwindow* window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
    glfwMakeContextCurrent(window);
    while (!glfwWindowShouldClose(window))
    {
        float ratio;
        int width, height;
        glfwGetFramebufferSize(window, &width, &height);
        ratio = width / (float) height;
        glViewport(0, 0, width, height);
        glClear(GL_COLOR_BUFFER_BIT);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        glOrtho(-ratio, ratio, -1.f, 1.f, 1.f, -1.f);
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        glRotatef((float) glfwGetTime() * 50.f, 0.f, 0.f, 1.f);
        glBegin(GL_TRIANGLES);
        glColor3f(1.f, 0.f, 0.f);
        glVertex3f(-0.6f, -0.4f, 0.f);
        glColor3f(0.f, 1.f, 0.f);
        glVertex3f(0.6f, -0.4f, 0.f);
        glColor3f(0.f, 0.f, 1.f);
        glVertex3f(0.f, 0.6f, 0.f);
        glEnd();
        glfwSwapBuffers(window);
        glfwPollEvents();
    }
 
    glfwTerminate();
    return 0;
}

template

サポートサイト Wikidot.com template