2009-08-05 30 views
2

テクスチャをマスクするときには、 のようなColorSplashやiSteamなどのアプリはどうすればいいですか?iPhone OpenGL ESテクスチャ2Dマスキング

は、私は(私が総 ルーキーだ)4日前のOpenGL ESなどを...学び始めて、次のアプローチを試みた:私は色にTexture2D、最初 のグレースケールバージョンを作成し

1)テクスチャ階調と 第三にTexture2D呼ばマスク

2)Iはまた、ブラシのためにTexture2Dを作成...それ不透明(ブラシ=黒=の0,0,0,1及び周囲=白= 1'S 、1,1,1)。私の意図は滑らか エッジにアンチエイリアスブラシを作成することでしたが、私は今、通常のものと

3元気です)私は、インターネット上のマスキング技術を検索し、この チュートリアルZeusCMDを見つけた - 設計・開発チュートリアル:OpenGLのESプログラミングチュートリアル - マスク マスキングについて。チュートリアルでは、その後、 glBlendFunc(GL_DST_COLOR、GL_ZERO)でマスクし、その後、 glBlendFunc(GL_ONE、GL_ONE)とグレースケール...そしてこれは私に に近いものを与えて、第1着色を描く... マスキングを達成するためにブレンドを使用するように私に指示します私が欲しいものは...しかし、私が欲しいものは正確にはありません。結果はマスクされますが それは何とか

4明るすぎる-EDです)私は、結果として得られる画像(overbright-には本当に満足していない余分なフレームバッファオブジェクト(FBO)

を使用するマスクテクスチャに描画するためのものですこの方法で達成される速度でもない。私は普通の方法 は、グレースケール(オーバーレイ)texture2Dに直接描画することだったと思う それはブラシが当たる場所のアルファチャンネルだけです。これを達成するための速い方法は ですか?私はたくさんの検索をしており、明確で分かりやすい 答えは得られませんでした。次に、メインドローループI では、色付きのテクスチャを描画し、次にグレースケールオンスクリーン をglBlendFunc(GL_SRC_ALPHA、GL_ONE_MINUS_SRC_ALPHA)とブレンドすることしかできませんでした。

私はOPENGL ESの使い方を学びたいと思っています。私はそれを正しく動作させることができないため、ナットを運転しています。助言、チュートリアルへのリンクは非常に高く評価されるでしょう。

答えて

0

iPhoneで実際に動作するものについては、texture combinersを試してみてください。

私はそれらを使って、RGBAテクスチャを別の変換アルファテクスチャにマスクしました。
ステンシルバッファがないと複雑な影を生成するためのものでしたが、
という状況はあまり変わっていません。

このリンクはフラグメントシェーダのコンバイナについて説明していますが、これはうまく機能します。
残念ながら、コンバイナは、シェーダの対応物より複雑です。

関連する問題