一種のプログラム言語です。グラフィックカード上で直接実行されます。シェーダーを使うと、描画のプロセスを柔軟&シンプルに記述できます。(不可能ではないにしても)複雑になってしまうような特殊効果を記述するために使われます。パーピクセル・ライティングとか、シャドウとか。お馴染みの描画方法(いわゆる「固定機能パイプライン」)は使われなくなりつつあります。C言語にソックリな顔をしてます。略)シェーダーには2種類あります。頂点シェーダーと、フラグメントシェーダー(またはピクセルシェーダー)です。頂点シェーダーはジオメトリのトランスフォームを行います。フラグメントシェーダーはピクセル単位での処理を行います。どんな効果を実現したいかによって、どちらか片方だけのシェーダーを使ってもいいし、両方使うこともできます。シェーダーの仕組みや使い方を理解するには、レンダリングパイプラインのイロハを理解する必要があります。それと、GLSLプログラミングのことも。シェーダーのサンプルがあるから、よかったら見てみてね。側の機能に焦点を当てます。シェーダーを読み込んで使う方法です。シェーダーそのものの書き方については、触れません。これ1つで頂点シェーダーとフラグメントシェーダーを両方扱えます。シェーダーが一般的になってきているとは言っても、まだシェーダーをサポートしてないグラフィックカードもあります。なる場合、シェーダーは使えません。HDD上のファイルを読み込むのが基本です。プログラムと同じように)。拡張子はあんまり関係ありません。いうのは単なる習慣です。loadFromFile関数なんだけど、ときどき、よくわかんない理由で失敗しちゃうんだ。そんなときは、まず、エラーメッセージをチェックしてね。コンソールに出力されてるよ。そんなときは、カレントディレクトリを確認してね。相対パスの出発点になるフォルダのことだよ。そのプロジェクトのフォルダになってるかもしれないね。プロジェクトの設定でカンタンに変更できると思うよ。loadFromFileに関する注意書きと同じ文面です(原文が)。シェーダーは文字列で直接記述することもできます。シェーダーをソースコードの中に埋め込んでおきたいときには、この読み込み方法を使うとよいです。error...}そしてもう1つの読み込み方。ストリームから読み込むこともできます。他のリソースクラスと同じ要領ですね。読み込みに失敗するときは、標準出力(コンソール)に出ているエラーメッセージを見てください。詳しいレポートが表示されてるはずです。シェーダーを使う使うのは簡単です。関数の引数に渡すだけです。);シェーダーに変数を渡す他のプログラム言語と同じように、シェーダーもパラメータを持つことができます。パラメータの内容次第で、実行するたびに違う結果になる、というわけです。パラメータはシェーダーの内部で、グローバルな変数として宣言します。いわゆる「ユニフォーム変数」です。関数がたくさん用意されてるので、使い分けてください。(ここでの「使われてない」というのは、頂点やピクセルの計算に関係しない、という意味)。覚えておかねばならないのであります。いう構造体があります。この頂点は「2D座標」と「色」と「テクスチャ座標」を持ってます。これらが、頂点シェーダーにインプットされるデータです。それらのデータを受け取るようになっています(プログラマが宣言する必要はない)。ModelView行列で変換される必要があります。ModelView行列とは、オブジェクトを現在のビュー座標系に位置づける変換行列です。(この行列はプログラマが気にする必要はありません。内部実装の裏話です)。必要なければ色やテクスチャ座標は無視して構いません。フラグメントシェーダーに渡されます。フラグメントシェーダーフラグメントシェーダーも似たような感じです。シェーダーが受け取るデータは「テクスチャ座標」と「ピクセルの色」です。「座標」はありません。ここまで処理が進んだら、グラフィックカードはすでにピクセルの最終的な座標を計算し終えているからです。それと、テクスチャを貼っている場合は、テクスチャも必要です。pixel;}テクスチャは現在のテクスチャが自動で適用される、といいのですが、自動では適用されません。C++の側から明示的に設定してあげる必要があります。それを描画のたびに毎回取得して、シェーダーに渡すのはプログラマにとって、とても大変なことです。いやー、SFMLって気が利きますね。sf::Shader::CurrentTexture);これで、描画中のオブジェクトのテクスチャが、随時、シェーダーの変数に設定されるようになります。対応するシェーダーの変数を更新してくれます。フォルダを覗いてみてね。使っているお友達もいるかもしれませんね。オブジェクトとあなたを仲良しにしてくれます。チュートリアル目次]。