問題タブ [jogl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - OpenGL - テクスチャ マッピング後に白以外の色をレンダリングできない
テクスチャを持つ他の立方体をレンダリングした後に、色付きの立方体をレンダリングしようとしています。Drawer インターフェイスに準拠する複数の「Drawer」オブジェクトがあり、それぞれの GL オブジェクトへの参照を、個々の実装クラスのdraw( final GL gl )メソッドに渡します。しかし、私が何をしても、色付きの立方体をレンダリングできないようです。
コードサンプル:
また、各頂点呼び出しの前に glColor3f 呼び出しをスローしようとしましたが、それでも白い立方体が得られます。調子はどう?
java - JFrame から JPanel を削除する
私は現在、JOGL を使用して設計されたゲームのイントロ画面に取り組んでいます。イントロは、ゲームを開始する前にオプションを変更するためのいくつかのボタンを備えた JPanel にしたいと考えています。
だから、私はGLCanvasを追加するJFrameを持っています。GLCanvas には GLEventListener も含まれています。最後に、JPanel を追加します。
JPanel の paintComponent メソッドをオーバーライドして、背景画像を設定しました。パネル内にいくつかのボタンがあります。「再生」ボタンをクリックすると、次の関数が呼び出されます。
frame.remove(JPanel); frame.repaint(); アニメーター.start();
何が起こるかというと、JPanel は正しく消えますが、再描画が呼び出されると、フレームがグレーで塗りつぶされます。GLEventListener の表示メソッドが呼び出されているため、アニメーターが正しく起動していることはわかっています。
何が問題なのか知っている人はいますか?
java - OpenGL の滑らかな線
OpenGL で多かれ少なかれ滑らかなマルチセグメント ラインを描画しようとしています。ただし、線の太さが約 3 を超えると、セグメント間の結合がシームレスにならないことがわかりました。それらの間にギャップが生じることもあります。これらの結合をスムーズでギャップレスにする良い方法はありますか? Java の BasicStroke.JOIN_MITER に相当するものを探しています。
java - Java ゲーム プログラミング: JOGL vs LWJGL?
私は現在、GTGE エンジンを使用してタレット ディフェンス スタイルのゲームを作成しています。このエンジンは、JOGL または LWJGL のいずれかを使用してグラフィックスを駆動する機能を備えているため、どちらを使用すればよいでしょうか? それぞれの長所/短所は何ですか? 決定する際に考慮すべき要素は何ですか?
opengl - フレームごとに位置を更新すると OpenGL ライトがちらつく
私は OpenGL を学んでいて、ライティングを始めたばかりです。ライティングとライト 0 を有効にし、init メソッドでアンビエント/ディフューズ/スペキュラーをデフォルト値に設定し、各フレームで次のようにします。
(少し間違っている場合は注意してください。私はJOGLを使用してJavaでアプリを書いているので、すべてのC++の人々が読みやすくするために、各行からgl.とGL.をトリミングしました:))
次に、三角形などの描画に進み、最後に glFlush() を実行します。
奇妙な問題は、アプリケーションを実行すると、ライトがちらつくことです。プログラム全体で glLightfv への他の呼び出しはありません (上記のように、1 回だけ実行されるようにデバッグした init メソッドでの呼び出しを除いて)。ちらつきが非常に速く、画面にティアリングが見られます。また、シーン描画のどの時点でも glDisable(GL_LIGHTING) はしません。照らされたオブジェクトがちらつく原因になるとは思いません。
また、デバッグの目的で、描画コードのチャンクをコメントアウトしましたが、照明を壊すものは何もないようです-そしてもちろん、すべてを書き、とにかくシーンを照明する前にテストしたので、それが必要な理由はわかりません違う。
基本的に、これは大したことではないことはわかっていますが、他の誰かが以前にこの問題を抱えていましたか? 私が見つけられない簡単な解決策はありますか?私を助けるのに役立つ追加情報をリクエストしてください。最終的に、単純に答えが得られない場合は、レンダリング コード全体をここに投稿して問題を実証できるテスト ケースを分析して作成する必要があります。
これは私が作成しようとした非常に悪いアニメーション gif です...しかし、光が散発的である限り、それは私が話していることをちょっと示しています。点灯したフレームは、本来あるべき姿です。また、5fpsまで遅くしてもちらつきはあまりなく、ランダムにオンまたはオフになります. 理解できません...
ありがとう!!
frame - JOGL 4 つの空白の初期フレーム
JOGL には addGLEventListener があります。それにリスナーを追加しました。display() "callback on gl" が呼び出されると、画面が黒く印刷されますが、4 フレーム後にdisplay()
何かが印刷されます。
display()
最初のコールバックで何かを印刷する方法はdisplay()
?
jogl - JOGLArcBallが機能しない
私は、JOGLのArcBallの既存の実装を自分のプロジェクトに埋め込もうとしています。コンパイルして実行しますが、動作しません!景色をいじることができません。
ここから実装(2つのクラス)を取得しました:
http://www.mdimension.com/page/Software?appNum=1
そして、自分のプロジェクトに物を埋め込むという指示に従いました。これが私がArcBallを使用しているクラスです:
パブリッククラスGLRendererはGLEventListenerを実装します{
public void positionCamera(GLU glu、GL gl){
}
public void setLight(GL gl){
}
public void drawXYZ(GL gl){gl.glMatrixMode(GL.GL_MODELVIEW);
}
}
私はopenGLsokeを初めて使用しますが、これはばかげた間違いかもしれません。でも助けていただければ幸いです。
ありがとう
opengl - 同じポイントで透明度のある2つのクワッドをレンダリングできますか?
JOGLとOpenGLを使用してテクスチャマッピングされたクワッドをレンダリングする方法について学習しています。テストプログラムとテストクワッドがあり、頂点のアルファ値を指定して一種のグラデーションのクワッドを作成できるように、GL_BLENDを有効にする方法を理解しました...しかし、これを次のように表示したいと思います。同じ位置にある別のテクスチャクワッド。
同じ頂点位置で2つのクワッドを描画することは機能せず、最初のクワッドのみをレンダリングします。これは可能ですか、それとも基本的に必要なものに基づいてオンザフライでカスタムテクスチャを作成し、このテクスチャで1つのクワッドを描画する必要がありますか?この場合、ブレンドを利用したいと本当に思っていました...
opengl - OpenGL テクスチャの組み合わせが (常に) 機能しない
私の最後のいくつかの質問を見たことがあれば、私が OpenGL を使用して地形に関する作業を行ってきたことを知っているでしょう。頂点アルファと複数のレンダー パスを使用して、タイル化された高さマップで 1 つのテクスチャを別のテクスチャにブレンドしようとして失敗しました... その代わりに、別の計画があります。
私の WorldQuad オブジェクトには、'bottom' 変数と 'top' 変数があり、どちらも Texture 型です。これは、OpenGL テクスチャをラップする JOGL 提供のクラスです。それをロードしてから、enable() を呼び出して glEnable(GL_TEXTURE_2D) を実行し、bind() を呼び出してバインドを実行できます。
また、別のテクスチャを格納する独自のタイプの alphaMap 変数もあります。ただし、これはテクスチャ内部フォーマット GL_ALPHA8 です (つまり、アルファ値のみを持つテクスチャです)。現在、これをプログラムで生成して、ピクセルパーフェクトにしています。
次に、アルファ マップに従って下部と上部のテクスチャを結合するために、OpenGL の「テクスチャ結合」(またはテクスチャ スプラッティングと呼ばれることもあります) を使用します。
問題は、それが美しく機能したことです!!...私の仕事用ラップトップで。これは、統合された Intel チップ (GMA950 など) を搭載した IBM Thinkpad T400 です。しかし、ディスクリート NVIDIA GeForce Go 7900GS カードを搭載した Dell Inspiron E1705 に戻ってきたところ、私のプログラムはクワッドを「下」テクスチャでのみレンダリングすることがわかりました。あたかもアルファがまったく適用されていないかのようです。ここでは、2 台のデスクトップと別のラップトップでも試してみました。デスクトップの 1 つがクラッシュし、別のデスクトップではクワッドが完全に白く表示され (これは古い GeForce チップで、おそらく OpenGL 2 などをサポートしていません)、もう 1 つのラップトップは私のものと同じように動作しました。下部のテクスチャで覆われたクワッド。
グラフィック カードが何らかの理由で GL_ALPHA8 テクスチャを好まなかった場合に備えて、アルファ マップ形式を GL_RGBA に変更しようとしました。また、alphamap を含む個々のテクスチャを使用して通常のクワッドを描画することにより、3 つのテクスチャがすべて存在し、レンダリングできることも確認しました。また、alphamap をファイルに出力するので、基本的にそれがそこにあり、機能していることを再確認しました。
以下は、これらすべてに基づいてクワッドを描画する関数です。コメントを追加しましたので、フォローしていただければ幸いです。問題を解決する可能性のあるものを提案してください。私は困惑しています!くだらない統合チップでは動作するのに、私のグラフィックカードでは動作しないのはなぜですか? 私は何が欠けていますか??
ありがとう!!
編集:わかりました、誰も私を助けてくれません...私は今仕事に戻り、フラッシュドライブを仕事用コンピューターに接続し、Eclipseを起動して実行ボタンを押しました...そしてうまくいきました。それから私はドライブを取り出し、それを私の個人用ラップトップ (今日仕事に持ってきたもの) に入れ、まったく同じことをしましたが、それはただの赤い塊です。しかし、ここで、私はそれを文書化しました。まず、glGetString(GL_EXTENSIONS) からの出力が 2 台のコンピューター間で比較されました。
次に、壊れた と動作している のスクリーンショット。繰り返しますが、これらはまったく同じ方法で取得されました。Eclipse を開き、実行を押して、スクリーンショットを作成します。それでおしまい。私は自分のコードに触れておらず、2 台のコンピューター間で交換したフラッシュ ドライブにコードのコピーが 1 つしかありません。どちらも同じバージョンの JDK を使用しています。
コンピューターの違いの 1 つは、私の仕事用 PC が XP を実行しており、ラップトップが Windows 7 を実行していることです。特に私は OpenGL 2 を使用しているので、両方のコンピューターが同等にサポートすると思います。実際、上記の差分ページを見ると、私の個人用ラップトップは仕事用ラップトップよりも多くの拡張機能をサポートしています。したがって、これは逆のようです。どちらかといえば、統合されたチップがテクスチャの組み合わせで詰まると思いますが、私のグラフィックカードではありません!
ヘルプ!
drawing - JOGLでマウスドラッグイベントを使って描画します。
ここで助けが必要かもしれません。私は JOGL が初めてで、おそらく何でも 3D キャンバスに描画しようとしていますが、ポイントはマウス ドラッグ イベントを使用することです。どうすればそれができるのでしょうか?
以下のようなことを試してみましたが、うまくいきませんでした。また、以下のコードでは、display() メソッドが呼び出される前にイベントが呼び出される理由がわかりません。
事前にどうもありがとう..