2012-06-19 23 views
5

私はOpenGL(より具体的にはlwjgl)でGUIを作っています。私はこれを行うさまざまな方法を研究するために懸命に努力しましたが、私が欲しいものを正確に見つけるのは苦労しています。私は外部ライブラリ(OpenGLで構築されたものだけで、GLUTの使用を避けることさえしようとしているもの)を使用したくないですし、OpenGLをサポートするもので動作させたいと思っています(フレームバッファオブジェクトは古いグラフィックカード)。スクロール可能なパネルにOpenGL描画部分オブジェクト

私は、スクロール可能なパネルをコンポーネントとして3D GUIを作成しています。問題は、部分的なGUIコンポーネントを描画する方法がわからないということです。私は、テクスチャではなくOpenGLプリミティブからコンポーネントを作り出しています。複数のビューポートを使用するような簡単な方法があることを期待していました。私は実際にビューポートが何であるかを理解していません。

簡潔に言えば、私はドロップダウンメニューであるため、他のGUIコンポーネントとオーバーラップするコンポーネントとしてスクロール可能なパネルを用意する必要があります。

答えて

6

矩形領域外にあるピクセルを描画しないようにしたい場合は、glScissorが探しているものとまったく同じです。

lwjglでは、この機能はorg.lwjgl.opengl.GL11にあります。

+1

GL_GLIP_PLANEを利用することもできます.GUI座標がビューポートのピクセルと一致しない場合に備えてモデル空間でクリップすることができます。 – Kromster

+0

ありがとう、それは私が探していたものです – axelrod360

1

画面上の固定された領域内の大きなシーンをスクロールする場合は、スクロール位置の投影行列を変更してシーンを再描画するだけです。 gluPerspectiveを使用して投影行列を設定する場合は、glFrustumへの直接呼び出しに変換する必要があります。 glOrthoを使用している場合は、はるかに簡単です。

パースペクティブビューの「スクロール」には、どのような効果を実現したいか、全体的なビューポートのエッジ付近でどのような種類の歪みを必要とするかによって異なります。

関連する問題