float brightness
には2つのベクトルのドット生成があります。 brightness
はほとんどの場合は正であるべきですが、私がmax(brightness, 0.0)
を使用していることを確認する必要があります。照明システムにbrightness
を使用しようとすると、何も表示されません。私はif文でこれをデバッグしようとしましたが、常に真実か何かを返すようです。したがって、if(brightness > 99999)
とif(brightness < 99999)
またはif(brightness == 12345)
はすべてピクセルを破棄します。私はGLSLバージョン430コアを使用しています。GLSL常にtrueを返す場合
float brightness = dot(vector1, vector2);
brightness = max(brightness, 0.0);
if(brightness < -999) {
discard;
}
この例では、ピクセルを破棄します。
私はNaNかもしれないと思っていましたが、実際にはこれらのベクトルのすべての変化をトレースしようとしていました。私は今それをもう一度見せます。 – Maineri
私は間違いを見つけました。あなたは正しかった。ベクター2はNaNであった。私はvec4として頂点シェーダーからそのベクトル2を誤って出力し、フラグメントシェーダーでvec3として入力しました。ありがとうございました! – Maineri