qt5.9.2 openglを設定!(穴あり)
OpenGLはアプリケーションプログラミングインターフェースAPIであり、コンピュータグラフィックハードウェアにアクセスしやすいパッケージライブラリである.
いくつかの概念があります.
≪モデル|Model|oem_src≫:ジオメトリ内の点線面を組み合わせたデータセット
レンダー:モデルからグラフィックを作成するプロセス.
シェーディング:GPUで実行されるコードにコンパイルされます.Openglにはコンパイルツールが含まれており、シェーディングされたソースコードをコンパイルします.
OpenGLは、複数のライブラリを含むコンピュータグラフィックを操作する集合です.一般的にglfw、glut、freeglutなどがあります.
本文はfreeglutをダウンロードすることによってその原理を初歩的に学習し理解する.
1ダウンロードインストール
freeglutライブラリには32ビットと64ビットの2つのバージョンがあり、Qtの構成に応じて自分で選択します.
ダウンロード先:http://www.transmissionzero.co.uk/software/freeglut-devel/
2構成
msvc環境構成(64ビット):
1) .解凍後freeglutファイルのbinファイルの下のx 64ファイルの下のfreeglut.dll、QTへコピーするインストールパスD:QtQt 5.2.4\5.2.4\msvc2017_64binディレクトリの下;2) .解凍後freeglutファイルのincludeファイルの下にあるGLフォルダをQTのインストールパスD:QtQt 5にコピーする.2.4\5.2.4\msvc2017_64includeディレクトリの下;3) .解凍後freeglutファイルのlibファイルの下のx 64ファイルの下のfreeglut.lib,インストールパスD:QtQt 5.2.4\5.2.4\msvc2017_64libディレクトリの下;
MinGW環境構成(32ビットバージョン):
1) .解凍後freeglutファイルのbinファイルの下のfreeglut.dll、QTへコピーするインストールパスD:QtQt 5.2.4\5.9.4\mingw53_32binディレクトリの下;2) .解凍後、freeglutファイルのincludeファイルの下にあるGLファイルを、QTのインストールパスD:QtQt 5にコピーする.2.4\5.2.4\mingw53_32includeディレクトリの下;3) .解凍後freeglutファイルのlibファイルの下のlibfreeglut.a、libfreeglut_static.aファイル、QTへコピーするインストールパスD:QtQt 5.2.4\5.2.4\mingw53_32libディレクトリの下;
上記のような構成の利点は、コンパイル時に-LD:/Qt/Qt 5を使用しなくてもよいことです.9.2/5.9.2/msvc2017_64/libライブラリのディレクトリを指定し、使いやすいです.
3使用
#3つ目は、複数のライブラリが同じフォルダの下にある場合、接続にはLIBS+=-LD:/Qt/Qt 5を使用する.9.2/5.9.2/msvc2017_64/lib -lfreeglut -lOpenGL32
MinGWバージョン:
win32:LIBS += -lOpengl32\ -lglu32\ -lglut\ -lfreeglut
ライブラリの使用時に接頭辞libおよび接尾辞はない.a .lib、しかし接頭辞-lがあります
最後にcppに#includeを加えてglutの関数を使用できます.
使用するソースコードを添付します.
いくつかの概念があります.
≪モデル|Model|oem_src≫:ジオメトリ内の点線面を組み合わせたデータセット
レンダー:モデルからグラフィックを作成するプロセス.
シェーディング:GPUで実行されるコードにコンパイルされます.Openglにはコンパイルツールが含まれており、シェーディングされたソースコードをコンパイルします.
OpenGLは、複数のライブラリを含むコンピュータグラフィックを操作する集合です.一般的にglfw、glut、freeglutなどがあります.
本文はfreeglutをダウンロードすることによってその原理を初歩的に学習し理解する.
1ダウンロードインストール
freeglutライブラリには32ビットと64ビットの2つのバージョンがあり、Qtの構成に応じて自分で選択します.
ダウンロード先:http://www.transmissionzero.co.uk/software/freeglut-devel/
2構成
msvc環境構成(64ビット):
1) .解凍後freeglutファイルのbinファイルの下のx 64ファイルの下のfreeglut.dll、QTへコピーするインストールパスD:QtQt 5.2.4\5.2.4\msvc2017_64binディレクトリの下;2) .解凍後freeglutファイルのincludeファイルの下にあるGLフォルダをQTのインストールパスD:QtQt 5にコピーする.2.4\5.2.4\msvc2017_64includeディレクトリの下;3) .解凍後freeglutファイルのlibファイルの下のx 64ファイルの下のfreeglut.lib,インストールパスD:QtQt 5.2.4\5.2.4\msvc2017_64libディレクトリの下;
MinGW環境構成(32ビットバージョン):
1) .解凍後freeglutファイルのbinファイルの下のfreeglut.dll、QTへコピーするインストールパスD:QtQt 5.2.4\5.9.4\mingw53_32binディレクトリの下;2) .解凍後、freeglutファイルのincludeファイルの下にあるGLファイルを、QTのインストールパスD:QtQt 5にコピーする.2.4\5.2.4\mingw53_32includeディレクトリの下;3) .解凍後freeglutファイルのlibファイルの下のlibfreeglut.a、libfreeglut_static.aファイル、QTへコピーするインストールパスD:QtQt 5.2.4\5.2.4\mingw53_32libディレクトリの下;
上記のような構成の利点は、コンパイル時に-LD:/Qt/Qt 5を使用しなくてもよいことです.9.2/5.9.2/msvc2017_64/libライブラリのディレクトリを指定し、使いやすいです.
3使用
#3つ目は、複数のライブラリが同じフォルダの下にある場合、接続にはLIBS+=-LD:/Qt/Qt 5を使用する.9.2/5.9.2/msvc2017_64/lib -lfreeglut -lOpenGL32
MinGWバージョン:
win32:LIBS += -lOpengl32\ -lglu32\ -lglut\ -lfreeglut
ライブラリの使用時に接頭辞libおよび接尾辞はない.a .lib、しかし接頭辞-lがあります
最後にcppに#includeを加えてglutの関数を使用できます.
使用するソースコードを添付します.
#include "GL/glut.h"
//
void init() {
glClearColor(0.1, 0.1, 0.4, 0.0);
glShadeModel(GL_SMOOTH);
}
//
void display() {
//
glClear(GL_COLOR_BUFFER_BIT);
//
glBegin(GL_TRIANGLES);
glColor3f(1, 0, 0);
glVertex3f(-1, -1, -5);
glColor3f(0, 1, 0);
glVertex3f(1, -1, -5);
glColor3f(0, 0, 1);
glVertex3f(0, 1, -5);
glEnd();
//
glFlush();
}
//
void reshape(int w, int h) {
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0, (GLfloat)w/(GLfloat)h, 0.1, 100000.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
int main(int argc, const char * argv[]) {
//
glutInit(&argc, const_cast(argv));
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
//
glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow(argv[0]);
init();
glutReshapeFunc(reshape);
glutDisplayFunc(display);
//
glutMainLoop();
return 0;
}