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

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

シェーダー

ドライヤを凍らせてみた

凍ってる様に見えるかはわからないが、凍らせてみた

グローバルイルミネーションもどき公開

グローバルイルミネーションもどきをアップしました。WebGL使ってるので、WebGL対応ブラウザで見てね!Chrome推奨。WASDで移動、JLで視点回転です。衝突判定無し、あと一定時間毎に何かが更新されます http://d-kami.net/di/

グローバルイルミネーションもどき2

私が持ってるノートパソコンに入ってるIntel HD Graphicsだとリアルタイムグローバルイルミネーションはきついかもしれないが、頑張ってる。でも、またグローバルイルミネーションもどきを作ってしまった。

グローバルイルミネーションもどき

上が普通(?)のライティングで下がグローバルイルミネーションもどき。処理が重くて銃にしか適用できなかったが、なんかリアルっぽく見えるようになったので満足

球面調和関数を使ってみた

球面調和関数でキューブマップのテクスチャを圧縮してみた。393KBを144Bまで圧縮している。これからやることは周辺のだいたいの色さえわかればいいので、凄まじい圧縮となっている。更にここから何かするらしい

シャドウマップ再び

微妙に影をグラデーションさせたつもりだが...わかりづらい

キューブマップをするのだが...

球面調和関数というのを使えば近似(?)でコストを下げられるらしい。勉強中...あとはShadow Map系のシェーダやグローバルイルミネーションなども勉強していきたい...

エンボス

久しぶりにWebGLで遊んでみた。とはいっても二次元の画像処理だけど。やったのはエンボスフィルタだと思われる。以下が元の画像とフィルター後の画像。その下にソースコードを載せる元画像 フィルター後 <html> <head> <title></title> <script> window.onload = function() { var image = new </head></html>…

DirectXでShadow Mapがうまくいかなかった理由が

アルファブレンドを有効にしたままShadow Mapを作ってることが問題だったようだ。アルファブレンドを切ってShadow Mapを作ったらうまくいった。なんというミス

失敗か?

影が微妙な感じになってしまった。ほとんど見えない...

次のShadow Mapへ

Shader X6に載っていたACDF Shadow Mapに挑戦中。遠くてわかりづらいが、何かエッジみたいなものが見える。これが特徴なのかな。これから影付け作業に移る。 Shader X6: Advanced Rendering Techniques (Shaderx)作者: Wolfgang Engel出版社/メーカー: Charl…

d-kami.netのシェーダサンプル更新

GLSLサンプルのモノクロ画像のページに申し訳ない程度の解説追加。あとスポットライトも追加しました(トップページのリンクから行けるスポットライトのデモとほぼ同じ) http://d-kami.net/shader/index.html

現在の状況

ジャギーは消えてないが、以前の影に比べて、微妙に影の濃さに変化がでた。以前の奴は影の濃さが一定だったのでくっきりした影だったが、ちょっと柔らかい(?)感じになった。上が新しい方の影で、下が従来の影。新しい方はVariance Shadow Mapをしたつもり

影が...

DirectXでShadow Mapしたつもりが、なんか遮蔽物がない部分にも影ができてる。このキャラクタの左上の方の影は明かにおかしい...Shadow Mapの作り方に問題があるのか、影の描画時に問題があるのか...影の形がおかしいのは今無視する。影のできる場所が問題だ

Shadow Mapの道へ

現在は一般的な(?)Shadow Mapしか使えないが、もっと精度の高い影を描画したい。もっと勉強が必要だ。新しい本の購入も検討している。洋書だけど頑張って読まないと!

海外の人が作ったプログラムを見ている

本についてきた単なるデモだけど日本人が作ったデモとレベルが違う気がする。勿論、日本にもレベルの高いデモは存在するが...いづれはこの技術を吸収していかなければならない。それにしても俺が作ってるShadow Mapのプログラムが如何にチンケな物かがわかる…

環境マッピング?

Directのシェーダで遊んでいたら環境マッピングみたいなのができた。キューブマップじゃないけど、何か屈折していて面白い。まぁ、ここから光学迷彩に持って行くんですけどね!コピーとかせずに自分なりにやっていくと思わぬ発見がある

スポットライトのデモをアップしました

WebGLを使ったスポットライトのデモをアップしました。壁とか普通に貫通します(悲しい

バグらせた。しかし...

Shadow Mapで遊んでいたら、シェーダでミスして複数の影が重なりあうような現象が発生。ソフトな影を目指してたけど、これはこれでちょっと弄れば使えそう

+αをしてみる

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

光源の位置を考える必要がある

ステージ全体を対象としたShadow Mapがめんどくさそうなので、プレイヤーキャラの近くだけ影ができるようにしてみようか。ただ光源もキャラに合わせて動かさないといけなさそうな感じがするが。↓のスクリーンショットは光源をプレイヤーに近づけたときにでき…

ちょっとだけ改善した

改善したけど、まだギザギザだ。そして重くなった。改善方法を探さねば。

シャドウマッピング...あれ?

シャドウマッピングをして影を付けたつもりが、影がギザギザになってしまった...

Shadow Mapに挑戦中

WebGLで影を表示させたいので、GW中に完成させたい。そしてgl.enchant.jsでも影使ってみたい。そういえば前にやると言っていたFPGAのROMとRAMの使い方も進んでないし、DNSのやりとりも全然調べてない。これらもGW中にやりたい。

部分的に拡大表示

特定の領域だけ拡大表示するようなプログラムを作成した。ACOGスコープとかで使える?

四角いライト

誰得な気もするが、四角いライトを作成した

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あたりをやる予定。 。シェーダーのコンパイル時のエラー…

変なライトを作った

直線状のライトを作ってみた。ライトの位置計算にcosを使ってるため、一定間隔で直線状を照らしている。ライトの間隔も変えられるようにした。ただし、使い道に困る

丸影

gl.enchant.jsには影を描画する機能がなかったので、作ってみた