2016-05-15 8 views
1

テクスチャがレンダリングされる場所を制限する方法を教えてください。他の半分がウィンドウの外側にある場合、テクスチャの半分だけをどのように見えるかのような種類です。私はこのようなものの "国境"や "制限"など何かが私に他の話題につながるので、これをグーグルで探すのに困っている。例えば特定の座標の後にOpenGLでテクスチャのレンダリングを停止する

私は私が私のキーボードで動き回ることができ、そしてそれは赤いラインを越え、正方形の任意の部分をレンダリングしないようにするために、私は希望したい正方形の持っている:どのように

enter image description here

をそれをやり遂げることはできますか?

+0

で見つけることができますか?テクスチャのレンダリングを抑止したい(例では白いボックス全体をレンダリングしますが、赤い線のテクスチャを残したままにしておきます)か、境界線の外にある任意のグラフィック出力を抑制したいですか?後者は、ビューポートを適切に設定するか、シザーテストを使用して行います。 – denniskb

+0

後者の場合、実際には、特定のテクスチャのグラフィック出力が特定のポイントを超えてレンダリングされません。私はビューポートとはさみのテストについてグーグルで調査しています。それは有望に見えるので、私はそれを検討します。助けてくれてありがとう^ - ^ – JohnCake

答えて

2

これは通常によって達成される:シェーダにおける(3Dプレーン用)面

  • カスタムコードをクリッピング(矩形領域用)

    • シザーテスト
    • (自由形式の領域用)ステンシルテスト
    • (現代のOpenGLとフルコントロール用)
  • 0

    @Krom Sternの徹底的な答えを見てください。私はちょうどはさみ試験について詳しく説明したいと思います。なぜなら、これはあなたが望むものだからです。矩形領域へのグラフィック出力を制限するため、シザーテストを使用して容易である。

    まず、シザーテストを有効にする:

    glEnable(GL_SCISSOR_TEST); 
    

    そして、制限された領域(座標はピクセル単位である)を指定:

    void glScissor​(GLint x​, GLint y​, GLsizei width​, GLsizei height​); 
    

    さらに詳しい情報はOpenGL Wiki

    関連する問題