2017-10-31 9 views
4

xとy座標を含むvec2があります。すべてのベクトル成分がある数よりも大きいことを確認してください

if (gl_FragCoord.xy > 16.0) { 
    // do something.. 
} 

それは「マッチングなしオペランド」エラーでコンパイルに失敗します。私は、彼らは両方の大きい16よりも私の最初の試みであることを確認する必要があります。

ベクトルの各次元を別々に比較すると機能します。

if ((gl_FragCoord.x > 16.0) && (gl_FragCoord.y > 16.0)) 
    // do something.. 
} 

ベクターのすべての要素を一度に確認する方法はありますか?

+1

html/lessThan.xhtml)と[all](https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/all.xhtml)を参照してください。 – didierc

+1

あなたができることは、それぞれの座標を16と照合する前に、その製品が256より高いかどうかのチェックを追加することです。これは必要なだけであり、十分ではありません。この条件を追加すると、この条件に合格しない*十分な座標ペアがあるという事実を知っていれば、パフォーマンスが向上します –

+0

クールな最適化! @AlexBarac – BonsaiOak

答えて

関連する問題