ホーム / OpenGLに代表される3Dプログラミング / OpenGLシェーダー
バーテックスシェーダー(Vertex Shader)やフラグメントシェーダー(Fragment Shader)を使ったOpenGLアプリケーションから、シェーダー単体ソースまで、シェーダーに関わるあらゆるプログラミングを行います。
シェーダー(Shader)とは
これまでライブラリ内部で処理していた各頂点の座標変換や光源計算、各ピクセルのテクスチャ色計算などを、ユーザーのプログラムによって任意に処理を組み込めるようにした技術で、OpenGL2.0からこの機能がサポートされています。
一般的にシェーダー機能は、3D描画のハードウェア(ビデオカードなど)に実装されており、OpenGL2.0対応のハードウェアでのみ実行が可能です。
最近は、カーナビやPDA、携帯電話などの機器の一部でOpenGL2.0が利用できるようになっており、PCだけでなく、組込み機器でもシェーダープログラムが利用できる環境が整ってきています。
シェーダー利用例
- リアルタイムバンプマッピング(Bump Mapping)

- リアルタイムトゥーンシェーディング(Toon Shading)

- オリジナル光源
OpenGLでは、環境光源、平行光源、点光源、スポットライトの4種類の光源しか使用できませんが、シェーダーを使うことで、ある特定の領域のみに当たる光源や、一定の距離の範囲のみ照らす光源、星形のスポットライトなど、光源を自由にデザインできます。
- イメージベースドライティング(Image Based Lighting)
環境マッピング(Environment Mapping)用のテクスチャを光源として使用することで、周囲に無数にある光源や、不規則な形(蛍光灯のように細長いものなど)の光源の効果を得られます。
- 各種画像処理(Image Proccesing)
Photoshopなどで処理できる各種フィルタ機能をリアルタイムに実行できます。 色の加工(反転、輝度や色相の変更)、ぼかし(Blur)、シャープ、ノイズなど。
また、以下のような複雑な画像処理のアニメーションも可能です。
OpenGL2.0対応シェーダー開発
OpenGL2.0に対応したシェーダー(Vertex Shader、Fragment Shader)の開発を行います。
- アプリケーション開発
対象機器: - OpenGL2.0をサポートしたビデオカードを持つPC
(WindowXP/Vista、WindowsCEなどWindowsが動作するもの) - OpenGL2.0をサポートしている組込み機器 (OSは問いません)
- シェーダー開発
シェーダーソースのみ単体で開発を行います。 バーテックスシェーダー、フラグメントシェーダーそれぞれ単体、または両方の組合わせによるシェーダー機能の開発を行います。
OpenGLES2.0対応シェーダー開発
OpenGLES2.0に対応したシェーダー(Vertex Shader、Fragment Shader)の開発を行います。
- アプリケーション開発
対象機器:
OpenGLES2.0をサポートしている組込み機器(OSは問いません)
- シェーダー開発
シェーダーソースのみ単体で開発を行います。
バーテックスシェーダー、フラグメントシェーダーそれぞれ単体、または両方の組合わせによるシェーダー機能の開発を行います。




