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

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

Normal Mapping with Javascript and Canvas





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

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

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

関連記事

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

Mask R-CNN:ディープラーニングによる一般物体検出・...

Google App Engine上のWordPressでF...

昔Mayaでモデリングしたモデルをリファインしてみようか

WordPressのテーマを自作する

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

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

ZBrushでアヴァン・ガメラを作ってみる 下半身のバランス...

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

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

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

HD画質の無駄遣い その2

Vancouver Film Schoolのデモリール

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

動的なメモリの扱い

CGWORLD CHANNEL 第21回ニコ生配信は『シン・...

チャットツール用bot開発フレームワーク『Hubot』

ZBrushCore

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

Google Chromecast

OpenMayaのPhongShaderクラス

GoB:ZBrushとBlenderを連携させるアドオン

CGレンダラ研究開発のためのフレームワーク『Lightmet...

Python for Unity:UnityEditorでP...

映画『ブレードランナー 2049』のVFX

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

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

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

スターウォーズ エピソードVIIの予告編

Unityの各コンポーネント間でのやり取り

iPhoneアプリ開発 Xcode 5のお作法

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

MVStudio:オープンソースのPhotogrammetr...

手を動かしながら学ぶデータマイニング

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

布地のシワの法則性

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

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

ブログが1日ダウンしてました

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

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

色んな三面図があるサイト

コメント