プログラミング基礎2
Programming 2
CG検定の問題をプログラミングで実装してみましょう。
Index
- ディジタル画像
- 画像の変形
- フラクタル
- パラメトリック曲線
- モデリング応用
- レンダリング
- アニメーション
CGの開発環境
Development Tools
CGの特にリアルタイムCGの開発は、当初はC言語によってグラフィックス環境ごとに与えられたグラフィックスライブラリを用いて行っていました。その後、グラフィックスライブラリとしてOpenGLという公共性の高い仕様が策定され、しばらくの間はOpenGLをC/C++言語を用いて開発するスタイルが一般的となりました。他方でMicrosoft社のグラフィックスライブラリDirectXでの開発も行われました。その後、Java言語やC#言語が登場するとOpenGLのC言語以外の言語への移植も試みられました。他方でウェブブラウザ上でのグラフィックス環境も進化し続け、現在ではOpenGLをベースにしたWebGLがウェブグラフィックスのインフラとなりつつあります。このように進化しつつも多様化してきたCGの開発環境として、現在以下のようなものが挙げられます。
- Processingは、Windows,Mac,Linuxのマルチプラットフォームで開発ができ、従来のOpenGLを使ったCG開発をスマートに出来る点でお勧めです。Java言語によるオブジェクト指向プログラミングが可能である点もメリットです。開発環境は無料であり公共性もありますが、専用の開発環境が必要である点はいささかデメリットでもあります。
- Unityは、ゲーム開発用エンジンですが、CG開発のプラットフォームにも適しています。従来CGの開発はプログラムで行えば複雑なモデルや外部デバイスの取扱が億劫となり、CGソフトを使うと今度はプログラム開発による自由度が奪われてしまうというジレンマに陥っていました。Unityはこの問題を払拭するような存在と言えます。また例えばWindowsやMac上で開発しても、スマートフォン向けのコンテンツやウェブコンテンツを出力することもできます。このようにマルチプラットフォーム向けの開発が可能な点、VR装置をはじめとする外部デバイスと容易に接続できる点は大きなメリットと言えます。ただ、使えるようになるまでの努力を考えると、テスト的な用途には向かないかもしれません。
- WebGLによりブラウザでCGを実行することができるようになりましたが、WebGLのローレベルの機能のみでアプリケーション開発を行うのは容易でないため、Three.jsなどのHTML5(JavaScript)のライブラリが色々登場してきています。他にProcessingから派生し、インタラクティブ性を必要とする手続き型のプログラミングに向いているp5.js、Flashアニメーションを起源にもつcreate.jsなども有力候補です。ウェブ向けのCGは、特別な開発環境が不要である点、作成したアプリケーションをウェブに即座に公開できる点がメリットと言えます。
[秘密のページ]
This site is powered by