回答:
一般に、複雑なシェーダーは、交換可能な歯車のようにダウンロードしてプロジェクトにドロップできる種類のものではありません。通常、より興味深い効果を実現するには、CPU側のレンダリングサブシステムにかなりの結合が必要です。同じことが一般的にパフォーマンスにも当てはまります。命令数やパイプラインに対する精度と品質に関するパフォーマンスのトレードオフは、アプリケーション固有の要件に起因する傾向があります。
その結果、あなたが考えているリポジトリの種類には、それほど多くのものがありません。GPU Gemsブックは、ゲームとシェーディングされたコード例の両方を使ったテクニックのクックブックスタイルの説明の優れたコレクションを提供します。Shader Xの本も同様です。
それほど多くはありませんが、開始するための少なくともいくつかの基本的なシェーダーは、開いているソースエンジンファイルの間にあります。
.vshファイルには頂点シェーダーが含まれ、.fshファイルにはフラグメントシェーダーが含まれていますが、それは自明です...
現在のモバイルハードウェアでは、頂点シェーダー内でできる限り多くのことを行う必要があります。見栄えがよく高速なゲームのコツは、何かを意図したとおりに見せるために必要なものを常に正確に実行する、非常に専門的なシェーダーを数多く書くことです。少なくともそれは私のiPhone 3GSでの私の経験であり、iPhone 4と同じgpuを備えていますが、データを配信するためのピクセルが少なくなっています。これはおそらくtegra 2ですでにはるかに優れており、apples A5チップでさらに優れていますが、現時点では、デスクトップgpusのシェーダーを携帯電話に移植して優れたパフォーマンスを期待しないでください:Pこれは、フルスクリーンも意味します特に高解像度ディスプレイを備えたデバイスでは、効果が遅くなる傾向があります。
これも少し役立つことを願っています:)。
ここhttp://glslsandbox.com/から難解な知識の一部を奪うかもしれません
OpenGL ES 2.0でフォグを実装する方法を探していたとき、OpenGL ES 2.0にはないOpenGL ES 2.0下位互換プロジェクト実装機能へのリンクが見つかりました。たとえば、フォグ、頂点ごと、フラグメント(ピクセル)シェーディングごとに。シェーダーソースを直接調べることができます。
私はフラグメントごとのライティングも実装しており、ClockworkCoders(OpenGL ES 2.0ではない)によって作成されたこの例を変更しています。
また、lighthouse3Dによるこれらの優れたチュートリアルもご覧ください。
AMD RenderMonkeyパッケージには、サンプルファイルの中にOpenGL ES 2.0用の非常に高度なシェーダーが含まれています。
特に、GLESサンプルディレクトリにあるRendermanシェーダーサンプルを見てください。これは、出発点として役立つ可能性がある、多かれ少なかれ基本的なOpenGL ES 2.0シェーダーを提供します。また、優れたシェーダーのカットアンドペーストの例が多くない理由についても、良い考えが得られるかもしれません。基本的な問題:シェーダーはOpenGL ESサーバー構成と密接に結合されており、それらにレンダリングされるモデルです。まだ。REnderMonkeyツールからこじ開けることができる場合、Rendermanシェーダーは優れた出発点です。
GPUImage(https://github.com/BradLarson/GPUImage)を見てください。これは、これまでにWebで見つけたシェーダのおそらく最も完全なコレクションです。これらはすべてGPUImageで動作するように設計されているため、すべて同じ構造を共有しているため、アプリケーション/ゲームで同じ構造を採用すると、さまざまな効果をすばやくインポートできるはずです。
乾杯!