マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

OpenGL

Lat式ミク対応版(?)をgithubへ

https://github.com/d-kami/MMD-on-RubyにLat式ミク対応版(?)をあげておきました。Lat式ミクはhttp://bowlroll.net/up/dl3934からダウンロードして、toonで始まる画像をMMD-on-Rubyのtoonフォルダへ、他のファイルはmodelフォルダに入れます。pmdファイルは…

RubyでもLat式ミクさん

まだ手抜きではあるが、RubyでもLat式ミクさん表示できた。ただし、github上のプログラムだと無理だけどね!頑張ってそのうち対応する予定

+αをしてみる

面白いプログラムがあったので+αをしてみた。変更点はシェーダととrubyの部分のlookを変えただけ。とりあえずスクリーンショットを載せる shaderは以下のようにした。まずは頂点シェーダ attribute vec3 position; void main(){ vec4 pos = gl_ModelViewProj…

更新!

今までシェーダでLambertを混ぜていたが、それをやめた。そして新たにtoonという画像を使うことに。前に比べて平面的になった気がするが、こっちの方が正しいのだろう。多分 https://github.com/d-kami/MMD-on-Ruby

久々のgithub

MMD on Rubyをgithubで公開しました。久しぶりにgithubを使ったので、なんか緊張してました。なにか忘れてそう https://github.com/d-kami/MMD-on-Ruby

モデル描画

前回のエントリのmmd.rbと今回のmain.rbとシェーダを合わせれば一応MMDのモデルは描画できる。ただし、テクスチャを貼ってないので目が表示されない。怖い。なので正面から見ないようにしましょう。MMDデフォルトのモデルの初音ミク.pmdをmiku.pmdに名前を変…

RubyでGLSLしてみた その2

シェーダーのコンパイルエラーの取得方法がわかった。こんな感じで書いたら見事エラーメッセージが例外に乗って飛んできた。 if !GL.GetShaderiv(shader, GL_COMPILE_STATUS) raise(GL.GetShaderInfoLog(shader)); end ついでにLambertをやってみた。3Dっぽ…

RubyでGLSLしてみた

RubyでOpenGLをやってみるとRuby/Qt/OpenGL で GLSL を使ってみるを参考にRubyでGLSLしてみた。シェーダーでは単純に赤く塗りつぶしてるだけなので立体感が無い状態だけど、そのうちLambertなりPhongあたりをやる予定。 。シェーダーのコンパイル時のエラー…

モデル読み込み

何かライブラリがあれば...と思っていたが見つからなかったので過去に自分で作ったメタセコイアのモデルを読み込むやつを使うか。我ながら酷い出来だ。色使えないし、テクスチャ使えないし。構造無視だし

OpenGLを勉強するときに読んだ本達

どの本が素晴らしいのかなんてわからないので、とりあえず俺がOpenGLおよびGLSLを勉強するために読んだ本達。前のエントリででてきたように圧倒的に工学社である。シェーダーの本はサンプルが多いのが良かった。でもシェーダーで一番お世話になったのがHLSL…

今まで読んだGLSLの本

今まで読んだOpenGLのシェーダーGLSLの本。本を一度読んだだけで理解するのは難しいが(俺にとっては難しかった)、サンプルをいじっていくうちにわかったような気分になれる。とにかくサンプルが豊富なのは嬉しい。画像処理のほうは2Dがメインで3D-CGのほうは…

こんなシェーダー書いてみたいものだ

『OpenGL+GLSLによる3D‐CGアニメーション』にあったシャボン玉のサンプルが面白いと思った。こんなシェーダーを書いてみたい。うまく使えばバイオハザードリベレーションズのラスボスの幻影が消えるときの演出みたいなのができるかもしれない。わからんけど …

法線ベクトルのミスではなかった

Zバッファの指定を忘れてたけど、Zバッファを有効にしても変な表示のされかたで、ちらつきが酷かった。ためしに銃を小さくして、perspectiveの奥のクリップ面の距離を縮めたら、納得のいく表示になった。何か処理落ちでもしてたのだろうか?

法線ベクトルの計算をミスした

前回までだと、全てが真っ黒になってしまい、大まかな形は見えたが細かいパーツが見えなくなってしまった。法線ベクトルを設定してなかったからだが、今回は計算してみた。ベクトルの外積と正規化を行い、法線ベクトルを求めた!しかし、問題発生...以下の画…

mqoを読み込んでみる その4 表示編

不完全ながらついにAndroid端末上でmqoを表示させるときが来た!テクスチャや色は無視して真っ黒にしていたり、ポリゴンは三角形にしか対応してないので、メタセコイアで四角形面を三角形化しておかないと表示できないが、とにかく先に表示してみよう。とい…

GLUTのデモを使う

GLUTに3Dモデルを読み込んで表示するデモがあったので、自分で作ったイングラムM11もどきで試してみた。使ったデモは(GLUTのフォルダ)\progs\demos\smoothにあったやつで、objファイルを読み込めるので、メタセコイアでobjを出力して読み込ませた。次はAndro…

やはり下らないミスだった

計算式の()の位置間違えて計算結果がおかしくなっていた。よく確認しないとね〜。それでうまく波を表示できた。もう少し自然な感じをだしたい

何かがおかしくなった

GL側で3次元で定義してたのにシェーダ側で2次元で処理してたために波が表現できないというアホなことをやっていたが、シェーダ側を修正して、さぁ!表示だ!と思ったら何か変な表示になった。変なバグを埋め込んでしまったらしい!またしょうもないミスなん…

波を表現したい

WebGLで波を表現したいと思っているが、まだできてない。これから先もできないかもしれないがやってみたい。画像の上の平面に波をだして、下の平面に影を落としてみたい

glMatrix-0.9.5.min.jsを使ってみた

WebGLで座標変換のプログラムを全部書くのは大変なのでglMatrix-0.9.5.min.jsを導入した。物体の移動、回転、透視投影変換がとても楽になった。ライティングは『OpenGL+GLSLによる3D‐CGアニメーション』を参考にした。わかってないところが多く、ほとんどそ…

透視投影変換

ここらへんが参考になりそう http://marina.sys.wakayama-u.ac.jp/~tokoi/?date=20090829

全然わからねぇ

Shaderの勉強しているが全然わからねぇ。このサンプルいいなぁと思っているが理解できそうもなかった OpenGL+GLSLによる3D‐CGアニメーション (I・O BOOKS)作者: 酒井幸市出版社/メーカー: 工学社発売日: 2009/08メディア: 単行本購入: 1人 クリック: 8回この…

テクスチャマッピングしてみる

化け猫アイコンメーカーで作ったこの画像を使ってテクスチャマッピングしてみた。ついでにシェーダーで半分色反転させてみた <html> <head> <title></title> <script> window.onload = function() { var image = new Image(); image.src = "./bakeneko.png"; image.onload = function() { render</head></html>…

WebGLを使ってみる

下記リンクを参考にWebGLを使ったプログラムを書いてみた。FirefoxとChromeの最新版で動作確認した http://www.html5rocks.com/en/tutorials/webgl/webgl_fundamentals/メインプログラムはほぼそのままだが、フラグメントシェーダーを少しいじった。x座標が1…

シェーダー楽しい

いろいろなエフェクトをかけられて面白い。俺のノートPCだとエフェクトによっては重くなるけど

シェーダーでモザイクをかけてみた

画素周辺の平均値を使ってモザイクをかけてみた頂点シェーダー varying vec2 pos; void main(void){ pos = gl_Vertex.xy; gl_Position = ftransform(); } フラグメントシェーダー uniform sampler2D image; //画像 uniform int imgWidth, imgHeight; //画像…

シェーダで遊んでみる

色反転プログラムを改造して右半分と左半分で分けてみた。プログラムはこんな感じ頂点シェーダー varying vec2 pos; void main(void) { pos = gl_Vertex.xy; gl_Position = ftransform(); } フラグメントシェーダー uniform sampler2D image; uniform int im…

GLSL始めました

GLSLを使い始めた。まずは画像の色反転を行った。上が元の画像で下が変換後の画像。これから、いろいろやっていきたい

今、OpenGL使ってるので

OpenGLのことを書いていこうかと思う。ただOpenGL ES 1.0で2Dだけどね!

GWTGLの作業をもう少し進めてみた

GAEにアップロードした。Chrome 9以降なら動くはず。Firefoxはよくわからない。http://webgl-test.appspot.com/カクカクになってしまったが動画も撮ってみた