Mugichoko's blog

Mugichoko’s blog

しがない研究者のプログラミングを中心としたメモ書き.

GLSL

ModernGL奮闘記 (12) - ImGui -

ImGuiをModernGLと組み合わせて使いたいと思い実装してみました.

ModernGL奮闘記 (11) - Compute Shader -

簡単なCompute Shader(コンピュートシェーダ)を実装する.単に,画面の座標値 (uv) をRG色に割り当てるだけ.これで,大抵のことはできるようになった!

ModernGL奮闘記 (10) - Cubemap -

ModernGLでCubemap(キューブマップ)を使ってみる. キューブマップテクスチャを用意して,それを立方体の6面にマッピングする.単なる動作確認が目的なので,できるだけ簡単に実装する方針.

ModernGL奮闘記 (9) - Texture Array -

Texture Arrayを実装する.上下キーを押すことでTexture Array内の2つのテクスチャを切り替える.

ModernGL奮闘記 (8) - αブレンディング -

今回はαブレンディングを実装する.単にQuadを半透明に表示する.

ModernGL奮闘記 (7) - バックバッファの読み込み -

今回はバックバッファに書き込まれている内容をメインメモリに読み込んで表示してみる.よく使うので.

ModernGL奮闘記 (6) - プレビューパッケージ -

今現在のModernGLの最新バージョンは5.6.4なのだが,次期アップデート (5.7.0) から含まれている機能が必要になった.そこでプレビュー版の5.7.0をインストールしてみることにした.

ModernGL奮闘記 (5) - OrbitCamera -

マウスをグリグリするとカメラがある点を注視しながら移動するOrbitCameraを実装する.結論,ModernGLが用意しているクラスを使えばいいだけなので,とても簡単.

ModernGL奮闘記 (4) - Quadの描画 -

前回は,既存のモデルデータを読み込んでいた.今度は自分で矩形のメッシュ (Quad) を定義して表示する.今回,少し問題に直面した...

ModernGL奮闘記 (3) - GLFWウィンドウ -

Stanford Bunnyを読み込めたので,以下の2つに挑戦する. 自分で用意したシェーダを使う それをGLFWウィンドウに表示する やはりフレームは自分で更新したい

ModernGL奮闘記 (2) - ファイル読み込み -

とりあえず,ファイル周りの扱いを便利にする関数があるようなので使ってみる. 今回は,OBJファイルとそれに付随するテクスチャを読み込んで表示させたい.Windowに関しては,とりあえずで動くModernGL-Windowお手製のものを使う.

ModernGL奮闘記 (1) - インストール -

そろそろPythonでOpenGLを使ってもいいんじゃないかと思い始めて,よいラッパー (Wrapper) を探し始めた.そこで見つけたのがModernGL. ロゴはダサイけど,チラ見した感じ,設計方針に好感が持てた(私のC++での設計方針に似ていた)ので使ってみることにし…

Unity + GLSLではSSBOが使えない?

先日からUnity + GLSLで初歩的な実装を試してきましたが,SSBO (Shader Storage Buffer Object) が使えなくて困っています... 具体的にはプレイボタンを押した際にGLSLのコンパイルが始まりますが,SSBOを宣言をしている行でエラーが出てコンパイルに失敗し…

Unity + GLSLの実装をAndroidアプリとして実行する

以前にUnityで作った,単にテクスチャを張るだけのアプリケーションをAndroid用アプリとしてビルドし,実際にAndroid上で動かすのが今回の目標です.

Unity + GLSLで2D Array Textureを使う

前回(Unity + GLSLで独自メッシュにテクスチャを張る)そのタイトルの通り,GLSLでテクスチャマッピングを行いました.今回は,GLSLで2D Array Textureを使ってみたいと思います.だんだんニッチな内容になってきたように思いますが,将来的に必要になると…

Unity + GLSLで独自メッシュにテクスチャを張る

前回は,Unityにて,C#スクリプト内でゲーム実行時に作成したメッシュをGLSL Shaderを使って描画しました.今回は,その『メッシュにテクスチャを張る』のが目標です.

Unity + GLSLで独自のメッシュをC#スクリプトから生成する

前回は,Unityで自分のGLSL ShaderをPrimitive(球体)に適用しました.今回は,前回のUnityプロジェクトを拡張し,Shaderはそのままに『Unityにもともと用意されているPrimitivesとは別に独自にポリゴンメッシュを作成する』が目標です.

UnityでGLSLを使う

これまでOpenGL (GLSL) を使って色々とやってきたのですが,いよいよUnityを使おうと思います.今回の目標は『UnityのGameObjectに自作のGLSL Shaderを適用する』です.

RGB-D SLAMを実装する #7

大域的目標 実行速度の向上 問題の確認 改善 実行結果 GitHubへの公開 参考文献 大域的目標 KellerらのRGB-D SLAM[1]が実装したい!と思い立ったので実装していく,というモチベーションの記録.ちょっとずつ実装している.今回が7回目. 前回(以下,参照)…

MOVERIO + OpenGL ES 2.0 + ジャイロセンサ

目標 開発環境 サンプルプログラム OpenGLES20Activity MyGLSurfaceView MyGLRenderer MoverioGyro 結果 目標 MOVERIOのジャイロセンサから得られた回転のパラメータを使って回転行列を得て,OpenGL ESに与え,頭の回転に合わせて三角形のCGを描画する. Ope…

RGB-D SLAMを実装する #6

大域的目標 できた? 方針の再転換 グローバルマップの管理 点のマージと削除 残った問題 パラメータ調整 実行速度 参考文献 大域的目標 KellerらのRGB-D SLAM[1]が実装したい!と思い立ったので実装していく,というモチベーションの記録.ちょっとずつ実装…

RGB-D SLAMを実装する #5

大域的目標 今回の目標 実装内容 実装結果 所感 参考文献 大域的目標 KellerらのRGB-D SLAM[1]が実装したい!と思い立ったので実装していく,というモチベーションの記録.ちょっとずつ実装している.今回が5回目.モチベーションに関する詳細は初回の記事を…

RGB-D SLAMを実装する #4

大域的目標 画像ピラミッドの実装 画像ピラミッドを使ったICPの実装 実装結果 参考文献 大域的目標 KellerらのRGB-D SLAM[1]が実装したい!と思い立ったので実装していく,というモチベーションの記録.ちょっとずつ実装している.今回が4回目.モチベーショ…

RGB-D SLAMを実装する #3

大域的目標 今回の目標 ICPアルゴリズムの理解 ICPアルゴリズム(画像ピラミッドなし)のGPU実装 実装結果 参考文献 大域的目標 KellerらのRGB-D SLAM[1]が実装したい!と思い立ったので実装していく,というモチベーションの日誌記録.ちょっとずつ実装して…

RGB-D SLAMを実装する #2

大域的目標 方針転換 GLSLによる制約? 解決案 今回の目標 実装 処理フローとメモリ管理 実装結果 参考文献 大域的目標 KellerらのRGB-D SLAM[1]が実装したい!と思い立ったので実装していく,というモチベーションの日誌.ちょっとずつ実装していく.今回が…

GLSL #11: Bilateral Filter

目標 実装環境 参考サイト main.cpp bilateralFilter.comp 結果 目標 前回(下記参照)の予告通り,Bilateral Filterを実装する.

GLSL #10: RGB-D画像からの頂点・法線マップ生成

目標 実装環境 処理内容 流れ 頂点マップの計算 法線マップの計算 サンプルプログラム main.cpp calcVertMap.comp calcNormMap.comp 結果 参考文献 目標 前回(下記参照)は,Compute Shaderを使って,3DCGを描画した際に生成されるZバッファの線形化を行う…

GLSL #9: Zバッファの線形化

目標 Zバッファの線形化とは? 実装環境 レンダリングの流れ サンプルプログラム main.cpp zbuff.comp 結果 目標 前回(下記参照)までの実装を少し変更して,Compute Shaderを使って,3DCGを描画した際に生成されるZバッファの線形化を行うプログラムを作成…

GLSLのCompute ShaderでZバッファを読み込む際のトラブルと解決方法

問題 GLSLのCompute ShaderでZバッファを読み込みたかったのだが,下記のリンクと同じ問題に遭遇した. stackoverflow.com 簡単には,Zバッファを可視化したところ,ワイヤーフレームが強調された用な結果が出力されてしまう問題だ. 結果的に,私の場合は単…

GLSL #8: Compute Shaderを使った画像処理

目標 実装環境 レンダリングの流れ サンプルプログラム main.cpp sample.comp 結果 目標 前回(下記参照)までの実装を組み合わせて用いることで,3DCGを描画した結果に対してCompute Shaderを使って画像処理(Sobelフィルタによるエッジ検出)を行うプログ…