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

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

Normal Mapping with Javascript and Canvas





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

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

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

関連記事

組み込み向けのWindows OS 『Windows Emb...

CEDEC 3日目

ZBrushでゴジラ2001を作ってみる 目元だけ作り込んで...

トランスフォーマーの変形パターンを覚えるのは楽しいと思うんだ

ブログの復旧が難航してた話

物理ベースレンダリングのためのマテリアル設定チートシート

クラスの基本

ZBrushトレーニング

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

『ピクサー展』へ行ってきた

3DCGのモデルを立体化するサービス

TorchStudio:PyTorchのための統合開発環境と...

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

ZBrushでアヴァン・ガメラを作ってみる 頭頂部と首周りを...

ZBrushでアマビエを作る その2

OpenCVのfindEssentialMat関数を使ったサ...

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

マジョーラ

Adobe Photoshop CS5の新機能

Unityで強化学習できる『Unity ML-Agents』

『パシフィック・リム: アップライジング』のVFXブレイクダ...

OpenCVの顔検出過程を可視化した動画

Javaで作られたオープンソースの3DCGレンダラ『Sunf...

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

ZBrushと液晶ペンタブレットでドラゴンをモデリングするチ...

ラクガキの立体化 モールドの追加

ROSの薄い本

単純に遊びに行くのはだめなのか?

clearcoat Shader

bpy-renderer:レンダリング用Pythonパッケー...

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

スクレイピング

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

Maya API Reference

SIGGRAPH ASIAのマスコット

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

UnityでShaderの入力パラメータとして行列を渡す

Manim:Pythonで使える数学アニメーションライブラリ

機械学習手法『Random Forest』

Human Generator:Blenderの人体生成アド...

ラクガキの立体化 進捗

中学3年生が制作した短編映像作品『2045』

コメント