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

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

Normal Mapping with Javascript and Canvas





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

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

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

関連記事

ZBrushでアヴァン・ガメラを作ってみる パーツ分割

ArUco:OpenCVベースのコンパクトなARライブラリ

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

Kaolin:3Dディープラーニング用のPyTorchライブ...

クラスの基本

Webスクレイピングの勉強会に行ってきた

『ローグ・ワン/スター・ウォーズ・ストーリー』のVFXブレイ...

WordPress on Windows Azure

MFnMeshクラスのsplit関数

WordPressの表示を高速化する

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

JavaScriptとかWebGLとかCanvasとか

Photogrammetry (写真測量法)

PythonのHTML・XMLパーサー『BeautifulS...

素敵なパーティクル

MPFB2:Blenderの人体モデリングアドオン

現在公開されているWeb API一覧

顔追跡による擬似3D表示『Dynamic Perspecti...

今年もSSII

Phongの表現力パネェ 材質別のPhong Shader用...

2D→3D復元技術で使われる用語まとめ

スクラッチで既存のキャラクターを立体化したい

ちょっと凝り過ぎなWebキャンペーン:全日本バーベイタム選手...

fSpy:1枚の写真からカメラパラメーターを割り出すツール

TensorFlowでCGを微分できる『TensorFlow...

ZBrushでUndo Historyを動画に書き出す

Google App Engineのデプロイ失敗

MPC社によるゴジラ(2014)のVFXブレイクダウン

Raspberry Pi 2のGPIOピン配置

pythonもかじってみようかと

Maya 2015から標準搭載されたMILA

OpenCVで平均顔を作るチュートリアル

Ambient Occlusionを解析的に求める

『スター・ウォーズ/スカイウォーカーの夜明け』のVFXブレイ...

書籍『ROSプログラミング』

『手を動かしながら学ぶエンジニアのためのデータサイエンス』ハ...

Unity MonoBehaviourクラスのオーバーライド...

ZBrushでゴジラ2001を作ってみる 身体のアタリを作る

PythonでMayaのShapeノードプラグインを作る

Paul Debevec

機械学習手法『Random Forest』

天体写真の3D動画

コメント