three.jsをさわってみた話
3Dに興味あります。そこでjavascriptで3Dに関することを扱うライブラリでthree.jsというのを触ってみました。レンダリングにwebglを使えることが特徴です。コード書いたのだいぶ前だけど忘れないうちにメモ。
○three.js
○three.jsを使って作ったもの
ゲームっぽいもの。すぐに動きます。
https://dl.dropboxusercontent.com/u/19360039/threejs-sandbox/examples/game_avoidblock.html
○ソースコード
https://github.com/arvelt/threejs-sandbox/blob/master/examples/game_avoidblock.html
3Dのあれやこれをあれほどの少ないコード量で書くことができます。3Dのことを全く知らない状態から初めていますが、とりあえず動くものを作ることができました。
○気づいたこと
・3Dがそもそもわからない
サイトならここ
http://wgld.org/d/webgl/w003.html
本ならこれ
1,2,3章あたりに、コンピューターで3Dを扱うことの体系的な概念が書いてあるので、ほんとうの初学者におすすめ。
コンピューターで2Dとか3Dとかって意味わからんしと思ってたのが、ぼんやりとわかるようになる。
・んでthree.jsで何ができんの
公式サイトのexsample。
http://stemkoski.github.io/Three.js/
three.jsのサンプルを集めたサイト。こういうことやりたいときはどうやんのってときに探しに行くときに眺めると閃きを得たりする。
webglはそもそもなんやねんというのがわからないときなど。体系的に書いてるので読みやすい。
・実際にとるべき手順
1.まず3Dの概念をおぼろげに理解する
2.それらがthree.js上でどう抽象化されているか把握する
3.自分がやりたいことは3D的にどう実現したらいいかを分割する
4.その分割した要素をやってるサンプルを探す。
5.ソースを読んで真似をする
6.コード書く、動かす、デバッグする。
7.4-6を繰り返す。
8.完成!
・まとめ的な
three.jsはシーン、ジオメトリ、ライト、カメラ、レンダリング、を書いていくと完成する。
three.jsはいまだ黎明期であり、バージョン上がれば動かなかったりするようなものがざらにあるので注意しないといけない。
3Dのモデルは形状と表面を分けて考える。
表示するものがないとなにも意味が無いので、3Dモデリングが最も重要。
3Dの本質は数学の世界なのでかつて因数分解でつまづいた私には手に負えない。もし続けていくならば、抽象化したものに対する操作の概念として把握しなければならない。