OpenGL
https://github.com/d-kami/MMD-on-RubyにLat式ミク対応版(?)をあげておきました。Lat式ミクはhttp://bowlroll.net/up/dl3934からダウンロードして、toonで始まる画像をMMD-on-Rubyのtoonフォルダへ、他のファイルはmodelフォルダに入れます。pmdファイルは…
まだ手抜きではあるが、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
MMD on Rubyをgithubで公開しました。久しぶりにgithubを使ったので、なんか緊張してました。なにか忘れてそう https://github.com/d-kami/MMD-on-Ruby
前回のエントリのmmd.rbと今回のmain.rbとシェーダを合わせれば一応MMDのモデルは描画できる。ただし、テクスチャを貼ってないので目が表示されない。怖い。なので正面から見ないようにしましょう。MMDデフォルトのモデルの初音ミク.pmdをmiku.pmdに名前を変…
シェーダーのコンパイルエラーの取得方法がわかった。こんな感じで書いたら見事エラーメッセージが例外に乗って飛んできた。 if !GL.GetShaderiv(shader, GL_COMPILE_STATUS) raise(GL.GetShaderInfoLog(shader)); end ついでにLambertをやってみた。3Dっぽ…
RubyでOpenGLをやってみるとRuby/Qt/OpenGL で GLSL を使ってみるを参考にRubyでGLSLしてみた。シェーダーでは単純に赤く塗りつぶしてるだけなので立体感が無い状態だけど、そのうちLambertなりPhongあたりをやる予定。 。シェーダーのコンパイル時のエラー…
何かライブラリがあれば...と思っていたが見つからなかったので過去に自分で作ったメタセコイアのモデルを読み込むやつを使うか。我ながら酷い出来だ。色使えないし、テクスチャ使えないし。構造無視だし
どの本が素晴らしいのかなんてわからないので、とりあえず俺がOpenGLおよびGLSLを勉強するために読んだ本達。前のエントリででてきたように圧倒的に工学社である。シェーダーの本はサンプルが多いのが良かった。でもシェーダーで一番お世話になったのがHLSL…
今まで読んだOpenGLのシェーダーGLSLの本。本を一度読んだだけで理解するのは難しいが(俺にとっては難しかった)、サンプルをいじっていくうちにわかったような気分になれる。とにかくサンプルが豊富なのは嬉しい。画像処理のほうは2Dがメインで3D-CGのほうは…
『OpenGL+GLSLによる3D‐CGアニメーション』にあったシャボン玉のサンプルが面白いと思った。こんなシェーダーを書いてみたい。うまく使えばバイオハザードリベレーションズのラスボスの幻影が消えるときの演出みたいなのができるかもしれない。わからんけど …
Zバッファの指定を忘れてたけど、Zバッファを有効にしても変な表示のされかたで、ちらつきが酷かった。ためしに銃を小さくして、perspectiveの奥のクリップ面の距離を縮めたら、納得のいく表示になった。何か処理落ちでもしてたのだろうか?
前回までだと、全てが真っ黒になってしまい、大まかな形は見えたが細かいパーツが見えなくなってしまった。法線ベクトルを設定してなかったからだが、今回は計算してみた。ベクトルの外積と正規化を行い、法線ベクトルを求めた!しかし、問題発生...以下の画…
不完全ながらついにAndroid端末上でmqoを表示させるときが来た!テクスチャや色は無視して真っ黒にしていたり、ポリゴンは三角形にしか対応してないので、メタセコイアで四角形面を三角形化しておかないと表示できないが、とにかく先に表示してみよう。とい…
GLUTに3Dモデルを読み込んで表示するデモがあったので、自分で作ったイングラムM11もどきで試してみた。使ったデモは(GLUTのフォルダ)\progs\demos\smoothにあったやつで、objファイルを読み込めるので、メタセコイアでobjを出力して読み込ませた。次はAndro…
計算式の()の位置間違えて計算結果がおかしくなっていた。よく確認しないとね〜。それでうまく波を表示できた。もう少し自然な感じをだしたい
GL側で3次元で定義してたのにシェーダ側で2次元で処理してたために波が表現できないというアホなことをやっていたが、シェーダ側を修正して、さぁ!表示だ!と思ったら何か変な表示になった。変なバグを埋め込んでしまったらしい!またしょうもないミスなん…
WebGLで波を表現したいと思っているが、まだできてない。これから先もできないかもしれないがやってみたい。画像の上の平面に波をだして、下の平面に影を落としてみたい
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を使ったプログラムを書いてみた。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を使い始めた。まずは画像の色反転を行った。上が元の画像で下が変換後の画像。これから、いろいろやっていきたい
OpenGLのことを書いていこうかと思う。ただOpenGL ES 1.0で2Dだけどね!
GAEにアップロードした。Chrome 9以降なら動くはず。Firefoxはよくわからない。http://webgl-test.appspot.com/カクカクになってしまったが動画も撮ってみた