【JMF】Java Media APIs【JOGL】
1 :
デフォルトの名無しさん :
2008/01/26(土) 20:26:43
2げっと
また、ほかのスレの範疇を超えるJava Media APIsの話題はこちらへ誘導してください。
現在C:\j2sdk1.4.2_16\binという風にパス設定してるんですが java3D使うときはどうすれば良いですか?
6 :
デフォルトの名無しさん :2008/01/26(土) 23:58:18
Java 3Dスレ、いつの間にか落ちてたのか。
ごめん、落ちてなかった。 3Dが全角だった。
俺もそれで見つけられなかったw
Java OSって結局どうなったの?
GLオブジェクトを叩けるタイミングがかなり制限されてるのがちょっと使いにくい… 油断するとすぐに javax.media.opengl.GLException: No OpenGL context current on this thread を食らってしまう。 例外吐いてくれるときはまだよくて、状況によってはJVMごと落ちたりする。 んー、けっこうじゃじゃ馬だなあ。
13 :
デフォルトの名無しさん :2008/02/15(金) 10:00:43
スレの伸びが遅いけど、今までJMFのスレはなかったしこんなもんか。 javaでデスクトップに目が向き始めたといっても、未だに企業(社内向け)のデスクトップだし、 消費者ユーザー向けじゃないよ。JMFの技術と企業利益や業務の効率は関係ないから、 まだまだ人柱だろ。 次はキャプチャとかカメラとかの技術、一言で言えばスカイプみたいなのが伸びるんじゃないか?
Sound API本を買ったんだけど、未だにそのままだったり・・・ JMFはSEに載せなかったのが失敗だったんじゃないの? JavaFXだとかふざけたことしてないで、 Java Appletで直接H264とか流せる環境を作らなきゃ。
Java SEだってやっとpngだし、ftpクライアントすらないんですけど、 H264とはずいぶんハチャメチャな要求ですなw いっそC#にでもすれば?
Silverlight?現実的に有効な選択肢だろうね。 4年後くらいには企業向けeラーニングソリューションは Silverlightの独壇場になってるんじゃないかな。
MSは金あるし もともとMSの商売相手は一般消費者で、お互いにマルチメディア(笑)を求めてるし web tvとかだった音声認識とか人間工学キーボードとか、MSのニュー・メディア戦略はよくこけるけどw
Update N(ConsumerJRE)がリリースされればデスクトップも盛り上がると思うんだがなぁ。
以前と同じで、まっとく盛り上がらないと思うが。
使うやつは使うし、使わないやつは使わないままだろうなぁ…
JREにMavenがのっかる感じ?
>>14 H.264を扱えるようにしてくれと、本家フォーラムで要望を出している外人が居たな。
デスクトップ分野(RIAも含めて)に進出したければ、プラットホーム毎の最適化作業が
重要なんだけど、Sunはこの手の泥臭い作業を避けるからなぁ・・・
まあ、ゲームを除くwin/mac/linux向けのアプリ作成とか死滅秒読みだし、
フロントエンドにAjax or Flex、バックエンドにJavaってのが王道だな。
Shader言語を使ってJava2Dを高速化とか、改善に取り組んでいるのは
好印象なんだが、いかんせん亀の歩み。
Qtime 4 Javaも少しぐらい手伝ってくれよと言いたい。
そういや、JavaSE6が出る時にはJOGLを統合って話もあったけど、結局あいまいになっちゃったね。
25 :
デフォルトの名無しさん :2008/02/17(日) 13:42:47
どうもwindowsの延長でjvmをみてるね。
それじゃ、javaをつかってデスクトップでどうこうとか言う夢は、いつまでもかなわないよ。
>>22 みたいなのは、正直c#やってろw
デスクトップ環境の構築でWindowsが目標なのはマーケティング上の必然だろ どれだけの人間が使ってると思ってるんだか
>>25 Windowsだけを特別扱いしろとか言うつもりはないし、俺はそんな環境をJavaと認めない。
どんなOSでも同じような品質や速度で動くべきと考えているよ。
未実装だらけの互換環境は存在するとはいえ、基本Windowsだけでしか動かない
C#は存在意義がない。普通にC/C++で作ればよろし。
てかJMFの場合、WindowsじゃなくてFlash基準じゃないか?
Flash 程度に出来て、なぜJavaで出来ないのかと、口惜しくてならない。
30 :
デフォルトの名無しさん :2008/02/17(日) 18:14:34
31 :
デフォルトの名無しさん :2008/02/18(月) 21:23:04
x.264使えばいい けど問題はH.264のデコード自体処理が重いことだ JMFのH.264デコーダはサードパーティのならある どうでもいいがSE6のjava2D、joglのパイプライン統合はもうしてある
32 :
デフォルトの名無しさん :2008/02/19(火) 14:44:38
きっとこのスレ立てた奴だと思うが、javaに期待しすぎだな。おまえがやりたいことはc#で達成できる。 windowsでしか実質動かないc#は存在意義ないとか、非常に自分よがりな発想だなw おまえが作るソフトも、キモキモ炸裂のインターフェースだろうよw そもそも、おまえのオナニー世界とか興味ないし、相当キモイ奴みたいだし、dとかc++やってろよw
それはそうだが、やっぱりJavaプラットフォームでやりたいじゃあないか
ってかここみているようなやつはマルチプラットホームでやりたいから
わざわざJavaなんか使ってるんだろ?
少なくとも俺はそうなんだが…
>>32 やりたいことが「マルチプラットホームなXXXアプリ作る」だったら達成できないだろ?
そんだけのことだ。
C#なんてwinでしかうごかんくせに糞重いもん使ってられるか やっぱ立てれば馬鹿が釣れるんだなと立てた人参上 ネイティブでやりたいならC++で十分。
>>32 かわいそうに。発狂してしまったのか。
MacOSXとかちょっと使ってみ。WindowsのUIが腐っていることに気づくと思うぞ?
37 :
デフォルトの名無しさん :2008/02/20(水) 08:25:57
マルチプラットホームとかバカか? いつまでもJavaの思想にすがってんじゃね―よw コーデックの一つも実装できないくせに、Javaにおんぶで抱っこで、おまえはバカだろw
38 :
デフォルトの名無しさん :2008/02/20(水) 08:31:51
MacとWindowsを使ってる人の比率を知ってるだろ。 重要なのは、腐ってるUIかどうかじゃないと思うぞ。 確かにMacは見た目だけはセンスありそうだが、Mac使う奴はお子ちゃましか集まってないだろ。 それと、おまえはUnixとかも入れて評価してそれでもWindows UIは腐ってるといってるのか?
>>34 マルチプラットホームのことを意識してる奴は少ないと思うが?いつの時代の話をしてるんだ?
未だにJavaのキラーアプリもなければ、アプレットもしょぼいのだけだな。
やっぱりこれがJavaだ!!
って感じが、マルチプラットホーム対応のJavaであってもないのはどうしてだろう。
コーデックとか内部の処理はnativeになるからjavaはnativeは弱いし、
native使うんじゃ、マルチプラットホームとは言わないんじゃないか?
マルチといいつつも、所詮win, redhat linux, solarisの3つしかないしw
携帯で動けばいいんだよ
別にコーデックの内部がnativeとは限らないんじゃね? MP3はJDK1.2時代にすでにpure javaなデコーダで鳴らせてたし、 いまはMPEG4 videoのpure javaなデコーダもあるしね。 マルチかどうかは知らんが、Sunが直に出して無くても良いんじゃないか?
積和演算の塊みたいな処理をJavaでやるのはなんかCPUを無駄遣いしてるような気もする。 そろそろ行列演算ライブラリをJava標準に入れてもいいんじゃないか? IA、Sparc、PPCとかのメジャーな環境ではSIMDを叩くようにして。
AtomicIntegerみたいにJavaにSIMDプリミティブを導入してJITかけようってことか? そうでなくて行列専用?
マルチプラットフォームには今でも夢見てるだろ 実際Flashが実現できてる事をJavaが実現しようとしないことが問題なわけで。 Javaはビルダーレベルで無償だから、旨みがなくて一生このままだろうが。
vecmathとかってSIMDつかってるのかな? SIMDを使えるようにするよりは、GPGPUの法が現実的?
おまえら大丈夫か? Javaのマルチ環境サポートの話をする奴もいれば、SIMDとかGPUとかネイティブよりの奴もいるし。 こいつらは、JMFに何を期待して、一体やりたいんだろう。
やっぱりすごいことしようとすると、SIMDとかハード頼みになるんだよね。 別にJava(JVM)は、すごいことをするような専用の環境ではないだけど。
>>46 このスレはおおむね期待通りに機能してるよ?
隔離スレだもの
GCのある言語でカジュアルに書けてなおかつOS毎のある程度の最適化が行われるようなモノを求めてるんだろう。 俺もそうだが、大規模のソフトウェアを書こうとすると C++ ってのは今ではもう絶望なんだわ。 IDEがサポートしきれない複雑怪奇な仕様の言語でプログラム書くのはもうかんべん。
>>45 SIMD使ってるかどうかは分からないが、Vecmathは標準構成に入れて欲しい気も…
LLVMで動くJavaVMができれば面白くなると思うのは気のせいですか?
52 :
デフォルトの名無しさん :2008/02/24(日) 15:30:47
それってJava Media APIsとなんか関係あるの?
やっとできるようになるのか。Macじゃ前からできるからのう。
55 :
デフォルトの名無しさん :2008/03/02(日) 23:37:39
よっしゃーー!!! わくわくだ~
あんなのがそんなにうれしいのか…
実際に作ってみると非短形ウィンドウって使わないな。
MSオフィスのイルカみたいなキャラクター系とか、 メディアプレイヤー系ソフトのスキンとか、 タスクトレイの噴き出しみたいなとか・・・くらいか?
なぜか解らないけどオーディオプレーヤーは非矩形ウィンドウが好きだよね… 半透明の方は非矩形よりはまだいろいろと使い道がありそう
joglのdemosを試しているのですが、demos.hdr.HDRで失敗しています。 起動はするのですが以下のダイアログが表示され、メインウィンドウ内もなにやらバグっています。 「Texture rectangle extension not available (need one of GL_NV_texture_rectangl,GL_EXT_texture_rectangle or GL_ARB_texture_rectangle」 もしかしてハードウェアの問題でしょうか? 実行環境はCPU CeleronM360, RAM 768MB, グラボ Mobile Intel 915 Express, OSWinXP sp2です。
そのGPUでは無理。
つーかオンボでOpenGL試すとかw Texture rectangle extension not available (need one of GL_NV_texture_rectangl,GL_EXT_texture_rectangle or GL_ARB_texture_rectangle って書いてあるじゃん。
オンボだろうが何だろうが拡張を必要としない範囲では使って当然だろ
www.Javafx.comの「Movie Cloud」の説明には、 > In the Video Cloud demo watch up to 200 video and audio clips > playing simultaneously at Blu-ray HD quality. > A new advanced JavaFX Media Framework enables > high fidelity audio and high definition video in your JavaFX applications. と書いてある。 対応コーデックがどれなのかまでは調べていないけど、 JavaFX Media Frameworkを使えば、Blu-ray HD品質の動画を 再生できるようになるのでは。
>>64 は、
>>14 、
>>15 、
>>22 へのレスです。
>>49 全くもって同意です。
しかしそういう用途をターゲットにしているのは、
JavaでもC#でもなく、Dではないかな。
少なくとも現時点では。
DってDigitalMarsの?MSの?
68 :
デフォルトの名無しさん :2008/05/25(日) 18:01:33
コンパイラのバグと仕様変更が凄まじいからな。 でもjavaよりマルチメディアましだと思う。 JMFもただの純粋なラッパーだし規格がもう古いし。
>>1 にあるAPIは新たにJOGLという名前で呼ばれるようになったのか。
初めて知った。
ここ暫らくJavaに触れていなかったのでものすごく懐かしさを感じるAPIに
再開した気分だ。
よく嫁 >Java Binding for OpenGL(JOGL)
>>46 SIMDとGPUは携帯電話、サーバ、PC、PDA、家電に標準搭載されれば
プラットフォーム非依存ということになる。
76 :
デフォルトの名無しさん :2008/07/22(火) 21:58:52
TextSS
JTAPIとCisco JTAPIの違いは差分だけ? 全くの別物?(んなわけないとおもうけど)
解決 思っていたとおり拡張でした。
79 :
デフォルトの名無しさん :2008/09/21(日) 03:38:18
80 :
デフォルトの名無しさん :2008/09/28(日) 07:07:46
JMFでmp3再生しようとしてJMF MP3 Pluginをブチこんでみたけど,一部のmp3ファイルが再生できない. もしかしてVBRエンコードされちゃってるmp3ファイルとかは再生できないのかな?
JMF向けMP3プラグインは複数あるからどれのことか分からん
82 :
デフォルトの名無しさん :2008/10/04(土) 16:47:57
うお、お前らちょっと俺も混ぜろw
>>73 ただ、JMFというよりはJVMの拡張という話題という気もする。
JMFからいちいちJNIでSIMD命令をコールするなんて構造にはならないだろうし。
そういう目的でJNI使ってもあんまり意味無いよ。使えると使い物に成るは別。 結局はハード依存のほうが速度出せるのが現実だからな。クロスプラットホーム捨てればいいだけだけど。選択枝増やすのは大変だが減らすのは簡単。 マクってJMF使えないのな。どうせマク使わないからどうでもいいけど。 MP3プレイヤ作ろうと思ったけど、マクでは動かない事にするwww
85 :
デフォルトの名無しさん :2009/02/04(水) 02:50:39
Java Sound API と mp3 spi でできるよな・・・
87 :
デフォルトの名無しさん :2009/02/27(金) 00:12:09
MonoじゃSIMDがサポートされたらしいけど、Javaは?
SSEは使うけど、ベクトル化はないんじゃないかな。
基本的な配列操作とかにSSE使うようにして欲しいって言うのは、Acceptされてるね。 Javaの場合SIMDサポートするなら、SSEだけじゃなくてVISは外せないだろうし、 やるならHotSpotでがんばるんじゃないかな。 Monoもベクトル操作のIL追加して、JITでやってるみたいだし。
確か、1.4くらいのときからJVMはSSE使ってるんだよね。 どういう風に利用しているのかはよくわからないが。
UseSSEで設定できるよ。 UseSSE=0 SSE使わない UseSSE=1 SSE UseSSE=2 SSE2 UseSSE=3 SSE3/SSSE3/SSE4A UseSSE=4 SSE4_1/SSE4_2 基本はFPの演算をFPU使わないでSSEでやるのがメインじゃないのかな。 gccの-mfpmath=sseみたいなやつ。 JDK7の開発ラインだと、SSE4.2の命令使ってString.indexOfとかやってるみたい。
Java3Dについての質問です。 これって、一発書いてくるくる回したりするだけなら楽だと思いますが、 例えば、プレゼンテーションモデルが変更して再描画をする時とか、 いちいちJava3Dのオブジェクトを全生成する必要がある気がします。 つまり、再描画に対して恐ろしくパフォーマンスが悪い気がするということです。 この考えは正しいでしょうか? Java3Dのオブジェクトを生成するのは、swingのRectangleなどを生成するのとは桁違いに重いので、 3Dプログラミングで再描画をするということを考えた場合、Java3Dはパフォーマンス的に致命的であるような感じがします。 みなさんの意見を聞かせてもらえませんか? 例えば、Java3Dでネットゲームを作ると言った場合、 連発する再描画が間違いなくボトルネックになる気がします。
93 :
デフォルトの名無しさん :2009/04/11(土) 10:14:02
すいません、あげときます。
>>92 >いちいちJava3Dのオブジェクトを全生成する必要がある気がします。
なんでそう思うの?
95 :
デフォルトの名無しさん :2009/04/11(土) 12:22:02
>>94 そうしない方法があるんですか?
例えば、天体シミュレーションのケースを考えましょう。
地球のまわりを月が回るだけの簡単なプログラムですが、
プレゼンテーションとしては
earth = [x, y, z]
moon = [x, y, z]
という座標が考えられます。
これを元に差分演算を行い、位置をどんどん変化させていきます。
これを描画する場合、
JPanelを継承した天体ビューアでは、
このモデルを引数として初期化する時にシーングラフを生成します。
この時、それぞれの天体を描画するためにSpheare < Primitiveを使うこととします。
微小時間後にプレゼンテーションモデルの位置が変わります。
この時ビューアの方に変更の通知が入り再描画になります。
再描画の方法としては、またオブジェクトを生成してシーングラフをリコンパイルするしかありません。
Java3Dはシーングラフの変更については描画結果とバインドしてくれているので、
シーングラフを動的に書き換えればそれが描画結果に反映されますが、
シーングラフを書く元となったデータとは分離されています。
これと同じケースはSwingでも言えると思います。
データを描画する際には常に全部再描画、通常、全Shapeオブジェクトの再生成です。
全生成というのは、シーングラフのUniverseなどを再生成するという意味ではなく、
上記の例でいえば、天体を表すオブジェクトを生成して、BranchGroupに動的につなげ直す必要があるということです。
再生成は避けられないと思います。
96 :
デフォルトの名無しさん :2009/04/11(土) 12:28:47
追記です。 もし、Java3Dがプログラム上で上記のような再生成を行ったとしても、 最適化技術によって、メモリ領域のreallocateが起こらない、 描画としても再描画については高速になるなどの技術があるのだとしたら、 それを記した記事を教えてもらえると助かります。
98 :
デフォルトの名無しさん :2009/04/11(土) 12:47:01
>>97 そもそも再描画は意識せず、
一回書いたらあとはJava3D上でのインタラクションしか追加しない
という前提で作られたライブラリだということでしょうか?
また、再描画時に全オブジェクトの再生成が必要だ、
という私の考えはそもそも正しいのでしょうか?
間違ってると思うよ。
102 :
デフォルトの名無しさん :2009/04/11(土) 13:01:45
>>99 どう間違ってるのか教えてもらえませんか?
103 :
デフォルトの名無しさん :2009/04/11(土) 22:03:30
>>101 読みましたが、
"ひどい"という印象を受けました。
コードの質も悪いですが、何より悪いのは、
モデルであるはずのBoatなどがjava3dのオブジェクトにべったり依存していて、
とても再利用出来ないということです。
私はプレゼンテーションモデルを意識した実装をJava3Dで行おうとしています。
質問しているのは、モデル変更に伴う再描画においてオブジェクト生成のオーバーヘッドがあるのかという話です。
Java3Dの中で完結するインタラクションの類であれば、コストは低いでしょうが、
プレゼンテーションモデルが変更された時の再描画は、どうなるのかというのは、とても気になるところだと思います。
基本的に再利用自体にオーバヘッドが有ると思うけどね。 java自体で描画してない以上、非効率なのはしょうがない。
自分、以前Java3Dでゲーム作ってたけど、JOGLに移行した。 オブジェクトに直接座標を指定するだけでけっこう面倒だったような記憶がある。 一通りの機能を実現するための手続きは用意されているんだけど、 それからちょっとでも外れたことをしようとすると途端に難易度が上がるという印象だった。 で、描画エンジンをJOGLで作り直した。 モデル描画と座標管理を自前で作ることになったけど、それでもまだJava3Dでゲーム作るよりは 楽という気がするなあ。
java3dはゲーム向きじゃないよなぁ
107 :
デフォルトの名無しさん :2009/04/12(日) 08:37:05
>>104 再利用にオーバーヘッドがあるのは当たり前です。
例えばUnixのコマンドはとても再利用性が高いパーツだと思いますが、
パイプを使ってやりとりするため、非常にオーバーヘッドが高いです。
初回でオーバーヘッドがかかるのは我慢出来ます。
Java3Dはシーングラフについて最適化かけていますし、なので非常に軽くくるくる回ったりします。
今問題なのは、再描画のコストです。
プレゼンテーションモデルが変更された時、再描画は初期描画と同等のコストがかかるというのが理論的に適切なのでしょうか?
プレゼンテーションモデルと完全に分離した実装をした場合、Java3Dは非常にやりやすいです。
しかし、インタクション(ゲームとかもその類です)を前提にした場合、再描画のコストがひどいのではないかという予想です。
めんどくさいので自分ではやっていません。
やった人がいたら教えてください。
>>105 外れたことというのは何ですか?
確かにAPIが複雑すぎるゆえに、何をするのか分からないライブラリがありすぎます。
openGLはシンプルなAPIで非常に分かりやすいですね。
超高級のRubyと中級言語のC言語みたいな感じだと思います。
RubyはAPIが複雑すぎて意味不明です。私はPythonを好みます。
>>106 ゲーム向きかどうかでない理由はなんですか?
ゲームのみに向いていないのか、もっと一般的にゲームの含まれるクラスについて向いていないのかということをはっきりさせた文章を書いてください。
私は、オブジェクトで管理出来るという利点からして、シーングラフ自体はゲームに向いていると考えます。
108 :
デフォルトの名無しさん :2009/04/12(日) 08:42:37
私がもう1つ、Java3Dの存在意義について悩むところは、 Java3DはJava実装なので、例えばCPythonではサポートされません。 Jythonを使えば、Jython3Dなどというラッパーライブラリが存在するのでそれを使えばいいですが、 私は、JavaだろうがPythonだろうが、可読性の高い低いはプログラマの実力次第だと思っているので、 Eclipseのサポートを捨ててまでJythonからJava3Dを使う理由がよく分かりません。 プログラムという大きな単位のうち、表面部分のプログラミングがどれだけ負担かと考えると、 それほどでもないと言った感じがします。 Java3Dは、プロトタイピング用の言語なのでしょうか? こういう絵になるかもなーというのを描くための言語と見ると存在意義がある気がしますが、 描画する限りはインタラクションが存在しないアプリケーションなどありえないはずなので、 そう考えた時、もし再描画に高いオーバーヘッドが存在するならば、Java3Dはそもそも使い物になりませんという話になる気がします。 ・・・というか、再描画にコストかかるかも分からんとか言ってるなら、実験すればいいのかな・・・
java + 3d + game + library + power これをストレスなくいっぺんにできる環境は「果たしてPCなのだろうか?」考えたことあるか
110 :
デフォルトの名無しさん :2009/04/12(日) 08:49:00
CPUやGPUの性能を問題にしているのではありません。 大体、ゲームを作るだなんて一度も言っていません。
>もし再描画に高いオーバーヘッドが存在するならば、 ハード知識がこの程度しかないなら、その長文は君がパイソンを使えば解決するのであって、ライブラリが肌に合うかどうか程度の問題でしかない。 それよりも、高速な再描画についてはGPUがもうすこしで汎用プログラム可能となるから、その問題もあと数年(3-5年程度)で解決できるだろう。 それまで待てないなら従来どおりGPUの方(のライブラリDirectXやGLやGPGPUなど)を勉強するしかないな。 ただ、DirectXなどのライブラリをJNI経由で呼べばよいだけなんだけど、オーバーヘッド君じゃそういう発想はないんだろうな・・
Javaでmedia(a/v)とかgameに活気がなくいつまでもjavaがデスクトップに進出できないのは、こういう熱意ある若いクリエータが少ないからだろうと思った。 rubyよりpythonとかいってるところを見ると、いまだとよりお気楽なflashの方に活路を見出すだろうし、数年するとflashは廃れてmssilverとかjavafxとかの時代になるんだろうな。 これじゃjava mediaに戻ってくる奴はいないよな。
113 :
デフォルトの名無しさん :2009/04/12(日) 09:47:54
>>111 確かに、私にはハードの知識がありません。
研究室としてはハードよりのこともしていますが、私のグループは違います。
私は高レベルなAPIを使う方が楽でいい、という主義なので、グラフィックはまずjava3dから入りました。
よって、その中で何が起こっているの分かりませんし、
オブジェクト生成時、シーングラフ解析時に何が起こっているのかもよく分かっていません。
しかし、なぜハードの話が出てくるのでしょうか?
私は再描画の際にオブジェクトの再生成が起こることは不可避なのかという質問をしています。
ずばり、インタクティブな操作においてプレゼンテーションモデルが書き換わり再描画をする場合、
joglとjava3dではどのような性能差があるのかお答え願いたいです。
joglはfloatなどのprimitiveに対して単純データ結合であり、単純な描画をしてくれるという印象です。
しかしjava3dはシーングラフというオブジェクトを経由するのでその生成コストが免れないのでないかといっています。
joglの場合でも、ポリゴンを生成したり色々と生成コストがかかるものでしょうか?
例えば、球を10000個ほど再描画する際にjoglとjava3dではどのくらいの性能差がありますか?
java3dは初期描画時にシーングラフ(Universeなど)の生成が入るのでその分遅いですが、
それ以降は、描画対象のオブジェクトだけを再生成すればいいので、別段遅くないということであれば嬉しいです。
そういうのを研究室で聞いたらどうですか? 蓄積されたノウハウってやつですが、3流大学じゃそういうノウハウもないんでしょうけど。 >私は再描画の際にオブジェクトの再生成が起こることは不可避なのかという質問をしています。 不可避かどうかはソフトではなくて、ハードの方に依存していて、再生成をハード側が要求するのもあれば、 しないのもあります。 たとえばハードいっても、抽象化したハードjvmならnew(ソフト上)をするし、ネイティブリソースを直接いじる(ハード上)ならcでスタックにおくだけですし。 高APIでもいいですが、より複雑なことをやりたい、なにか物申したいなら、そういうあたりを勉強してからじゃないですか? cpuにfpuユニットが搭載され、今ではsseもあたりまえにハード搭載されてきた歴史があります。 しかし、3Dは多少マザボにオンチップとなりはじめましたがまだ搭載ハードではないし、 ソフトで実装してるなどあたりまえで、ハード・ソフト混在の状態です。 たとえばDX9のアプリをDX6当時のGPUでは高速描画出来ないのでソフト処理になるため、どんなに進化してもこのようにソフトの仕様(再生成必要など)に依存する。 以上のように抽象化する下地が出来てないので、3Dはあなたが思っているようなライブラリ作れません。 くだらない長文を書いて荒らすよりも、まずは自分で測定し実際に問題があったところを質問したらどうですかね? あなたの哲学妄想はチラシの裏に書いたらどうですか?
何か別のアプリがあって、その表示エンジンとして使いたいならOpenGLの方が楽だと思う。 最近のバージョンには触ってないけど、Java3Dの1.2とか1.3だと、 モデルを動かすのに速度ベクトルを設定して、Java3D側で動かしてもらうってやりかただった記憶がある。 全体的に、直接的にパラメータをいじらせるのを避ける思想という感じがする。 Java3Dに脇役に徹してもらうのは難しくて、アプリケーションをJava3Dの流儀に合わせる必要がある。
116 :
デフォルトの名無しさん :2009/04/12(日) 12:13:05
>>115 直接的にモデルに相当するパラメータをいじられるのを嫌うというのは当たり前だと思います。
Viewの変化に関するストレテジ的なパラメータ設定しか出来ないようになっています。
例えば、見た目を変えるとかその程度です。
Java3dでオブジェクトの位置を動かすのはTransform3Dをいじって動かすという方法が考えられます。
しかし、描画したあとにTransform3DをいじるということはMVCフレームワークの観点からいって、かなり邪道であるように思えます。
Transform3Dは描画する時の座標設定でのみ使って、のちの移動はすべてモデルの変化を反映する形で再描画するというのが正しいと考えます。
>Java3Dに脇役に徹してもらうのは難しくて、アプリケーションをJava3Dの流儀に合わせる必要がある。
この部分ですが、"脇役"というのは何を意味していますか?
プログラムに主役脇役がいるということは初耳です。
独自にプレゼンテーションモデルを設定し、それをJava3Dで見るだけという方法ではいけないということですか?
そのプレゼンテーションモデルはjoglであろうがJava3dであろうが、あるいは他のライブラリであろうが表示することが出来るものです。
あなたが意味しているのは、
もしJava3Dは何かプレゼンテーションモデルを作ってそれを表示させる為のものではなく、
Java3Dのオブジェクトを繋ぎ合わせて絵を描くためのお絵描き言語だということでしょうか?
"難しい"というのであれば、どう難しいということを説明してください。
>>114 三流ですいません。
CADの世界じゃ「オブジェクトを繋ぎ合わせて絵を描く」のが主流だな。 あちらの用語ではフィーチャー・ベースとかいったかな。 アニメーションも2Dプログラミングの世界ならスプライトを使うが普通だし、 最初から高級APIだとうたうJava3Dのアプローチとしては自然じゃないかな。
何もやったことなくて愚痴ってるだけでしょ 新手の荒らしっところだな
>>119 でも、こんな曖昧な質問レスに対してそれでもみんな構ってくれてるのが偉いというか大人というか…
「とりあえずサンプルコード組んで晒せ。その後でなら話聞いてやる」
というスレもあるからなあ。
このスレは閑古鳥だからヒマなんだろ ていうか、ある程度出来る奴ならこんなところこないで英語のフォーラム行くし 日本語しか出来ないならクリエイティビティなことはあきらめて日雇い三流プログラマ(月収15万)がお似合いだろうな
>116 はなんじゃ?ここは学会じゃねぇぞ
おまえら元気にしてるんだな・・・。
まあ、よりプリミティブなものを求める気持ちは分かるけどね。 俺もJava5のfor拡張は、登場から1年近く使ってなかったし。
>>125 それはgenericsあってのforだから、使かわなかっただけじゃね?
>>126 いや、ArrayListがRandomAccessをインプリメントしてるのに、
イテレータを使ってくれることが何か納得できなかったw
そういや値のバリデータに正規表現を使うこととかも抵抗があったな。
実用性の範囲が明確になってくるとそういうのは次第に消えてったけど。
implements RandomAccessに納得するかどうかは意味上の話だからgenericsとはまた別の問題と思うが。 それと、バリデータじゃなくてバリデートだと思うんが・・・
java3dはあと何年かかるんだろう。もうすぐメモリも8Gとかあたりまえの時代がくるのに・・・
131 :
デフォルトの名無しさん :2009/04/12(日) 18:40:18
>>117 まず、何が"自然"なのか、補語が抜けています。
it is natural to 何なのですか?
たぶん言いたいことは、シーングラフのTransform3Dをboatがいじって移動させることは妥当であると言いたいのでしょうが、
私が目黒川のコードで悪いといっているのは、boatがTransform3Dに依存しているというところです。
プレゼンテーションモデルの変更をすべてシーングラフに通知する必要はなく、
例えばボートが動いたということであれば、
まずボートのモデルを移動させて、次にプレゼンテーションモデルから、ボートの位置が変わったことをシーングラフを含むビューに通知すべきだということです。
簡単にいえば、「依存関係が逆」ではないかと言っているのです。というか双方向参照になっています。論外です。
"Java3Dのシーングラフはモデル中のあるオブジェクトの移動については全描画をしなくとも部分的なシーングラフの変更のみで対応出来ます"
という仕様にすぎません。
仮にTransform3Dが不変オブジェクトならば、これが不可能になり、モデルが何か変更したらそれを通知するためにはオブジェクトの全生成をしますという仕様になります。
これは耐えられないのでシーングラフがオブジェクトの移動に関しては部分的に変更を許すというインターフェイスを設けたにすぎません。
CADの件についてもフィーチャーベースだろうが何だろうが、基本的にはこういう原理かと思います。
Java3Dが高級APIだからとかいう理由ではなく、単にモデルの変更を全部受けずに、移動に関しては部分的に受けた方がパフォーマンスがいいのでそうしたということでしょう。
ただ一方で、Primitiveなオブジェクトについては座標系のデータが不変になっており、融通が効かなくなっています。
それについて部分的な変更を許容することに、理由は知りませんが、意味を感じなかったのでしょう。
スプライトの話はどうしてここで出てくるのか理解出来ません。
スプライトというのは知らなかったので、今wikiで調べたのですが、
モデルがビューに依存していい理由がどこにあるのか分かりませんでした。
CADの例も同様です。
132 :
デフォルトの名無しさん :2009/04/12(日) 18:42:12
続きです。
おそらく、ある分野においては、
モデルをビューに対して依存させることでプログラミングをしやすく出来る的なことが言いたいのでしょうが、
私には一体どういう分野でそういう理屈が通るのかが分からないので教えてください。
CADにおいて、あるいはゲームのアニメーションにおいてモデルがビューに依存すると"よい"といえる具体例をお願いします。
>>124 三流なのでそれすらも出来ないということです。
>>130 何が?
あと何年、"何を達成するのに"かかると言っているのですか?
他のクラスに強く依存しているとは言うけど、別に彼はライブラリ作ってるわけでもなければ モジュール化するためのサンプルを書いてるわけでもないからね・・・・ どうでもいいけど大御所の3Dのプログラミング本(当然英語だけど)読んだら?
それはそうと、今度は長文の爆撃投下か・・・ 新手の荒らしはいろんなところから現れるよな
彼の理想郷を現実のものとして実現させるには、あと8年はかかるだろうな・・・
>>130 しばらく放置気味だったから、シェーダ対応の1.5が出たときはびっくりした。
ただ、LookingGlass作ってた人もSunをやめちゃったし、JOGLも正式リリースされたし、
有り難みはだいぶ薄くなっちゃった感じはあるな。
いまSUNはIMBの買収とか経営の方で立てこんでるみたいだから、人がいなくなるってのもしょうがない感じはする。 ソフトの世界だと、別に会社がなくなってもそのプロジェクト自体は存続する(特にオープンにしてあると)から、外の世界での騒動とはあまり関係ないんだけど。 IMBCが作ろうがSUNが作ろうがプロジェクト自体の出来はあまり差はないかな。APIはその会社の癖がだいぶ出るだろうけど。 どうでもいいけど、java mediaのコーデックどうするつもりだろう・・
……IMB?
139 :
デフォルトの名無しさん :2009/04/12(日) 19:41:26
>>135 ようするに
"どんな言語で書いてもオーバーヘッドがない"
という状態ですか。
メモリの問題ではなく、CPUの性能が上がったり、
GPUを利用したプログラムが標準になってくれば、
基本的には"開発者に優しい"ことが最優先になってきます。
現状でもかなりそうですね。
つまり、現在不快に思える処理時間の遅さが不快でなくなればいいということです。
私の理想は、"美しい設計"です。
設計的に曲がったことは絶対にしたくありません。
理由のない設計は、何より可読性を落とします。
プログラムを読む時、それがある正しい方針の元に設計されている時、明らかに読む速度は上がります。
可読性という点において、プログラミング言語による差はもちろんあります。
例えば、Pythonで書かれたプログラムは一般的にJavaで書かれたプログラムより読みやすいでしょう。
しかし、わけの分からない設計、あるいはもっと局所的にいえば、フィールドの使いまわしなど、
可読性を落とすもっと大きなファクターはたくさんあるわけで、
結局のところ、可読性は、そのコードを書いたプログラマの腕依存ということになるわけです。
目黒川のコードは非常に読みにくいです。大きな理由としては、
1. 設計思想が意味不明
2. 変数の名前が理解不能
3. どこで定義された変数なのか理解不能なことが多い
と言ったところですね。これを書いた人はコードコンプリートを読んでないのでしょう。
>>136 joglがリリースされたことと
Java3dのありがたみの間にある相関性は何ですか?
それ以前はjavaで3dといえば、java3dしかなかったという意味ですか?
140 :
デフォルトの名無しさん :2009/04/12(日) 21:01:25
そろそろ「その理想的な設計に基づいたソースコード」をアップしてくれませんか? 長文能書きは聞き飽きたので
141 :
デフォルトの名無しさん :2009/04/12(日) 21:04:10
こういう人っていつの時代でもいるけど、いっつも上の方76度ぐらいのところを向いてるよねww
142 :
デフォルトの名無しさん :2009/04/12(日) 21:11:02
まあ、こういうおとぼけチャンは「かっちょいい3Dライブラリ」をいつか作ってくれるだろうから気長に待ってばいいんじゃね? だけど8年以内に作ってくれよ。 そうじゃないとハードの方が先に進化して必要とされず、せっかく作っても「かっちょ悪いライブラリ」になっちゃうから。
過疎スレなんだからまったりしようぜ
ここで、Java3Dについて書くと、添削してもらえるらしいです。 査読してもらってから投稿しましょうね。
実際問題、このスレでjava3D使ってる人いる? 漏れはJOGLに逃げたが。
高レベルで使いにくいから俺もJOGL
147 :
デフォルトの名無しさん :2009/04/13(月) 20:34:55
おれもjogl勉強し始めた。 めんどくさいけど、3Dプログラミングなんて単なる技術的な問題で、 設計も何もなく、ただAPIのとおり組み立てればいいだけだから、気が楽だね。 Java3Dの方が表面的には楽だけど、 joglの方が 1. APIがコンパクト 2. openGLのことならぐぐればすぐに出てくる。Java3Dは辛い。 3. てゆうか研究室の人に聞けばたぶん何でも分かる。 という点でむしろ良いのではないか。 そもそもopenGLはグラフィック学習用の言語であって、 実用性うんぬんを差し置いても勉強しなければいけないものなのではないか? それは、メモリアーキテクチャを勉強するのにC言語を勉強するのと同じ意味なのではないか。 実用性の問題ではない。コンピュータリテラシの問題だ。 そう判断して、joglを勉強し始めた。 いっとくが、それでもやっぱりおれは高級言語が好きだ。 特にPythonが好きだ。 C++まではただ動くことが条件だった。 Javaで、安全にプログラムを書く仕組みが組み込まれた。 Javaの普及によって色々なフレームワークなどが開発された。 オブジェクト指向への貢献としてはJavaは良い仕事をした。 そして、Pythonは、そこに美しさを組み込んだ。 だからおれはPythonが好きだ。 たぶん出来る人間はPythonが好きになる。 この言語にはそういう魅力がある。 オブジェクト指向が分かれば間違いなくPythonに魅力を感じる。 Rubyにはそういう魅力はない。
よそで熱弁しろw
リアルでは誰もかまってくれないんだろうなぁ・・・・
>>147 > おれは2chで自分語りするのが好きだ。
まで読んだ。
それくらいにしといてくれ。 自棄おこしてコピペ荒らしとかになられても困る。 …まあ、もしそうなったら単にまた過疎化するだけか。
Cでdirectx弄ると、3DCGソフトの出力が使えて便利とかあるけどね。 全部javaも良いけど、簡単な方法はいくらでもある。 人のコードの批判はするけど、自分では3流故にコード書けないみたいだしね。 美しさよりもまずは動作させないと論文に成らないと思うwww
論文というより、まだ始めたばっかりの初心者だと思うんだが
始めたばかりならどんな糞コード書いてでも動いて完成させることを最優先した方がいい。
>>152 動作しなくても論文にはなるだろうし、動作しないと論文にならないものならdirectxとか使ってる場合じゃないだろ
156 :
デフォルトの名無しさん :2009/04/14(火) 07:23:35
Java3Dはjavaプラットフォーム上でしか動かない。 joglはopenGLを元にしているので、javaプラットフォーム上は当然として、C実装の言語上でも動く。 openGLが分かればjava3Dはわりと理解しやすい。 よってjoglを勉強するのが最善。 ここには、CからJavaに向かう時のパラダイムシフトがないし、 ただのライブラリ、言ってしまえば、バカでも勉強すれば分かるところ。 抽象的な概念もないし、勉強しておくべきだろうな。 と思った。 あと少しでおれは神プログラマになれる。
納得しようとしたけど j って付いてる時点で諦めた
動作しない物を論文に書いても検証出来ないと思うが。 結局はGPUで描画されるから、理解のためにGPU直接動かせば良いじゃん。 その仕組みが分かった上で、高級言語のjavaでどう有るべきか論文書くならまだ分かるけどさ。
159 :
ちんこ ◆GbXlaaQNk. :2009/04/18(土) 18:56:04
当方ちんこだが、 今、openGLの勉強をしている。 でも、 "これはアプリケーションを構築するという意味では使い物にならんかもね" というのが正直なところだ。 アプリケーションを構築する上では、 オブジェクト指向だからとかそういうことではなく、Java3Dを使う方が得策な気がする。 グラフィックを使うプログラミングのうち、95%の欲求はJava3Dによって簡単に解決される気がする。 残りの5%の人はまぁ頑張ってください、と。 こういうライブラリのとる態度というのがそういうものだからね。 多くの欲求を満たすために設計されて、それ以外の人は頑張ってという態度をとる方が効率がいい。 例えば、Javaにしても、アプリケーションを構築する上でたぶん95%の欲求はJavaで満たせる。 だけど残りの5%はC/C++でしか満たせないでしょうと。 Pythonとかにしても、パフォーマンス上の理由で使いたくないという場合はほとんどないと思う。 CPUの性能が上がっていくから、ボトルネックはどんどん局所化していく。 人はどんどん高水準な言語を求めていく。 それでも、その元となっている言語を疎かにしていいというわけではないんですね。 特に、そういう原始的な言語は基本的な理論を含んでることが多いから。 openGLは3Dグラフィックの基本が含まれている。 JavaFXはJava3Dをサポートすることを願う。 そうすれば、Java3Dは生き残れるw
160 :
デフォルトの名無しさん :2009/04/18(土) 18:59:04
openGLってなんですか?
161 :
ちんこ ◆GbXlaaQNk. :2009/04/18(土) 19:08:45
知らんけど、 3Dグラフィック処理をそれなりに簡単にやってくれる 業界標準気味のライブラリ。 それなりに面白い。 openGLは、どの言語でもライブラリが作られるから、必須な気がする。
………ここまで来ると、本当の天然なのか、 本物は既にこのスレから立ち去ってて、あのキャラを面白がって演じてる人間がいるのか、 判断が難しいところだな…
これがうわさの、春になるとニョキニョキしてくる「ちんこ」ってことでしょw
164 :
sage :2009/04/18(土) 23:59:57
JMFで、悩んでいます。 巷の画像処理技術に興味を覚え、今更ながら時代遅れのJMFを勉強 をはじめました。JMF関連の書籍やサンプルコードの入手して簡易 の動画ツールを構築しています。 その折、サンプル動画ファイルを引き込みMediaPlayer クラスの getVisualComponent()でVisualコンポーネントを得ようと試みて ますが、nullの返却しか得られません。 (JMStudioでは映像を見る事ができる動画ファイルを扱ってます) getVisualComponent()の利用で注意する点を御存知でしょうか。 諸兄方々の御力添えを頂けますよう宜しくお願いします。ノシ。
コード晒さんとなんとも
166 :
ちんこ ◆GbXlaaQNk. :2009/04/19(日) 08:54:28
よし、今日はopenGLの教科書を読み切るぜ! 天才だから余裕w
167 :
デフォルトの名無しさん :2009/04/19(日) 10:41:48
WindowsならJMFよりFMJだれかやってないか? アパーアアアアアアアアアアアアアアアアアアム!!!!!!
168 :
sage :2009/04/19(日) 10:41:52
>>165 レスありがとうございます。
公開向けにコードをカスタマイズしてましたが、avi形式に変換
する事でmpgファイルを扱えるかも知れないと気付きました。
もう少し、がんばります。ノシ。
codecねーんじゃね?JMF的に
openglのグラボが高い現実。 directxのほうが安いぞwww
JMFはcodecは自前で実装するもんだから無いだろうな。 winの実装はDirectXのベタラッパーだからバグもばっちり再現だし。
172 :
ちんこ ◆GbXlaaQNk. :2009/04/23(木) 18:58:16
java3Dやばい。 何この神ライブラリ。 気に入ったw
他所では動かない現実www
174 :
デフォルトの名無しさん :2009/05/19(火) 01:37:26
>>1 且且~
且且~
∧__∧ 且且~
(´・ω・) 且且~
`/ヽO=O且且~
/ ∥_∥且且~
し ̄◎ ̄◎ ̄◎
皆さん、お茶が入りましたよ…
ageるなksg
176 :
デフォルトの名無しさん :2009/06/05(金) 14:54:13
>>174 ∧,,∧ ∧,,∧
∧,,(´-ω-)(-ω-`)∧,,∧
( ´-ω)旦o) (o旦o(ω-` )
(_ o[( ´-) (-` )]o _)
└'ー-(_ )][( _)ー'┘
'ー'^ー' 'ー'^ー'
177 :
デフォルトの名無しさん :2009/06/23(火) 21:40:17
178 :
デフォルトの名無しさん :2009/06/24(水) 08:41:17
デスクトップ(2D)関係はjavafxにするみたいだよ。 数年前からアナウンスあったけどコーデックとかもjavafxは組み込み済みだし。 それとJMFはjdk1.7で少し結合されるんじゃなかったか。
すでにJava Soundが統合されたのにこれ以上何を・・・
java seに結合して組み込むならSPI方式とかプラグイン方式とかのフレームワーク化がお似合いでしょ。 mp3とか264とかのコーデェックを言語(ライブラリ)に入れようと考える発想がマルティクスな感じ。
でもオブジェクト指向言語としては、みんなが使う様な機能は再利用したい感じ。 標準に無いからそれぞれが組み込んで再利用が無いのってOOP的には逝けてない。
そのなんとか言語は、コードの再利用を促進はするが強制はしない。 よく分かってないみたいだしこの際だから勉強しなおしたほうがいいんじゃないの? そもそもコーディックの類はオブジェクト何とかはまったく相性悪いよ。
みんなでH264やMP3のコーデックを作りまくるのがjavaのメリットなんだよ。
JOGLも2.0から大幅に仕様変更
開発者ではなくただ見たいだけのユーザです。 Cycore Cult3D Viewer についてはこちらでうかがえるでしょうか? Vista SP2 IE8 で TCV: TOYOTA CAR VIEWER が動作せず、推奨措置、Google検索でも当を得ません。
>>184 OpenGL2.x以下が切り捨てられたら泣く。
glBegin-glEndとディスプレイリストの組み合わせって小規模のプログラムだと結構便利なんだよ。
全部をVBOにしろって言われたらしんどすぎる。
JMC良さそうだね。 自作アプリに組み込んでみるよ。
JavaFX1.2になって、JMediaPlayerってコンポーネントがなくなり SwingにJMCを仕込むのは難しくなってた。 SwingにJavaFXを貼り付けるハックを見つけたんで、そっちから 攻めるのがよさそう。 Java7でJMCが標準になれば無駄な苦労なんだろうけど。
189 :
デフォルトの名無しさん :2009/09/23(水) 12:32:55
JFM機能のなるべく下回りの方を利用し、 PGMやPCMを入力する事で動画や音声を再生する場合、 どの程度下のレベルまで活用が可能でしょうか?
190 :
デフォルトの名無しさん :2009/09/23(水) 13:01:44
質問の意味がよくわかんない。
>>189 AWTとJavaSoundだけで、動画や音声を再生することは、出来る。 (デコーダを全部自前で書けばだけど。)
下回りとか下のレベルってそのへんのことだとすると、JMFは関係なくなってしまうが・・・
何をどう活用したいので?
192 :
デフォルトの名無しさん :2009/09/23(水) 13:30:07
JFMを経由しないでHALを直接叩いて再生させるのかな?
193 :
デフォルトの名無しさん :2009/09/23(水) 13:33:21
JMFだった><。
オーディオ程度ならjava soundで出来るが動画はハードに投げないときついんじゃない?
>>192 がいいとおもう。
ピュアジャバでデコーダ書いて実用的速度でデコード出来るのかどうか。 普通にダイレクトX丸投げで処理してもらったほうが楽だし確実な気が。
ビデオのデコードも今時のCPUパワーとJITなら行ける 楽ではないけれど (実装が)
pure java版のJMFてまだあったっけ?
mp3をレアルタイムで再生速度変えて再生するのはどうdうればいいですか
200 :
デフォルトの名無しさん :2009/11/05(木) 19:40:30
manualよめ
JOGLのAnimatorって何?
javadocに書いてあるだろ。 displyコールバック呼び続けてくれる。
ちょっと教えてくださいませ。 再生する動画ファイルを切り替える場合、 Playerのインスタンスを作り直す必要があるのかしら? それとも、動画ファイルを既存のplayerに再設定する事が出来ますか? 後、crossplatform版で、avi(cinepak)のファイルを作って再生してるんですが、 動画は再生できるものの音声が出ないんです。 色々、音声のフォーマットを変えているんですが、どうにも出ないです。 crossplatform版でも、これなら出るよとかってありますか? 質問ばっかりですみません。
圧縮無しなら普通でるだろ。 地道に各環境ごとに対応フォーマット調べろと。
mp4コンテナにしてmpeg+mp3なら大抵でるんでない
mp4コンテナに標準で対応してるJMFビルドがあるのか? mp4でH.264/AVCなエンコーダ・プラグインなら沢山あるがデコーダは某二社が技術者向けに公開してるのしか知らん。
個人的には、mp3は諦めてlayer2でやればいいのかなって思うよ。 どうせ商用ってわけじゃないんだろうし。
なぁにもうFMJでいけばいい
209 :
デフォルトの名無しさん :2009/12/11(金) 23:47:38
JOGLのTextRendererの挙動おかしくない? ちゃんとbeginDrawing、endDrawingの間でフォント描画したはずなのに フォント描画のときに使われた頂点色が残っている・・?
再現ソースもなしに2chでおかしいと言われてもネタにすらならんぞ
おまいのところがおかしいだけで、他では問題ないと鴨良く有るしな。 そもそもフォント周りの挙動は仕様通りには動かないよ。英語環境前提で英語環境でおk程度の確認しかされてないから。日本語環境や全ての日本語フォントで問題ないという訳ではない。 不具合が我慢出来ないなら、全ての日本語環境や、全ての日本語フォントとか、あらゆる条件を想定して、最適な動作をする様に手順を記述するしか無い。
212 :
デフォルトの名無しさん :2010/01/17(日) 11:48:02
JOGLはじめようと思ったのですが、Windows64bitAMD版は IntelCPUのパソコンでもOKですか?
なんで試さないの? UnsatisfiedLinkError吐いて死ぬ。
windows7 64bit版でintel i7つかってるが 普通に動くぞ?
OSとCPUの組み合わせによる
JOGLで、Animatorに頼らずに任意のタイミングでdisplayメソッドを呼ぶには どうすればいいのでしょうか? GPGPU的な処理を考えており、任意のタイミングでオフスクリーンレンダリングして それに対する簡単な画像処理を行いたいのですが、 Swingで言うところのpaintImmediatelyみたいな処理のやり方が分からず、 最初のところでつまづいてしまっています。
自分でリスナのdisplay呼べばいい
218 :
216 :2010/01/20(水) 22:31:47
>>217 それも考えたのですが、displayの引数のGLAutoDrawableを
どうやって用意すればいいのか、やり方が分からずにできませんでした。
取得のためのメソッドなどがあるのでしょうか。
リスナを登録したGLCanvasとかGLPanelとか渡せばいい。
220 :
216 :2010/01/20(水) 23:50:29
>>219 あー、なんか徐々に見えてきたかも。
まだはっきり分かったわけではないですが、ここで逐一質問しまくるのも
良くないと思うんで、とりあえず実験コード組んで試行錯誤してみます。
どうもありがとうございました。
いまさらだがGLPbufferでもよかった気がする・・・。 >GPGPU的な処理を考えており、任意のタイミングでオフスクリーンレンダリングして >それに対する簡単な画像処理を行いたいのですが java6以降のSwingの新型OpenGL/D3Dパイプラインがこれやってるんだけどね。
>>216 いまさらだが、GLCanvas#display()でおk。
223 :
デフォルトの名無しさん :2010/01/24(日) 21:07:08
JavaでM3Gって使えますよね? それともあれは携帯メーカーとソフトウェア開発契約を結ばないと使えないのでしょうか
スタブがあれば開発はできるだろ。 MIDPスレに行け。スレ違いだ。
225 :
216 :2010/02/17(水) 01:20:35
JOGL2に移行したら、なんかかなり変わってて驚いた。 GLinterfaceにGL2とかGL3とかできてるし。
またガイドとソース読みながらコード書くことになるのか・・・。 OpenGL3.xとOpenGL ES対応とGLSLがらみがパッケージにまとめられたのがメインぽいね。
JOGLを使ったアップレットを設置してMacで開くと、 GLCanvasを生成するところで落ちてしまいます。 Windowsだとなんともない。 こんな現象についてどなたか知りません?
マカってホント情報弱者だな。
JMFって640x480以上のキャプチャサイズを扱うのは無理? JMStudioの設定で640x480以上が設定できなくて、 jmfregistryでキャプチャデバイスを認識し直しても、 Capture Device Detailsには640x480までしか認識されてない. Webカメラ自体はフルHDまで対応してるんだけど…
OpenCVでも似たような話が上がってるな
231 :
デフォルトの名無しさん :2010/06/14(月) 09:56:11
JMFで、2つの動画を横に並べてマージすることって出来ますか?
任意の動画の切り出しが出来ると嬉しいな。 x264/h264コーデックって積んでたっけ?
全部自分でやればできる
JMCも音沙汰無いし、もうJavaに動画再生期待するのは やめた方がいいのかなあ。
x264が本当に必要になる場面て少ないぞ。 MPEGでこと足りることの方が多い。 JMFはARプログラミングで必須だからまだ生き残る。 最近OpenCVのブリッジが出てきて用途かぶってるJAIなんて涙目だぞ。
googleが採用している標準規格がh264なんだよwebmだけどな。 mpegのほうがむしろ不要。dvd見たい訳じゃな一子。
mpag2-psしかないと思ってんじゃないの? tsやmpage4はDVDには使わんだろ
JOGLでGL_BLENDを有効にしているとき、 ライトを gl.glLightfv(GL.GL_LIGHT0, GL.GL_AMBIENT, new float[]{1, 1, 1, 1}, 0); gl.glLightfv(GL.GL_LIGHT0, GL.GL_DIFFUSE, new float[]{0, 0, 0, 1}, 0); マテリアルを gl.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT, new float[]{1, 1, 1, alpha}, 0); と設定しても、alphaの値は無視され、代わりに gl.glMaterialfv(GL.GL_FRONT, GL.GL_DIFFUSE, new float[]{r, g, b, beta}, 0); のbetaの値が使われて気持ち悪い。 JOGL 1.1.1a
239 :
デフォルトの名無しさん :2010/09/22(水) 22:25:48
JOGLを使ったプログラムをJUnit4でテストしたいのですが、どうにもうまくいきません。 @BeforeClassの中でJFrame, GLEventListner, GLCanvasを作って、setVisible(true) しても 一瞬ウィンドウが表示されるもののイベントリスナーのinit, display, reshapeが呼ばれず OpenGLコマンドも多分使えません。 ユニットテストの@Test関数の中でOpenGLコマンドを呼びたいのですが、 どうすればいいですか?
JOGLで再描画(glutPostRedisplay)に相当する関数って何ですか アニメーションしたいのですが方法がわからん
JOGLのユーザーマニュアルに載ってました。 OpenGL applications usually behave in one of two ways: either they repaint only on demand, for example when mouse input comes in, or they repaint continually, regardless of whether user input is coming in. In the repaint-on-demand model, the application can merely call GLAutoDrawable.display() 俺天才
242 :
デフォルトの名無しさん :2010/10/02(土) 11:03:08
GLEventListenerのコールバック関数(init, display, reshape, displayChanged)の外で OpenGL関数を呼ぶとエラーも出ずにまったく無視されるんだけどこれは反則?
呼べるけど準備がいる void doSomethingWithGL() { if (Threading.isSingleThreaded() && !Threading.isOpenGLThread()) { Threading.invokeOnOpenGLThread(new Runnable(){ public void run(){ doSomethingWithGL(); } }; } else { int err = glcanvas.getContext().makeCurrent(); try { // ここでGL使う処理 } finally { glcanvas.getContext().release(); } } }
コンテキストの差し替え関連もマニュアルに載ってるぞ天才くん。
245 :
デフォルトの名無しさん :2010/10/23(土) 01:04:59
ただいまJOGLを扱っていてこれの gluLookAt なのですが 物体に対して見る位置をだんだん遠ざけていくと物体が消えてしまします。 物体自体を合わせて大きくしていってもやはり何も表示されなくなります。 そこでふと、JOGL自体にスケールが存在するのかと思い投稿させていただきました。 詳しいかたよろしくお願いいたします。
>>245 glFrustumとかgluPerspectiveはどう設定してる?
nearクリップ面とfarクリップ面の外に出ただけだな 他のスレにマルチですでに解決済み。
joglって遅くね? 使いやすいとは思うけど サンプルにあったペンギン5、6個表示させただけで処理落ちする 描画範囲を狭めたりして色々やってみたけど テクスチャを含んだモデルデータを読み込ませるとやっぱ遅い
APIコールがJNI越しで遅いから、VBOやディスプレイリストが必要
とりあえずテクスチャ小さくしたら、ちょいマシになった まぁ使えなくもないかな フリーだし文句言っちゃ悪いよね
251 :
デフォルトの名無しさん :2011/01/01(土) 22:37:01
JMFカメラ認識しない件について Androidエミュレータ上でARToolkitを動かすためにJMFを使ってカメラデバイスとして動かすというような記事を見たのでJMFをダウンロードインストールをしてみたのですがイメージングデバイスのUSB2.0cameraを認識してくれません。 JMF Registry EditorでCapture Devicesのタブを選択しDetect Capture Devicesのボタンを押してもカメラを拾ってくれません。 何か考えられる原因はありますでしょうか? 一度ドライバを削除して再インストールも行ってみました。 他PCでも試してみましたがだめでした。 メインPC OS vista SP2 64bit ためしにやってみた他のPC OS XP SP3 カメラ elecom ucam-dlu130hsv 自動でドライバをインストールするタイプです。 Skypeなどの他ソフトでカメラの起動は確認済みです。 ちなみにDetect Capture Deviceのボタンを押すと Message Errorのダイアログがでて、内容が Capture device query unsuccesful! と出るのでキャプチャデバイスがうまく見つけられていないのはわかるのですがなぜ見つけられないのか対策の検討がつきません。 ご教授よろしくお願いします。
joglっていまサイト移動してる上にバイナリ配布されてないよね? どうなってるの?
依存プロジェクトのANTLRのサイトに繋がらない
254 :
デフォルトの名無しさん :2011/03/02(水) 23:34:06.36
AWTTextureIOみたいな便利なもんが出来てよかったぜ。 ついでにJMFTextureIO作ってくれよ。
JogAmpが提供してるJOGLのビルドを使ってもOK?
java.netからJogAmpに移ったからJogAmpにホストされてるのが今の公式だが JOGL2.xから全部入りになったから普通は自分でビルドするもんだけどいいんじゃね?
了解 慣れてきたら自前ビルドに挑戦する
https://sites.google.com/site/justinscsstuff/jogl-tutorial-2 に書かれているAWTとNEWTでOpenGLのキャンバスを持つウィンドウを表示する
コードを実行してみたら、AWTだと確かに何も描かれてないウィンドウが表示されるが
NEWTだと何も表示せずに終了した
Thread.sleepを挟んだらタスクバーにはアプリケーションのタイトルが現れるから
まったく何もしていないわけではなさそう
stderrには
Info: XInitThreads() called for concurrent Thread support
Detected screen size 1280x800
X11Util.Display: Shutdown (close open / pending Displays: false, open (no close attempt): 1/1, open (no close attempt and uncloseable): 1)
X11Util: Open X11 Display Connections: 1
X11Util: [0]: NamedX11Display[:0.0, 0x95429c8, refCount 1, Uncloseable false]
X11Util: Pending X11 Display Connections: 1
X11Util: [0]: NamedX11Display[:0.0, 0x95429c8, refCount 1, Uncloseable false]
と出力される
0x95429c8の部分は起動する度に変わるから何かのアドレスだと思う
スタックトレースが見あたらないから例外は起きてないだろうけれど
文面からすると正常なウィンドウの終了処理が即座に呼ばれているように見える
自分ではここまでしかわからなかった
原因や対処法を知っていたら教えてください
javawじゃなくてjavaコマンドから実行してみるとかエスパー
>>259 念の為symlinkを辿ったけど
/usr/lib/jvm/java-6-openjdk/jre/bin/java
だったから多分違うと思う
でもバージョン違いで動かないことはあり得るなと思って
Sun Javaも試してみたけど同じ結果だった
わざとクラスパスやjava.library.pathを間違えて起動してみたら
ちゃんと例外が起きるから、ライブラリが読み込めていないわけでもなさそうだし
glxinfoの出力やglxgearsが動くことからするとOpenGL環境が存在していないわけでもない
他にチェックすべき点はあるかな
GLWindowのやつなら俺の環境では問題なかった。 エントリポイントのメインスレッドが終了しないように無限ループさせるとどう? 環境依存には違いないけど。
プラットフォームの環境って意味ね
>>261 for (;;) {}を置いてみたら、Thread.sleepを置いた時と同じく
タスクバーにはwindow.setTitleで渡した文字列の項目が現れたし
起動するための端末ウィンドウからフォーカスが外れたけど
肝心のウィンドウはどこにも見えない
見えないだけで指定したサイズのウィンドウが存在しているのは
ウィンドウ切り替えパネルで確認できるし、setVisibleを呼び出し忘れてもいない
無限ループやスリープでjavaコマンドに制御戻らなくなってウィンドウが見えないだけならGUIの問題だろうね。 X11絡みか何かかねぇ。macやwinの環境はないの?仮想環境でもさ。
>>264 Windowsならあるから同じコードを動かしてみる
266 :
265 :2011/03/28(月) 19:29:22.70
遅くなったけど、Windowsではウィンドウが表示されるのを確認した GPUのドライバとXを調べてみる。本当にありがとう
267 :
265 :2011/03/29(火) 08:38:17.33
俺の環境ではKMSを有効にするとウィンドウが表示され、無効にすると表示されないことがわかりました お騒がせしてすみませんでした
古いですがJOGL 1.xを使い始めた者です。 作った作品(Javaアプリケーション)を公開するとき dll等のネイティブライブラリの配布はどうするべきでしょうか 作品とは別に自分の環境に合ったものをダウンロードし、 Jarと同じディレクトリに置くように説明するしかないのでしょうか。
JavaWebStartを使う方法もある
270 :
デフォルトの名無しさん :2011/05/21(土) 19:41:46.03
JMFを使ってwebカメラから画像を取得するプログラムを作ってるんだが、 取得画像の大きさはどうやったら変えるんだ? デフォルトで RGB, 320x240, FrameRate=15.0, Length=230400, 24-bit, Masks=3:2:1, PixelStride=3, LineStride=960, Flipped
素のJMFだと糞めんどくさかった気がするがNyARToolKitとかがそこら辺ラップしてるからソース読んでみれば?
272 :
デフォルトの名無しさん :2011/09/27(火) 00:27:05.39
公式ってどこ?