2009-07-16 6 views
2

私は反射的であるように見える金属製の3Dオブジェクトを作りたいと思います。私は球またはキューブマップを使用する環境シェーダを使用してこれを達成したいと思います。イメージまたはテクスチャを "反射"ソースとして割り当てることができます。OpenGL ESは環境シェーダをサポートしていますか?

iPhoneのOpenGL ESはこれをどのバージョンでもサポートしていますか?

答えて

4

OpenGL ES 2.0では、シェーダのサポートが提供されています。しかし、今日市場に出回っている多くのモバイル機器では利用できません。グラフィックのES 1.1とES 2.0の両方のバージョンを記述することが重要です。

アップルデベロッパーセンターは、遷移情報のトンを有する:

のOpenGL の固定機能パイプラインES 1.1 変換およびライティング頂点から に、3Dグラフィックス・パイプラインのための良好なベースライン挙動 を提供最後のピクセルを フレームバッファとブレンドします。 OpenGL ES 2.0 アプリケーションを実装する場合は、 にこの機能を複製する必要があります。 の場合、OpenGL ES 2.0はOpenGL ES 1.1よりもフレキシブルな です。 の頂点およびフラグメント操作は、 OpenGL ES 1.1を使用して実装することは困難または不可能です。 は、OpenGL ES 2.0シェーダで簡単に実装できます。 OpenGL ES 1.1 アプリケーションでカスタム オペレーションを実装するには、多くの場合、 レンダリングパスと、複雑な変更 をOpenGL ES状態にする必要があります。これは、 のコードの意図をあいまいにします。アルゴリズム の複雑さが増すにつれて、シェーダはこれらの操作をより明確に 、より正確に を伝えます。昔

http://developer.apple.com/iphone/library/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/DeterminingOpenGLESCapabilities/DeterminingOpenGLESCapabilities.html#//apple_ref/doc/uid/TP40008793-CH102-SW1

2

「金属」の外観は、「環境マッピング」または"reflection mapping"と呼ばれる技術を使用して達成されました。

OpenGL ES 1.1ではプログラマブルシェーダは使用できないため、ソフトウェアで単純な反射マッピングを行うことができます。反射元/カメラに応じて頂点の法線を変換し、変換された法線ベクトルからテクスチャUV座標を取得するだけです。 iPhoneは少なくとも、まともな頂点数でこれを簡単に行うための馬力を持っています。

+0

環境マッピングがあると想定するのは安全ですか? – Soviut

+0

GLSL ESシェーディング言語を使用しています。環境マッピング頂点シェーダを簡単に記述できます。ソフトウェアソリューションよりもコードと面倒さが少なくなります。 – Virne

0

OpenGL ES OpenGLの機能のほとんど(モバイルデバイス用のいくつかの追加機能)をサポートしています。私が正しくリコールすれば、iPhone 3Gはフラグメントシェーダーをサポートしていますが、古いiPhone 3Gは固定パイプラインをサポートしています。

関連する問題