joglを使って簡単なポリゴンにテクスチャを貼り付けて、
マウスイベントによって回転・移動を行えるプログラムを
作っています。操作を始めるとマウスカーソルの代わりに
独自の画像をマウスカーソルが表示されていた部分に
表示されるようにしたいと考えています。
質問は、マウスカーソルの代わりに表示させる画像の
表示方法についてです。
開発環境
SDKとして、eclipse日本語化プロジェクトのpleiadesの
バージョン3.5の最新のものを使用しています。(jreあり)
PCは、自作でスペックは以下の通りです。
CPU:penD940 3.2GHz
メモリ:2GB
HD:320GB
G/B:GForce6600
質問の意図をわかりやすくするために簡単な説明と
これまでの進展を説明したいと思います。
まず、joglを使用する方法としてGLCanvasとGLJPanelの
どちらかにGLEventListenerをaddして利用する方法があると
思います。2Dの描画を加える場合、たとえば、GLCanvasを継承した
クラスを独自に作成し、paintメソッドをオーバーライドして
3D描画に2D描画を上書きする方法があると思います。この方法だと、
GLCanvasではダブルバッファが有効ではないため、非常にちらついた
表示になってしまいます。GLJPanelを利用すればその問題が解消
されますが、残念なことに処理が重くなり操作性が著しく落ちてしまいます。
そこで、GLCanvasをベースにGLPbufferクラスを利用してjoglの描画を
オフスクリーンに描画するというように独自にダブルバッファの
処理を作成しました。この方法では、GLJPanelよりも多少軽く
動作しているものの、残念ながら操作性が維持できる処理速度を
確保することができませんでした。
おそらく、問題点はオフスクリーンとして使っているBufferedImageの
書き換え時の処理に時間がかかっているものと推測しました。
そこで、さらにBufferStrategyクラスも利用してみましたが、
GLPbufferの描画をbufferedImageに書き込む処理でつまずいてしまう
ようであまり効果がありませんでした。
joglでポリゴンにテクスチャを貼り付けるということで擬似2D的なことは
可能ですが、作っているプログラムの特性上、画像サイズの管理やマウス
ポインタの位置との連動を行うことになるため複雑になるのは避けたいです。
というところで、現在こんな具合で作業を進めて参りました。
質問内容としてましては、上記以外の方法で、
「3D描画と2D描画を組み合わせて軽快な処理ができる方法」
をご教授していただきたいです。
何卒よろしくお願いします。
No.1ベストアンサー
- 回答日時:
>joglでポリゴンにテクスチャを貼り付けるということで擬似2D的なこと
これはそう複雑ではないと思いますし、自分も2D部分は普通にこの方法でやります。
カーソルだけならせいぜい20~30行くらいでできるんじゃないでしょうか。
Java2D と JOGL を直接混用するのは難しいと思います。
>作っているプログラムの特性
というのが具体的にわからないので、本当に「擬似2D」を避けなければならないのかはわかりませんが。
どうしても嫌なら、スクリーン全体を覆える画像を用意して、
そこに Java2D で書き込んでから、テクスチャに転送してポリゴンとして表示するとか…。
この場合でも最低一枚はポリゴンとして描画する必要がありますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- その他(法律) 意味不明な法律について ・ なぜ、著作権と肖像権と言う余計な法律があるんですか? 意味が分からねー! 4 2023/05/22 20:05
- 画像編集・動画編集・音楽編集 画質を落とさず切り取って透過したいです 2 2022/06/08 12:28
- 電子マネー・電子決済 QUICPayの登録ができない。 4 2023/06/10 10:57
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(映画) 昔の映画の3Dリメイク版。どうやって作るのか? 4 2023/02/16 10:17
- WordPress(ワードプレス) Wordpress 複数プラグインの不具合? 1 2022/10/09 21:52
- CAD・DTP 「機能ブロック図」の描画用フリーソフトを教えてください 1 2022/09/23 16:12
- 美術・アート トレパク疑惑をかけられにくくするには ここ最近いわゆるトレパク警察のいいがかりがが厳しくなったようで 1 2023/08/21 09:59
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NET フォーム上に描いたグ...
-
描画処理が実行されない
-
GDI+で描画した画像を消去する...
-
SwingのpaintComponent(...
-
BMP画像を画像処理して連続に表...
-
canvasで表示されてる画像を1...
-
Java 15パズルを作ったのですが...
-
JavaScriptで直線を描画したい
-
Java、jPanelに描画する
-
VB.NETのSendMessageを教えてく...
-
エクセルVBAで、条件に一致する...
-
3年間同じクラスになる確率
-
インスタンス参照でアクセスで...
-
c++,ある関数のクラスから別の...
-
ワイルドカード<?>と型パラメー...
-
「天声人語」をインターネット...
-
DataGridViewでセルクリックイ...
-
string formatについて
-
クラス間でのデータ参照
-
変数の参照でエラーが出てしま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NET フォーム上に描いたグ...
-
VB.NETのSendMessageを教えてく...
-
JAVAでの背景画像表示
-
C# DataGridView のCellPaintin...
-
重なった要素上でのイベントで...
-
C# リストビューの特定のセルの...
-
Androidで画像の中で指定した範...
-
画面のちらつきの原因が知りた...
-
複数画像表示切り替え Visual c++
-
Labelコントロールの背景をグラ...
-
VS Treeview のデザイン変更
-
描画処理が実行されない
-
GDI+で描画した画像を消去する...
-
このプログラミングをどう組み...
-
canvasで表示されてる画像を1...
-
ドラッグして矩形を描くには
-
getGraphics()の意味を教えて...
-
Canvas等の図形を移動する時,直...
-
DirectXのスプライト機能で3D回転
-
Exception occurred during eve...
おすすめ情報