法線マップを用意してCanvas上でShadingするサンプル

何かこのページだいぶ前にメモったつもりだったんだけどな。

Normal Mapping with Javascript and Canvas





まあ、ラスタライズ後の処理だけ実装した感じだよね。これがあるだけで立体感がまるで違う。この例ではマウスでライトを制御してるけど、もちろん自動でライトの方向を三次元的にグルグル動かすことも可能なはず。(オブジェクトが動かないだけ)

これのサンプルコード見てて知ったんだけど、JavaScriptって関数の中に関数を記述する『クロージャ』ってのがあるのね。クロージャについてはもう少し勉強しよう。

ついでに
Realtime Raytracing in Javascript!
Path tracing a cornell box in Javascript

関連記事

OpenAR:OpenCVベースのマーカーARライブラリ

UnityのAR FoundationでARKit 3

ZBrushで人型クリーチャー

マジョーラ

Seleniumを使ったFXや株の自動取引

iPhone欲しいなぁ

Mayaのポリゴン分割ツールの進化

アニゴジ関連情報

uGUI:Unityの新しいGUI作成システム

Konashiを買った

ZBrushでアヴァン・ガメラを作ってみる 腕の作り込み

『PIXARのひみつ展』に行ってきた

世界一下品なクマと世界一紳士なクマ

オープンソースの顔認識フレームワーク『OpenBR』

BGSLibrary:OpenCVベースの背景差分ライブラリ

OpenSfM:PythonのStructure from ...

まだ続くブログの不調

1枚の画像からマテリアルを作成できる無料ツール『Materi...

PGGAN:段階的に解像度を上げて学習を進めるGAN

openMVG:複数視点画像から3次元形状を復元するライブラ...

UnityでOpenCVを使うには?

ブラウザ上でJavaScript,HTML,CSSを書いて共...

Structure from Motion (多視点画像から...

ブラウザ操作自動化ツール『Selenium』を試す

Geogram:C++の3D幾何アルゴリズムライブラリ

Polyscope:3Dデータ操作用GUIライブラリ

ヘッドマウントディスプレイとビジュアリゼーションの未来

ZBrushでゴジラ2001を作ってみる 側頭部のボリューム...

オープンソースの物理ベースレンダラ『Mitsuba』をMay...

このブログのデザインに飽きてきた

ZBrushで仮面ライダーBLACK SUNを作る 頭部~バ...

ZBrushのZmodelerとDynamic Subdiv...

BSDF: (Bidirectional scatterin...

Google Earth用の建物を簡単に作れるツール Goo...

Super Resolution:OpenCVの超解像処理モ...

ZBrushでアヴァン・ガメラを作ってみる 歯を配置

リアルタイム レイトレーシングAPI『DirectX Ray...

CEDEC 3日目

TeleSculptor:空撮動画からPhotogramme...

『スター・ウォーズ 最後のジェダイ』のVFXブレイクダウン ...

ポリ男をリファイン

書籍『The Art of Mystical Beasts』...

コメント