0

現在、いくつかの小さなシリンダーで構成される大きなチューブのみを描画する OpenGL アプリケーションを開発しています (スリンキーのようなものです)。照明と法線をオンにすると、特定の角度から円柱の境界にこれらの厄介な黒い点が表示されるため、迷惑な効果が得られます。

個々のシリンダーの境界にある黒い点

これは、シリンダーが非常に薄いという事実の副産物だと思います。基本的に、トップ/ベースを設定するときに法線を (0,0,+/- 1) に設定し、サイド法線は (cos(toRadian(beta)), sin(toRadian(beta)), 0) です。

「より太い」シリンダーを取得せずにこの効果を削除することは可能ですか? または、法線を定義する方法に何か問題がありますか?

ありがとう

4

1 に答える 1

0

これは、円柱の側面のレンダリングのようです。画像の黄色はシリンダーの上部に対応しています。円柱の側面は上部に対して90度であるため、点灯せず(ライトはカメラと同じ方向にあると思います)、黒く表示されます。円柱が非常に薄いため、これらはピクセルを作成しないため、あまり表示されません。

それを修正する方法は?私はいくつかのアイデアを持っています:

1)側面ではなく、上部と下部を描画するだけです。これにより、この角度から見た場合の問題は確実に修正されますが、カメラが移動するとさらに問題が発生します。

2)照明を無効にすると、すべての面が同じ色で描画されます(側面が上面と同じ色であると想定)。

3)マルチサンプリングを使用します-これは、ほとんどのエッジが表示されないことを意味します(角度が原因で、各ピクセルが側面よりも上面になる可能性が高いため)。

4)現在のライトに垂直に、シーンの周囲にライトを追加します。

1と2は、達成しようとしていることに応じて最善の策です。

于 2011-02-21T13:30:06.113 に答える