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

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

Normal Mapping with Javascript and Canvas





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

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

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

関連記事

libigl:軽量なジオメトリ処理ライブラリ

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

OpenCV 3.3.0 contribのsfmモジュールの...

NeuralNetwork.NET:.NETで使えるTens...

NeRF (Neural Radiance Fields):...

Dlib:C++の機械学習ライブラリ

映画『シン・仮面ライダー』 メイキング情報まとめ

SONY製のニューラルネットワークライブラリ『NNabla』

ZBrushで手首のモデリングをリファイン

PureRef:リファレンス画像専用ビューア

Blender 4.2以降のWindowsPortable版...

OpenMayaのPhongShaderクラス

OpenVDB:3Dボリュームデータ処理ライブラリ

フルCGのウルトラマン!?

Open Shading Language (OSL)

OpenCVのバージョン3が正式リリースされたぞ

PolyPaint

ZBrushで仮面ライダー3号を造る 仮面編 失敗のリカバー

IronPythonを使ってUnity上でPythonのコー...

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

実写と実写の合成時の色の馴染ませテクニック

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

Webサイトのワイヤーフレームが作成できるオンラインツール

Pylearn2:ディープラーニングに対応したPythonの...

OpenCV バージョン4がリリースされた!

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

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

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

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

ZBrushの作業環境を見直す

OpenCV 3.1のsfmモジュールを試す

オープンソースのネットワーク可視化ソフトウェアプラットフォー...

自前のShaderがおかしい件

KelpNet:C#で使える可読性重視のディープラーニングラ...

hloc:SuperGlueで精度を向上させたSfM・Vis...

海外ドラマのChromaKey

ラクガキの立体化 反省

生物の骨格

HerokuでMEAN stack

OpenCVでiPhone6sのカメラをキャリブレーションす...

ニンテンドー3DSのGPU PICA200

「ベンジャミン·バトン数奇な人生」でどうやってCGの顔を作っ...

コメント