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

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

Normal Mapping with Javascript and Canvas





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

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

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

関連記事

書籍『ゼロから作るDeep Learning』で自分なりに学...

Quartus II

ジュラシック・パークの続編『ジュラシック・ワールド』

アクセス元IPアドレスから企業名が分かるアクセス解析『Use...

株式会社ヘキサドライブの研究室ページ

PyTorch3D:3Dコンピュータービジョンライブラリ

Deep Fluids:流体シミュレーションをディープラーニ...

書籍『メイキング・オブ・ピクサー 創造力をつくった人々』を読...

Mayaのシェーディングノードの区分

Blender 2.8がついに正式リリース!

Mechanizeで要認証Webサイトをスクレイピング

Blender 2.81でIntel Open Image ...

Point Cloud Libraryに動画フォーマットが追...

python-twitterで自分のお気に入りを取得する

ラクガキの立体化 分割ラインの変更・バランス調整

動的なメモリの扱い

BlenderのGeometry Nodeで遊ぶ

UnityからROSを利用できる『ROS#』

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

MetaHumanの頭部をBlenderで編集できるアドオン

Raspberry Pi 2のGPIOピン配置

フリーで使えるスカルプト系モデリングツール『Sculptri...

WordPressのテーマを自作する

viser:Pythonで使える3D可視化ライブラリ

ジュラシック・パークのメイキング

ZBrushのUndo Historyをカメラ固定で動画化す...

ZBrushでアヴァン・ガメラを作ってみる 口内の微調整・身...

CycleGAN:ドメイン関係を学習した画像変換

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

UnrealCV:コンピュータビジョン研究のためのUnrea...

ガメラ生誕50周年

mentalrayのSubsurface Scatterin...

Caffe:読みやすくて高速なディープラーニングのフレームワ...

トランスフォーマー/ロストエイジのメイキング

OpenCVでカメラ画像から自己位置認識 (Visual O...

After Effects全エフェクトの解説(6.5)

WinSCP

Unreal Engine 5の情報が公開された!

OpenMVS:Multi-View Stereoによる3次...

まだ続くブログの不調

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

ZBrushCore

コメント