2011-10-09 5 views
8

enter image description hereあなたはテクスチャ線を描く方法についていくつかのコード(任意の言語)を共有してもらえのOpenGL ES

に「光る」線を引くためにどのように(つまりは、4点の滑らかであるか、効果のように輝く、青いラインを持っているでしょう)OpenGL ES 1.0を使用して添付画像のような多くの点で構成されています。

私が試していたのは、テクスチャ16x16または1x16ピクセルのGL_LINE_STRIPをテクスチャ加工していましたが、成功しませんでした。

+1

あなたのテクスチャのサイズは魔法のようにあなたのラインのサイズを増加させません。テクスチャリングの仕組みが間違っています。 –

+0

OK、2d点の配列とテクスチャ(またはOpenGL ESでそのような線をペイントするのに必要なもの)をどのようにして達成するのですか? – michael

+1

これはおそらくピクセルシェーダを使用しています。あなたのラインを通常どおりに描いてから、3倍のボックスボケを使用します。 – Rekin

答えて

5

ES 1.0では、レンダリングからテクスチャをクリエイティブに使用して効果を実現できますが、塗りつぶしの点でコストがかかる可能性があります。 GronasutraはTron 2.0ゲームでどのように輝きを達成したかについてan (old) articleを持っています。DirectX 7.0のコメントには、固定パイプラインのES 1.0のように注意が必要です。あなたのケースでは、あなたは、おそらくかなりの輝きは、あなたが興味を持っているすべてであるので、オリジナルとの混合よりもガウス画像を表示したい

記事の私の概要は次のとおりです。

  • は、すべての行をレンダリング通常のようなテクスチャ、実線のヘアラインに変換します。このテクスチャをソーステクスチャと呼びます。
  • レンダリングした元のテクスチャを取って、それを水平方向のぼかしテクスチャと呼ぶ別のテクスチャに例えば5回描画することで、線形の水平ぼかしを適用します。 1つのコピーを不透明度1.0のx = 0のオフセットで描画し、さらに2つのコピーを描画します.1つはx = +1に、もう1つはx = -1に、不透明度は0.63、最後の2つのコピーはx = x = -2で、不透明度は0.17である。添加剤ブレンドを使用する。
  • 水平方向のぼかしテクスチャを取り、xオフセットの代わりにyオフセットを使用して本質的に同じ手順を実行することによって、線形の垂直方向のぼかしを適用します。

これらの不透明度数は、this pageの2dガウスカーネルから得られたものです。あなたのラインの外側に向かって落ちるのに影響を与えるためにそれらの周りを遊んでください。

ここには余分なコストがあることに注意してください.10個のフルスクリーンテクスチャドローとフレームバッファスワップを追加しています。マルチテクスチャを使用することで、描画回数を減らすことができます。シェーダのアプローチは、1回のパスで水平と垂直のステップを実行する可能性があります。

関連する問題