とある科学の備忘録

とある科学の備忘録

CやPythonのプログラミング、Arduino等を使った電子工作をメインに書いています。また、木製CNCやドローンの自作製作記も更新中です。たまに機械学習とかもやってます。

OpenGL

【C++/OpenGL】インスタンス化を用いてパーティクル出力

にゃんぱすー。お久しぶりです。期末テストが終わって夏休みに入ったのでブログを再開しようかなぁと考えているところです。 プログラム 実行結果 解説 インスタンス化 データ共有によるメモリ削減(glVertexAttribDivisor) パーティクルのシミュレーション…

【C++】OpenGLで描画したものをOpenCVのMatに変換

すること サンプルプログラム 実行結果 解説 オフスクリーンレンダリング レンダリングしたデータを取得 すること shizenkarasuzon.hatenablog.com 少し前に、OpenGLを使って四角形を表示するプログラムを書きました。この記事ではOpenGLでレンダリングを行…

【C++/OpenGL】NO.8 ASCII文字をテクスチャを使って描画

前回の記事で、配列からテクスチャを生成し(≧▽≦)マークを描画する、という事をしました。 shizenkarasuzon.hatenablog.com 今回は、これを使って文字列を描画してみます。 準備(配列作成) サンプルプログラム 実行結果 解説 準備(配列作成) 文字をテクス…

【C++/OpenGL】NO.7 OpenCVのcv::MatをOpenGLのテクスチャに変換する

内容 結論 サンプルプログラム 実行結果 内容 タイトルの通りです。 OpenCV(画像処理ライブラリ)のcv::Mat型の画像データをOpenGLのテクスチャに変換します。 結論 cv::Mat型において、実際の画像データが格納されている場所は、img.ptr()で知ることができ…

【C++/OpenGL】NO.5 透明度付きテクスチャの表示(GLbyte配列から生成)

この記事の内容 プログラム 実行結果 解説 アルファテクスチャを描画する時の設定 この記事の内容 前回の記事では、画像ファイル(rawファイル)を読み込んでテクスチャとして表示してみました。前回の記事↓ shizenkarasuzon.hatenablog.com 今回は、raw画像…

【C++/OpenGL】NO.6 Win32 APIを利用して文字の表示(日本語OK!)

前書き プログラム 実行結果 解説 参考文献 前書き freeglutを使って文字の表示をすることもできますが、freeglutを使うには勿論freeGLUTを#includeする必要が出てきます。ですが、そうすると、同時にGLFWをインクルードできないので、メインループやイベン…

【C++/OpenGL】NO.5 テクスチャの表示(RAWファイルから)

プログラム .rawファイル作成 実行結果 以下、解説 UV座標について 全体的な流れ テクスチャの有効化 テクスチャの生成 テクスチャの作成 テクスチャに画像を割り当てる ラッピング フィルタ 画像を拡大するときに使えるフィルタ 画像を縮小するときに使える…

【C++/OpenGL】NO.4 行列を使って、図形を移動・回転させ、ピクセル座標→同軸座標の変換も行う!

タイトルが長ぇよ はじめに プログラム1(回転) 実行結果 解説 行列の考え方 そのまま 拡大縮小 移動 反転 回転 座標変換(左上原点ピクセル座標→中央原点同軸座標) プログラム2(ピクセル座標→同軸座標) 実行結果 はじめに 行列を使うことで、図形を回転…

【C++/OpenGL】NO.4 イベント処理(Callback関数)一覧

プログラム 実行結果 解説 プログラム サンプルプログラムです。このプログラムにイベント処理の内容を付け加えただけです #include <GL/glew.h> #include <GLFW/glfw3.h> #include <Windows.h> #include <stdio.h> #include <iostream> GLint makeShader() { const char* vertex_shader = "#version 400\n" "in vec3</iostream></stdio.h></windows.h></glfw/glfw3.h></gl/glew.h>…

【C++/OpenGL】NO.3  複数の四角形表示

このページの内容 プログラム 実行結果 解説 複数のポリゴンを描画する 変更点1(GLfloat points[]) 変更点2(GLfloat colors[]) 変更点3(VBOのサイズ変更) 変更点4(glDrawArrays関数) 実行結果 このページの内容 前回はもっとも簡単なプログラムで三…

【C++/OpenGL】NO.2 プログラムの書き方編➀

前回のプログラム(緑色の三角形を表示するやつ)の解説その1です。 プログラム全文は前回の記事を見てください。 shizenkarasuzon.hatenablog.com OpenGLでポリゴンを表示するには以下のような手順が必要です GLFWとGLEW(またはGLAD)の初期設定 Windowの生…

【C++/OpenGL】NO.1 OpenGLの仕組みと三角形表示

OpenGLとは OpenGLの仕組み(適当に解説) VBOとVAO 頂点シェーダ(Vertex Shader) フラグメントシェーダ(Fragment Shader) ラスタライズ スワップバッファ 深度バッファ OpenGLの座標の考え方 ViewPortとシザー矩形 GLSLとは プログラム 実行結果 OpenGLと…