1 名前:デフォルトの名無しさん [2007/04/26(木) 02:43:38 ] クロスプラットフォーム 3D API OpenGLに関する話題を扱うスレッド。 禁止事項 ・「OpenGL終了」系のまず価値否定ありきの主観発言(客観的な懸念要素を挙げた上での建設的議論は可) ・学歴・理系か文系かに関連する差別発言 ・その他の荒らし全て これらは付き合うだけ無駄なので無視しましょう。 - 前スレ - OpenGLスレ Part10 pc11.2ch.net/test/read.cgi/tech/1141034983/ - 関連サイト - www.opengl.org/ www.mesa3d.org/ developer.nvidia.com/ www.ati.com/developer/ developer.3dlabs.com/ - 過去スレ - Part 9: pc8.2ch.net/test/read.cgi/tech/1132403929/ Part 8: pc8.2ch.net/test/read.cgi/tech/1126267690/ Part 7: pc8.2ch.net/test/read.cgi/tech/1118151979/ Part 6: pc8.2ch.net/test/read.cgi/tech/1105612993/ Part 5: pc5.2ch.net/test/read.cgi/tech/1100085657/ Part 4: pc5.2ch.net/test/read.cgi/tech/1091724463/ Part 3: pc5.2ch.net/test/read.cgi/tech/1067529308/ Part 2: pc2.2ch.net/test/read.cgi/tech/1039984523/ Part 1: pc3.2ch.net/tech/kako/981/981044659.html (dat落ち)
348 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 16:20:56 ] >>347 少なくとも unsigned char pBuffer = new unsigned char[WIDTH*HEIGHT*4]; // sizeof(RGBA)==4? glReadPixels(0,0 WIDTH,HEIGHT GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid *)pBUffer); この位は実験してみようや。
349 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 00:50:11 ] オフスクリーンの DIB にOpenGLで描画してビットマップ参照しれ
350 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 16:46:28 ] >>348 ありがとうございます、解決できました
351 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 17:39:49 ] GPUレイトレっぽいことをやりたくて、バウンディングボックスの各面からレイを放って 各面に3次元テクスチャを並行投影したくて下記のようにしてるのですがどうも表示がおかしいのです。 確認したいのですが、これはちゃんと各頂点に、テクスチャ座標の0と1が対応されてマッピングされていますよね? void vertex(float x, float y, float z) { glActiveTexture(GL_TEXTURE0); glMultiTexCoord3fARB(GL_TEXTURE0_ARB, x, y, z); glVertex3f(x,y,z); } void drawQuads(float x, float y, float z) glBegin(GL_QUADS); /* Back side */ glNormal3f(0.0, 0.0, -1.0);vertex(0.0, 0.0, 0.0);vertex(0.0, y, 0.0);vertex(x, y, 0.0);vertex(x, 0.0, 0.0); /* Front side */ glNormal3f(0.0, 0.0, 1.0);vertex(0.0, 0.0, z);vertex(x, 0.0, z);vertex(x, y, z);vertex(0.0, y, z); /* Top side */ glNormal3f(0.0, 1.0, 0.0);vertex(0.0, y, 0.0);vertex(0.0, y, z);vertex(x, y, z);vertex(x, y, 0.0); /* Bottom side */ glNormal3f(0.0, -1.0, 0.0);vertex(0.0, 0.0, 0.0);vertex(x, 0.0, 0.0);vertex(x, 0.0, z);vertex(0.0, 0.0, z); /* Left side */ glNormal3f(-1.0, 0.0, 0.0);vertex(0.0, 0.0, 0.0);vertex(0.0, 0.0, z);vertex(0.0, y, z);vertex(0.0, y, 0.0); /* Right side */ glNormal3f(1.0, 0.0, 0.0);vertex(x, 0.0, 0.0);vertex(x, y, 0.0);vertex(x, y, z);vertex(x, 0.0, z); glEnd(); } drawQuads(1.0,1.0,1.0)
352 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 17:44:18 ] 要はこういうことをやりたくて ttp://home.student.uu.se/cebl4603/thesis_html_m74d5f1f4.jpg image planeのところをどうやったらいいのか四苦八苦しています
353 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 17:52:30 ] 3次元テクスチャを並行投影ってどういう状態? そのコードだと、サイコロの各表面に2次元テクスチャを貼り付けてるのと大差ない気がするが。 3次元テクスチャの各表面を貼り付けてるだけで、内部は描画されていないが、そのへんは理解してるか?
354 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 18:13:17 ] その辺は理解しています。 サイコロの各面から、内部に向かってレイを放ってテクスチャのピクセル色を決定して(フラグメントシェーダ) それを貼り付ける、といったことをしようとしてこうなっています。 ttp://www.uploda.org/uporg1073971.jpg これは0〜64までの3次元テクスチャに 4〜60まで、テクスチャ在りにしたものを、45度程度傾けたものなのですが テクスチャがある部分を内側になればなるほど、緑〜赤のグラデにしたものです。 6面全体に一部分だけが表示されてしまって、立方体の形状が出てこなくて…
355 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 22:57:00 ] >>351 各頂点にテクスチャ座標の0と1は渡ってるよ。 ActiveTextureは余計な気がするけどまぁいいか。
356 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:05:47 ] >>355 ありがとうございます。 とりあえず3次元テクスチャが格納されている側面が写し取られている、と確信がもてて安心しました。 ということはフラグメントプログラムの方なのかな… fragmentの方でfor文を使うと error C6001: Temporary register limit of 32 exceeded; 201 registers needed to compile program こんなエラーが出てきて、本来走査するべきところまでいけなくて64回繰り返すところを 4回くらいしか深度を進めなくなっています ただ、CgじゃなくてGL_TEXTURE_3Dでも同じような表示がされてわけがわからんくなってます。 Cgで同じようなエラーが出たことがある方がいたら…
357 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:30:55 ] よく知らないんだけどさ、文法上はforとか記述できるとしても、 実際はループ回数やテクスチャフェッチ回数には上限があるんじゃないの? 最新のグラフィックスカードを使えば、実行結果が変わったりとかー。
358 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:33:57 ] 吐き出されているエラーが明らかにハードウェア側のことなのでそうだと思うのですが このエラーに関する記述がWEB上に4つほどしかなくて… ttp://developer.nvidia.com/object/nvemulate.html このエミュレーターでどうにかなるんじゃないか?と英語であったのですがそれを起動しても変わらず nvidiaのカード買うしかないのか…お金ないや
359 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 01:58:33 ] 358ですが、シェーダを弄くって テクスチャの投影部分ではなく、シェーダーで反復回数が足りないせいだと判明しました。 原因はAtiだからだと思います。for文をまわすたびにレジスタが使用されているのか、、、
360 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 04:03:52 ] どのprofileのフラグメントシェーダを使うかにもよるがfor文はループ展開されてたりするよ。 何をしようとしているのかよくわかってないけど、GPUレイトレで3次元テクスチャをボリュームレンダリングするなら、 何故画面の各ピクセルからレイを飛ばさないの?
361 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 04:59:27 ] ATIのカードだとCgでは事実上arbvp/arbfp以外の選択肢がないから 動的なループ、分岐やら新しい技術が使用できないのがきつい、というか終わってるね 最近触ってないけどGLSLだとその辺どんな感じなの?
362 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:15:42 ] >>360 画面からするとバウンディングボックスとの交差判定が必要で ものすごい遅くなっていたのです。 実際にarbvp1 arbfp1が選択されていました。 ATIしかない環境でCgを選択したのがマズイのですね… nVidiaを購入するのに…10万か…お金が。。。ない
363 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:47:04 ] ATIでもX1000系以降ならGLSL使えるよ CgでもプロファイルのglslvとglslfでGLSLにコンパイルして使える …が、使ったことはないしLatestProfileでも出てこないのであんまりお勧めはできないかも つかGeForceで10万って何買うつもりだよwwww
364 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:50:30 ] ぁ、ぃぇ PCそのものを買わないといけなくて、結局10万くらい掛かるっていうことです。 glslv glslfについてちょっと調べてみます
365 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 18:18:35 ] glslプロファイルは去年触ったけどnvidiaでは問題なく動くけど ATIのドライバではコンパイルできないソース吐くから使うのあきらめたな あれからだいぶ時間たってるからその辺直ってるといいね
366 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 19:19:53 ] OpenGL3の続報がなかなか来ないな
367 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 01:24:13 ] すいません質問させてください openglのプログラムのビルドで、error C2381: exit' : 再定義〜とエラーが出てしまいます 何かstdlibとglutが関係ありそうなのですが、よくわかりません 解決策がありましたら教えてほしいのですが
368 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 06:32:34 ] >>367 includeの順番入れ替えてみ
369 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 06:54:27 ] いまさら気づいたんだけどGL関数群の日本語訳manあったんだねぇ・・・orz man.sourcentral.org/debian-unstable/ja/
370 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 12:42:06 ] 367です #include<stdio.h> #include<cstdlib> #include<GL/glut.h> にしたら、解決しました 理由はわかりませんが・・・ありがとうございました
371 名前:デフォルトの名無しさん [2007/10/30(火) 16:12:14 ] 学校の課題でOPENGL使ってなんか作らないとダメなんだけどいい感じのサンプルない? インベーダーとかハノイとかルービックとか。。。 誰かおせーて
372 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 16:53:14 ] なんだ、まぁ頑張れ。 とにかく頑張れ。
373 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 17:28:53 ] >>371 OpenGLはあくまで動かすための道具なんだから基本は自分でできなきゃ というか、たぶん基礎を調べるための課題だろ がんばれ
374 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 17:44:37 ] GLSLとCgどっちを使うべき?DirectXは使わない. なるべくハード依存したくないならGLSL?
375 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 18:22:17 ] >>371 超初心者スレに同じ質問があるからそっちみれ >>374 GLSLはWindowsではIntelGPUで使えない。Macなら使えるがLinuxとかは知らん あとRadeonとかでもドライバが古いと酷いことになる CgはGL_ARB_vertex_programとかGL_ARB_fragment_programのアセンブリシェーダにコンパイルできるので SM2.0に対応してればIntelでもRadeonでもつかえる。もちろんGeForceなら最新機能も使える ただし配布するには別途ランタイムも配布する必要があるし、プロファイルによっては機能制限もある あと書き方の違いもあるんで好みでどうぞ。 俺はCgの方が好きだがGLSLのランタイム不要な点も捨てがたいな
376 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 19:17:12 ] なんでCgを標準にしなかったんだろうな GLSLをプッシュしておきながら結局撤退した3DLabs死ねよ
377 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 19:17:53 ] 俺はインテル製はsm2.0に対応しててもfboやarb_fragment_shadow、 アンチエイリアシング、その他諸々が使えないから最初から無視してるな
378 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 19:22:22 ] >>375 なるほどCgの方がハードには柔軟ですね
379 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 23:59:22 ] RGBで取り込んだ画像データを表示したいのですが 何か関数は用意されてるんでしょうか?
380 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 01:28:04 ] glDrawPixels
381 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 01:17:23 ] ネットにあるOpenGLのサンプル書いて遊んでいたんですけど,普通に実行できます. でも3Dデスクトップ効果の Compiz を起動させて実行すると,描画ができません. 窓枠がでなかったり色とかも変だし. これって一緒には使えないものなんでしょうか? 使えるとすれば何かおまじないのようなものを書かないといけないとかあるんでしょうか? 教えてください.
382 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 02:00:05 ] グラボのドライバが最新でも駄目ならVISTAを窓から(ry
383 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 02:12:53 ] compizはvistaじゃないから・・・ compiz起動しながらOpenGLのアプリ動かしても 俺の環境では問題ないなー どのサンプル?
384 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 09:40:01 ] 板違い 犬糞板池
385 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 22:08:00 ] 別にここでもいいだろ
386 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 17:04:12 ] opengl 3d絵画の初心者用サンプルプログラムが多く置いてあるサイトありませんか? 解説もついているとありがたいです
387 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 18:46:27 ] (#^ω^)
388 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 20:30:16 ] 絵画とはまた斬新な
389 名前:デフォルトの名無しさん [2007/11/03(土) 11:33:46 ] OpenGLで、絵画を書くのって難しいんじゃないの? そういうシェーダーを書かないといけないような。 水彩シェーダーは、前に見かけた気がするが、 油絵ってみたことないな・・・
390 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 11:36:45 ] >>376 3DLabsをせめないで。 すべてにおいて糞なクリエイティブを呪ってください。
391 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 13:55:14 ] クリエイティブが3DLabsを駄目にした. そしてWildeCatは死んだ,あのボードも波乱だよなIntergraphが死んだりして
392 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 04:53:55 ] glDisplayFuncで指定した関数で 6000点ほどの頂点を取ってるのですが 起動して描画まではしてくれるのですが動作がとまってしまいます。 何か解決方法はないものでしょうか
393 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 11:04:59 ] boxとかじゃなくpointで描画すれば60万点くらいは描けるよ そういうのじゃないか
394 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 00:23:50 ] >>392 >glDisplayFuncで指定した関数で glDisplayFuncって何。glutDisplayFuncのこと? >6000点ほどの頂点を取ってるのですが 頂点を取る、って何。意味不明。 >起動して描画まではしてくれるのですが動作がとまってしまいます。 動作が止まる、って何。意味不明瞭。 単に再描画がされないってだけなら、glutPostRedisplay()でも呼んでみれば。 >何か解決方法はないものでしょうか ある。 「正しい用語を正しい用法で使うこと」 これを必ず守れば良い。 なんでこれが解決方法なのか?の説明は面倒なので省く。 しかし、これを常に守る事を心掛けていれば、技術的な問題のうち半分以上は 君自身で答えを見つけられるはずだ。これはマジな話。
395 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 00:48:53 ] Kusakabe(void)論法みたいだが >>394 の言うことは確か。 3D絵画とかじゃ当たらないし、状況を文字よりもキャプったりソース上げた方が確実。
396 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 04:25:07 ] void氏は相手のバカの壁より常に一歩外側でしか喋らないからな。 横で見てる分には楽しめるんだが。
397 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 21:14:48 ] ということにしたいのですね。
398 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 21:42:43 ] そんな感じw
399 名前:初心者 [2007/11/05(月) 23:33:29 ] はじめまして。プログラミングのことについて初心者です。 次のことについてどなたか教えていただけないでしょうか。 OpenGL+glutでシミュレーション結果を表示しようとしています。 VC++で作成し、コンパイルエラーはなかったのですが、実行してみると 何も起こらずに"終了にはキーを押してください"というような画面のみでした。 しかるべき場所にそれぞれのライブラリなど置いたつもりですが... どのような原因が考えられるでしょうか。
400 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 23:41:43 ] ソース
401 名前:初心者 [2007/11/05(月) 23:49:25 ] すみません、わかりません。
402 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 23:52:46 ] その作成したプログラムのソースファイルを見せろという意味だ
403 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 00:07:18 ] デバックしても原因分かんないの?
404 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 00:34:13 ] GLUTのメインループに入らないで、プログラム終了しちゃってるんじゃないの? VisualStudioならデバッガが使いやすいし、最低限printfデバッグくらいはするべきだ。
405 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 01:29:21 ] >400-402 ふいたw
406 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 07:43:46 ] texture座標の自動生成を使うと その前に使ったglColorの値がtextureの色と混じってしまうんだけど glColorの値の影響を受けないようにするにはどうしたらいいですか
407 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 08:42:15 ] glColor を白色にしとけばいい
408 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 09:58:58 ] テクスチャ座標の自動生成とは関係なくて、 単にテクスチャ色とglColorの色が乗算(GL_MODULATE)されてるだけですねん。 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); を実行してやると、テクスチャの色だけが描画されるようになるよ。
409 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 18:01:14 ] ありがとー できました
410 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:31:27 ] FreeBSD6.2R, Mesa 7.0.1をつかっているのですが プログラム自体は動くのものの、実行時に libGL warning: 3D driver claims to not support visual 0x4c とでるのが気になります どうすればいいんですかね?
411 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:22:06 ] 該当のglvisualをサポートしてないってだけだからwarningってだけ。 本気でやるならデバイスドライバをハックしてみよう。 もっともgpu側がサポートしてなかったらどうしようもないけどさ。
412 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 22:18:58 ] カーマック続報 ttp://www.technobahn.com/cgi-bin/news/read2?f=200711131807
413 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 22:52:54 ] ほとんど自力というのがまたカーマックらしいな
414 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:05:22 ] OpenGLの日本語リファレンスマニュアルってどっかでダウンロードできませんか? 本買わないとだめ?
415 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:14:39 ] 駄目
416 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:26:24 ] やっぱりだめですか。 講座サイト漁ろう。
417 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 12:20:43 ] 赤本の英語版なら読めたんじゃなかった?公式で 最新かどうかわからんけど
418 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:30:04 ] たしか読めるのは古い
419 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 02:49:52 ] 古いのでよければこちらへ。 ttp://www.opengl.org/documentation/red_book/ (v1.1) ttp://www.opengl.org/documentation/blue_book/ (v1.0) 以前はここで pdf が落とせたような気がするが、今は html 化されてる模様。
420 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 03:52:33 ] 赤本はともかく、古い青本読むくらいなら最新の仕様書を読んだ本がいいね
421 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 21:50:04 ] 視点移動したらオブジェクトの一部が画面に現れないことがあるのですが どうすれば解決できますか?
422 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 22:33:54 ] >>421 オブジェクトが入るような視点にする
423 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 23:02:42 ] znear,zfar
424 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 12:07:50 ] objデータがバカでかいので 視界に入ってる領域だけ読み込んで表示できるようにしたいです どうすればいいですか><
425 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 12:27:02 ] データのフォーマットによるが、視界に入ってない領域を読み飛ばせばいいのでは
426 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 13:02:58 ] 視界に入ってるかどうかの領域はどうやって決めたらいいんですか><
427 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 13:13:22 ] 頂点単位ならLookAtとかPerspectiveに渡してるパラメータから視錐台を求めてそこに頂点が入ってるかどうか判別 ポリゴン単位なら視錐台とポリゴンの交差判定 フラグメント単位ならオクルージョンクエリーでも使ったら?
428 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 13:41:33 ] ありがとうございます>< >>パラメータから視錐台を求めてそこに頂点が入ってるかどうか判別 >>ポリゴン単位なら視錐台とポリゴンの交差判定 これやるためには、バカでかいデータをメモリに載せないといけない気がするのですが載りません>< 視錐台に入る座標をまとめてデータにして、それをファイルポインタで読み込むときに 1頂点読み込み→視錐台内の座標か判定→視錐台内ならメモリに格納 そんな流れになるのでしょうか>< オクルージョンクエリーという言葉初めて聴きました!見てみたら難しそうでした!
429 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 16:39:36 ] オクルージョンクエリーは冗談だ。その用途では役に立たんと思うので忘れてくれ やり方としてはそれでいいが、実際には1頂点ずつやってたら大変だわな モデルデータを前もって適当に一度にメモリに載せられる範囲に区切っておいて その範囲と視錐台が重なってるかどうか判定して重なってれば読み込む、 という感じである程度の頂点数を一気に処理した方が速いだろうな
430 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 16:44:46 ] モデルデータのバウンディングボックスをあらかじめ計算しておく
431 名前:デフォルトの名無しさん [2007/11/22(木) 21:08:48 ] 平面の方程式 Ax+By+Cz+D=0 の係数をパラメータにとって 平面を表示させるプログラムを作っています 今はyz平面上に立方体を平べったく伸ばして平面をつくって そのあと原点回りに回転移動させてから平行移動をさせる方法で平面を表現しようと考えて ↓のような感じで組んでいます ----- dcos_x = A/sqrt(A*A+B*B+C*C); dcos_y = B/sqrt(A*A+B*B+C*C); dcos_z = C/sqrt(A*A+B*B+C*C); glPushMatrix(); glColor4d(0.5, 0.5, 0.5, 0.8); glTranslated(trans_x,trans_y,trans_z); glRotated(dcos_x, 1.0, 0.0, 0.0); // x軸に対する回転移動 glRotated(dcos_y, 0.0, 1.0, 0.0); // y軸に対する回転移動 glRotated(dcos_z, 0.0, 0.0, 1.0); // z軸に対する回転移動 glScaled(1.0, height, depth); glutSolidCube(1.0); glPopMatrix(); ----- 平行移動量trans_x,trans_y,trans_zはどう与えればよいのかがわからないので trans_x,trans_y,trans_zは今のところ0.0で実質回転移動のみを行う形になっています dcos_x,dcos_y,dcos_zの計算式はこれでいいのかどうか、 trans_x,trans_y,trans_zの与え方はどのようにすればいいのか どなたか教えていただけませんでしょうか? まあ・・・根本から間違っていたり、もっといい方法があるんでしょうけど・・・
432 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 21:30:14 ] trans_x、trans_y、trans_zにはその平面上のどこか1点を与えてやればいいんでないの? 回転はよくわかんね というか平面を描くなら立方体を変形させるより 平面上の4点とかを適当に求めてポリゴンで描いた方が楽だと思う
433 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 21:47:52 ] >>432 平行移動はそれでいいね。 平面に平行な移動は無意味だから (trans_x, trans_y, trans_z) には2次元の自由度(任意性)がある。 回転については、三角関数を経由して回りくどいことしなくても、 元のyz平面の法線(=x軸)を (A, B, C) に移すような正規直交3x3行列を作ればいい。 つまり、(A, B, C) に直交する2つのベクトルを適当に選んでやればいいだけ。 こっちは法線まわりの回転について1次元の自由度ある。
434 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 00:22:43 ] 現在3Dゲームを製作中なのですが、学校から持ち帰ったものを家で動かそうとすると 1>fatal error C1900: 'P1' Version '20060201' と 'P2' Version '20050411' が一致しません。 1>LINK : fatal error LNK1257: コードの生成に失敗しました。 というエラーがでてきます。 思い当たる節としては ・「GLee」を入れてみた これぐらいです。どなたか解決策をお願いします。
435 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 01:30:12 ] 「動かそうと」具体的に何をどうしたのか 「GLeeを入れる」とは具体的にどのファイルをどこに置いたのか
436 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 02:02:36 ] >>434 学校と家のコンパイラのバージョンが違うんでないか 全プロジェクトをリビルドしてみ
437 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 07:36:28 ] >>435 「GLeeを入れる」というのは GLee.cをスタティックライブラリにして追加し glBindBufferARBなどの関数を使っていることをいいたかったんです。 >>436 リビルドしてみましたが、同じエラーでとまってしまいました。
438 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 11:35:57 ] >>434 ググったがVC++の環境がおかしくなってるみたいだな 解決策としてはVC++2005のSP1を入れてみる ダメならVC++を再インスコ それでもダメならOSから再インスコするくらいかな
439 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 21:23:26 ] >>438 VC++2005のSP1を入れたらなおりました!!!! 課題の締め切りが明日までだったので、本当にうれしいです!!! 今日はこのうれしさをばねに、徹夜でやろうとおもいます。
440 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:44:32 ] 嬉しさをバネにって初めて聞いたww
441 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 01:54:54 ] "嬉しさをバネに" の検索結果 約 1,480 件中 1 - 10 件目 (0.39 秒) www.google.co.jp/search?hl=ja&q=%22%E5%AC%89%E3%81%97%E3%81%95%E3%82%92%E3%83%90%E3%83%8D%E3%81%AB%22&btnG=%E6%A4%9C%E7%B4%A2&lr= 結構出てきて吹いたw さすがゆとり。 言葉の意味なんて考えたことないんだろうな。
442 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 02:13:48 ] 嬉しさのときは何て言えばいいの? 嬉しさを追い風にして?
443 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 02:25:04 ] こういうの突っ込む奴は言い回しに気を取られて言葉の意味なんて考えたことないんだろうな
444 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 07:39:58 ] 喜びは 糧に でいーんでねーの。
445 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 08:44:14 ] 糧にするのも大概はネガティブなものだと思うが。 〜をバネには単なる反発、糧には消化して教訓とするって感じじゃないか。
446 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 12:31:40 ] 名誉返上、汚名挽回を思い出した。
447 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 14:08:41 ] 嬉しさを肥やしにして
448 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 20:52:43 ] 喜びなら「さめないうちに」とつなぐのがいいのでないの?