[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 03/15 21:29 / Filesize : 177 KB / Number-of Response : 703
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

OpenGLスレ Part11



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落ち)

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 ]
喜びなら「さめないうちに」とつなぐのがいいのでないの?


449 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 21:00:13 ]
確信犯

450 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 04:09:52 ]
>>449
さすがにその誤用をつっこむやつは最近なかなかいないが。

451 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 10:05:47 ]
役不足

452 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 22:52:52 ]
役不足だと言っているッ!

453 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:18:12 ]
流れ断ち切って悪いけど質問。

モデルビューの行列から視点、注視点、アップベクトルを求めたいんだけどいい方法無い?
gluLookAtの逆バージョンみたいなの

もう1つ質問で
頂点にウェイトをつけたいんだけど、OpenGLだとどうやってやるんだ?

454 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:26:46 ]
>>453
モデルビュー行列の左上3×3の各行が
それぞれ右方向ベクトル、上方向ベクトル、逆視線ベクトル。
モデルビュー行列の逆行列の4列目が視点。

のような気がする。

455 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 01:52:18 ]
>>453
>頂点にウェイトをつけたいんだけど、OpenGLだとどうやってやるんだ?
 
いまどきならシェーダを書く



456 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 10:37:09 ]
>>454
どうせ逆行列求めるなら、1〜4列目がそれぞれ
 右、上、逆視線、視点
でいいと思ったw

あと頂点ウェイトは
 glVertexWeightfEXT
かな。

457 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 11:58:24 ]
ARB_vertex_blend拡張はATIにしかなく
EXT_vertex_weighting拡張はNVIDIAにしかない
頂点ブレンドは汎用的な方法があんまりないから
シェーダでやるのが一番無難だろうな


458 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 13:32:05 ]
>>457
NVIDIAもARB_vertex_blend対応してるぞ。

459 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 14:20:37 ]
>>458
まじか
うちのGeForce8600GTでは無いみたいなんだけど…
もしかしてExtensionStringに出てこないけど使えんの?

460 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:03:05 ]
>>459
ソースはOpenGL Extensions ViewerのDatabase。
ちなみに8600は項目がなくてわからん。

8600Mならあるんだがなぁ

461 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:12:26 ]
あ、原因わかったかも。
OSのフィルタでWindowsに絞ったらNVIDIA全滅した。
MAC使えって話っぽい。

462 名前:453 mailto:sage [2007/12/01(土) 21:56:23 ]
>>454-461
サンクス

う〜ん、モデルビュー行列から完全に元には戻せないのかな
注視点を求めたいんだけど、さっぱりわからない

ウェイトの件はシェーダを使うのが無難みたいですね

463 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 22:07:25 ]
注視点は求まらんよ
見てる方向は求まるけど、その方向ですぐ目の前から無限遠までのどの点を見てるのかは失われる
奥行きをz=1とか適当に決めちゃって、そこを注視点ということにするくらいか

464 名前:453 mailto:sage [2007/12/02(日) 01:39:56 ]
やっぱり無理なのか
残念だけど諦めよう

465 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 13:03:51 ]
2Dテクスチャを2^nに限定しない関数ってありましたよね。
それの1Dテクスチャ・3Dテクスチャのものってありますか?



466 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 18:16:40 ]
GL_TEXTURE_RECT_ARBなんかのことか?
それなら2D版しかない
GL_ARB_non_power_of_two拡張があれば
特に何も考えずに1Dでも2Dでも3Dでも2の乗数じゃないサイズが使えるよ

467 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 18:51:47 ]
おお、知らない言葉が出てきた
ググります!

468 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 22:55:54 ]
GL_ARB_non_power_of_twoって環境によってはクソ遅いんじゃなかったっけ。
標準にはなってるけど当然古いカードだと使えないし。なんだかなーという感じだ。

469 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 23:07:26 ]
Radeon系だとクソ遅いらしいね。。
あとRadeonのドライバはOpenGLのバージョン2以降返しときながらGL_ARB_non_power_of_two対応してないこともあったり。

470 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 01:19:37 ]
nvidiaだと快適サクサク
8600GT。

つーかシェーダ組んだときのRadeonのクソっぷりにビックリした
俺、今度からNvidia住人になるよ


471 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 16:30:01 ]
ポリゴンを1000枚作って表示させたときと
ポリゴンを1枚作って表示させたとき

OPENGLではメモリの量違いますか?

472 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 18:28:27 ]
違う

473 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 20:46:42 ]
了解です!

474 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 21:57:58 ]
違わない処理系ってどれよ?

475 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 22:28:03 ]
描画領域のメモリは変わらんとか?



476 名前:デフォルトの名無しさん [2007/12/12(水) 10:39:47 ]
すみません。教えてください。
cpadでopenGLを起動できないのですが、どうしたらいいですか?
実行ファイルが作れません。というエラーがでます。

477 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 11:29:59 ]
まず落ち着こう
次にCPadでOpenGLを使わないプログラムが実行できるか確認するんだ
それができたら「実行ファイルが作れません」の前にもエラーが出てるはずなのでそれを確認しよう
前に出てるエラーの原因が分からない、となってから質問しても遅くないと思うぞ

478 名前:デフォルトの名無しさん [2007/12/12(水) 15:03:05 ]
お前らまだOpenGLなんか使ってんのかw

479 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:25:36 ]
個人的にはカーマックにその手の質問したら何て答えるのか非常に興味あるなw

そういえばPS3でGLやCgが採用されるってのは結局どうなったんだろ

480 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:00:50 ]
PS3ではOpenGLもCgも実装されてる
でもOpenGLはパフォーマンスが出ないからGPUのコマンド直に叩くのがほとんどと聞いた

最近はほとんどシェーダだしDirect3D10もGPU仮想化されてOpenGLとたいして違いがないし
どっちでもいいわな

481 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:17:02 ]
>>478
うん。組み込みとかそれしか選択肢がないの多いし…

482 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:52:14 ]
ゲーム機があります
PS3 Wii XBOX

Microsoftゲイツ様仕様のDirectXをPS3やWiiが使えると思ってるのかな。
選択肢としてOpenGL+GPU言語(Cg・GLSL)くらいしか無いでしょうに。


483 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 21:27:02 ]
誰に対して何の話をしてるのかわからない

484 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 21:54:01 ]
わからないお前の神経がわからない

485 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:46:45 ]
変な勘違いをして誰に対してるのか分からない見当外れな話をする誰かさんの神経が一番わからない



486 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 01:15:25 ]
gllogicopの使い方がわかりません!
ttp://www.arch.oita-u.ac.jp/povjp/povjp/ref7.8/prz8209.jpg
二つの物体あわせてこういうのが作れるってことですか!
作れたら、作り方教えて下しア!!!

487 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 02:26:22 ]
>>486
>二つの物体あわせてこういうのが作れるってことですか!
違う・・・
ググれ!

488 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 11:17:11 ]
どう違うのか教えてください(;;


489 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 18:47:38 ]
ぎろっぎこっプー

490 名前:デフォルトの名無しさん [2007/12/13(木) 18:51:28 ]
powerpc版のLinux(Debian GNU/linux 4.0)で
OpenGLを実行したらこんな警告がでてくるんですが
どう解決すればよいのでしょうか?

*********************************WARN_ONCE*********************************
File r300_render.c function r300Fallback line 428
Software fallback:ctx->Line.SmoothFlag
***************************************************************************


491 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 20:42:26 ]
>>400
HWで対応してないからソフトウェアで処理すんぞってことでしょ
ビデオカードを換えるかglDisable(GL_LINE_SMOOTH)してみたらどうか

492 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 00:15:04 ]
1か月越しか

493 名前:デフォルトの名無しさん [2007/12/14(金) 00:59:11 ]
シェーダーとかあるの?

494 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 11:58:50 ]
OpenGLでテキスト描画したい場合ってどうするの?
プラットフォーム非依存なんだから、とうぜん標準で glDrawText 関数なんてものは
ないんだと思うんだけど、テキスト描画したい人はやっぱりゴリゴリコード書いて、
フォントイメージ持って来てそれを自力で転送してるの?

495 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 12:41:54 ]
>>494
環境依存(任意のフォントでディスプレイリストを作成)
glXUseXFont
wglUseFontBitmaps
wglUseFontOutlines

環境非依存(フォントの種類が少なく、ディスプレイリストを作らないので遅い)
glutBitmapCharacter
glutStrokeCharacter



496 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 14:02:41 ]
ここでくだらん質問するまえにNeheみれ

497 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 18:00:32 ]
>>490
mesa-r300は色々と未実装なフォールバックになるやつが結構ある。
それもfglrxならフォールバックなしに使えたりする。
内部的にはlinesmoothはvs使って実相しているらしいが、
仕様公開後もっと開発が進むんじゃないかな。

498 名前:453 mailto:sage [2007/12/14(金) 18:14:48 ]
>>494
FTGLがおすすめ

499 名前:498 mailto:sage [2007/12/14(金) 18:15:43 ]
すまん、名前はミスだ

500 名前:デフォルトの名無しさん [2007/12/15(土) 07:48:28 ]
二年前にCGのクラスでOpenGLを学んだが
忙しくてそれ以上続けられなかった俺様が
来年こそはと>>500をゲット

501 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 08:18:14 ]
>>500
大丈夫だ。若いんだから年末年始だけでOK
知的欲望全開で突っ走れ

502 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 13:13:22 ]
Dynabook A1/X85PMC(PenIII 450MHz メモリ384MB)
で、OPENGL動かそうとしたら、止まった


なぜ…研究が進められない


503 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 13:22:36 ]
>>502
随分古いマシンだな
とりあえずグラフィックスドライバ更新

でもOpenGLなんて所詮は最後に表示を担当するだけなんだから
研究は進められるんじゃ?

504 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 13:25:01 ]
www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=229374#Post229374
OpenGL 3 will not have support for the GL_DOUBLE token. This means it will not be possible to send double precision vertex data to OpenGL.

OpenGL3.0からGL_DOUBLEのサポートがなくなることは既出?

505 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 13:27:53 ]
doubleとか何に使うの?



506 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 13:35:58 ]
頂点シェーダのレジスタ精度が32/24/16/8bitしかないから無くても問題ないな

507 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 13:36:48 ]
>>503
画面サイズを小さくしたら出来ました。

研究室がいきなり工事やら停電やらで土日作業できず
自宅のはもらいもののノート。一応作業できますわ

508 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 09:10:44 ]
ラデのドライバを最新にしたらツールが立ち上がらなくなったんで調べてみたら
ARB_fragment program_shadowのサポートが無くなってやがった

AMD氏ね

509 名前:デフォルトの名無しさん [2007/12/21(金) 12:38:19 ]
>>506
GL_FLOATが、16bitだよな?
32bitはなんだっけ?

510 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 22:45:13 ]
テクスチャについての質問なんですが、ちょっと前までテクスチャが張れたのに、
アプリを再起動したらそれ以降全くテクスチャが張れなくなるのって何が原因
なんでしょうか?
昨日作ったソフトが今日になって全くテクスチャが張れなくなってしまって
困っています。バイナリ、テクスチャの元画像共に昨日テクスチャが張れた
時から全くいじっていません。また、ドライバの更新等もしていません。
思い当たるとしたらノートンの更新ぐらいですが…

511 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 01:03:45 ]
Z座標が同じポリゴンが重なったときに重なった部分のアルファのあるテクスチャを
合成するにはどうしたらいいでしょうか?
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
は実行しているのですが、なぜか合成してくれません。

┌―――┐
|      |
|      |
|  ┌―┼―┐
└―┼―┘  |
    |      |
    |      |
    └―――┘


こんな具合です。

512 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 02:46:14 ]
テクスチャのinternalformatはちゃんとGL_RGBA(あるいはその他アルファを含むフォーマット)
にしてるかい??

513 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 03:34:45 ]
はい、Z軸を0.0000001とかほんの少しずらすとアルファは通っているので
大丈夫です。ただ、Z軸が重なるとなぜか合成されずに上書きになってしまう orz

514 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 03:53:30 ]
>>513
glDepthMask(GL_FALSE);
glDepthFunc(GL_LEQUAL);
描画
glDepthFunc(GL_LESS);

515 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:22:14 ]
>>514
遅くなりましたが、上手くいきました!
ありがとうごさいます。



516 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:49:52 ]
>>509
GL_FLOAT は float だから32ビット。
16ビットは GL_NV_half_float の GL_HALF_FLOAT_NV とか VGL_ARB_half_float_pixel の GL_HALF_FLOAT_ARB とか。

517 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:50:46 ]
×VGL_ARB_half_float_pixel
○GL_ARB_half_float_pixel

518 名前:デフォルトの名無しさん [2007/12/22(土) 22:59:39 ]
>>516
float、32bitか。何年プログラマやっとんだ、アホか俺はw

519 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 20:39:34 ]
void display(void)
{
gluLookAt(3.0,2.0,5.0,0.0,0.0,0.0,0.0,1.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glRotated(x,0.0,0.0,1.0);
glColor3d(0.0,1.0,0.0);
glutWireTeapot(0.5);
glFlush();
}

void myKbd(unsigned char key, int x, int y)
{
if(key == KEY_ESC)
exit(0);
else if(key == 'g'){
x += 1;
glutPostRedisplay();
}
}

void init(void)
{
int width = 500, height = 500;
double aspect = (double)width/(double)height;
glClearColor(0.0,0.0,0.0,1.0);
glutCreateWindow("Sample");
glutDisplayFunc(display);
glutKeyboardFunc(myKbd);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(30.0,aspect,1.0,100.0);
}

520 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 20:40:54 ]
>>519
キーボードを押したらティーポットが回転するプログラムを書いたんですが、
ティーポットが回転してくれません。それどころかポットがどっかに移動して
しまいます。どうしたら良いですか? 教えてください。

521 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 23:49:54 ]
>>520
どう見てもコンパイルすら通りそうにないコードなんだが
C言語の基礎(変数のスコープとか)を勉強し直すことだな

522 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 01:06:44 ]
>>520
glRotated(x,0.0,0.0,1.0);
これでxを+1しても回転にならないぞw

523 名前:デフォルトの名無しさん [2007/12/25(火) 01:14:56 ]
XP上のMicrosft VC++6.0でOpenGLを使いたいのですが、
どうもこうもOpenGL/gl.hが無いと言われます。
ググってみると、
XPはデフォルトであるから心配ないとしか書かれていないのです(泣)

GLUTはインストール済みです。

もしよろしければ、対応策を教えていただけないでしょうか。

524 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 01:30:20 ]
>>523
もし
#include <OpenGL/gl.h>
ってやってるなら、その行は削除。いらない。

525 名前:522 mailto:sage [2007/12/25(火) 01:55:07 ]
hahaha!
勘違いしたw 酔ってるので許せ。

>>520
描画のたびに
gluLookAt(3.0,2.0,5.0,0.0,0.0,0.0,0.0,1.0,0.0);
で行列を掛けてるから、どっかへ飛ぶ。




526 名前:デフォルトの名無しさん [2007/12/25(火) 04:32:13 ]
> void myKbd(unsigned char key, int x, int y)
で、
x += 1;
は、何も影響を及ぼさない気がする・・・

527 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 19:22:57 ]
質問です

物体(glutSolidSphereなど)を3次元空間で動かして
動かした三次元座標空間だけマスクして
動かせば動かすほど、画像が変わっていく(3次元空間がマスクされて、隠れている画像が出てくる)
ということをしたいのですが。

どうやればいいかヒントをください

528 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 20:23:44 ]
>>527
日本語でおk

529 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:47:49 ]
伝わりにくくてすみません

要は3次元空間にマスクをマウスで書き込んでいく、ということをしたいのです。
フォトショップとかの2次元空間でのクイックマスク処理を
3次元でやるイメージです


530 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:09:50 ]
3次元でマスクってのが良くわからない…

もしSculptみたいなことをやりたいならボクセルでも使うのが早いかなぁ

531 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:30:36 ]
>>530
まさしくそんな感じです。

固体を削り取っていって、削られた部分だけ別の物体の色になっていくという感じです。
それか、マウスの範囲内の物体の色(不透明度)を強制的に0にしていければ…同じように出来ると考えてるのですが

マウスでglutSolidSphereの範囲内のカラーを変えていく、ということ出来ますか?


532 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:41:45 ]
正直に脱がせゲーを作るといえばみんな協力するはず

533 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 22:49:32 ]
…その発想はなかった!!!!!

そっちにシフトします><

534 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 23:45:14 ]
もし531のようなことやるのに
参考になるサンプルとか考え方あったら、レスお願いします。

535 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 01:04:05 ]
2Dじゃなくて、3Dでか。

そもそも、サーフェスモデルが基本なので、
「削り取る」というのをどのように表現するか・・・だな



536 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 01:18:27 ]
削り取るよりも
>マウスでglutSolidSphereの範囲内のカラーを変えていく
こっちのほうを実装するほうが、やりたいことが出来そうな気がしてきました

まだ研究室で、2時くらいに帰るのですが
かなりてんぱってきました

537 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:04:41 ]
536ですが

アキュムレーションバッファで変更したい部分を上書きしてく、ということはできるでしょうか?
もし出来るなら、エリア内の画素のαを0にして上書き・エリアを動かして0にして上書き…で削り取れるかもと思ったのですが

538 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:33:04 ]
サンプル弄くってみて

エリア内の指定
全体が変化する

でアウトでした。
もう夜も眠れません

539 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 01:58:55 ]
ん、もしかして2Dでマスクできればいいのか?
それならStencilBufferでいいと思うけど
初心者スレにそんな話題が出てたぞ

540 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 17:54:28 ]
質問させて頂きます。
@FBOテクスチャに適当に描画。
A上のレンダリングテクスチャに、上のレンダリングテクスチャを別のオブジェクトに貼って描画。
としう事をしたいのですが、Aを行う際、@で作ったテクスチャを別のテクスチャにコピーする必要があると思います。
その、テクスチャを別のテクスチャにコピーをしたいのですがどのようにすればいいのでしょうか?
できれば、高速な方法が良いです。宜しくお願いします。

541 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 17:55:05 ]
すいません、くだすれと間違えました・・・。

542 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:39:29 ]
OpenGL Distilledの邦訳OpenGLの神髄が出てたな
さっと立ち読みしただけだがタイトル通り要点を押さえた本だった
神髄とか言うと上級向けっぽいがそうでもなく
いきなり赤本を読む前に読んでおきたい本だな

543 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:41:32 ]
とりあえず(あえて)7Yでポチった

DirectXとか汎用言語書は自称初心者向け(笑)が増殖してるが、
買うヤツがほとんどいないOpenGL本をあえて出すということはそれなりのクオリティであると期待してみる

544 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:56:29 ]
>>543
だが需要はあると思うぞ。俺も買った。

545 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 07:55:58 ]
原書で読んだよ。邦訳出たのか。神髄ってのは何か違う気が……。
各章サンプルはあるんだけどあるだけって感じなんで、初心者で
手を動かしながら理解したいって人は合わせて別のチュートリアル読んだ方がいいかも。



546 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:31:13 ]
OpenGLでバナナの腹筋はできますか?
どこかからサンプルコードはダウンロードできないでしょうか?


547 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:37:40 ]
そんな質問どこかで見たと思ったらこのスレの頭の方だった
できるけど、OpenGLのサンプルコードがあるかどうかは知らない

548 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:09:29 ]
ろぼっとアームをバナナに置き換えれば

549 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:41:58 ]
Cgとかのシェーダ言語のスレってないね

550 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 20:27:55 ]
あったと思ったら違ったw

CGプログラムやれや、お前ら
pc11.2ch.net/test/read.cgi/cg/1025138347/

昔はあったんだけどね
落ちちゃったのかな

551 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 21:48:26 ]
シェーダのスレならゲーム製作技術板だがあった
ついでに過疎ってるが
pc11.2ch.net/test/read.cgi/gamedev/1005185166/l50

このスレもOpenGL3が出ないから話題が無いしCgとGLSLならここでもいいんじゃね?
今時DirectXでわざわざCgを使ってる奴がいるとも思えんし

あとは3Dグラフィックスプログラミングスレとかかな

552 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 04:27:47 ]
ndsやってるかたいらっさいますか

553 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 10:06:52 ]
仕事の質問なら帰れ
趣味でやってるなら聞くだけ聞いてやる

554 名前:デフォルトの名無しさん [2008/01/16(水) 12:50:17 ]
>>549
いっぱい有りますやん。
gpuでこの板検索してみそ。

555 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 14:25:25 ]
>>554
GPGPUのスレしか見つからないが
グラフィックでのシェーダと使い方大分違くないか?



556 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:53:32 ]
あっちで普通のシェーダ聞いたらすれ違い言われた

557 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 01:28:03 ]
そりゃ当然

558 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 21:30:29 ]
マウスで画面クリックしたら
3次元座標空間内の点が消える、という処理をしたいのですが


赤い○←クリック α値が0になって
αテストで画面内から消滅。という流れでやろうと思っています。

ただ、どうにもクリックしたオブジェクトの選択方法・クリックによる色・αの変換方法がわからず
どうにもわかりません。

参考サイトとかあったら教えてくださいませんか

559 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 21:53:02 ]
定期的に同じような質問が来るな。
αで消すよりポリゴンそのものの描画をカットしたほうが楽じゃないか?
ポリゴン選択なら
glRenderMode(GL_SELECT);
gluPickMatrix
あたりで検索するといいよ。

560 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 23:01:02 ]
>>559
ありがとうございます。

そこらでググって見ましたがいまいち、クリックしたオブジェクトを、消すというのが
どの時点で選択されているのかわからなく

ttp://wiki.livedoor.jp/mikk_ni3_92/d/%a5%b5%a5%f3%a5%d7%a5%eb%a5%b3%a1%bc%a5%c9%3a%3aOpenGL
ttp://son-son.sakura.ne.jp/programming/opengl_6.html

こちらを参考にしました。
消すのに、描画をカットする方法やαを0にするのがどこをいじくってよいのやら

無数に飛んでくる玉をクリック・クリックで消すというゲームを想定してます。

561 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 01:42:23 ]
それなら別にマウスピッキングなんかしないで、マウスポインタ座標と玉との距離で
処理すればいいんじゃない? 結構処理時間食うぞ、ピッキング。
他に意図があるなら別だけど。

562 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 03:20:46 ]
普通にやるならマウス座標とスクリーン座標に変換したオブジェクトのバウンディングスフィアとの衝突判定を
手前のオブジェクトから順に判定して行く感じかな

もはやOpenGL関係ないけど

563 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 06:12:05 ]
床井さん復活おめ。

564 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:54:14 ]
>>562
>もはやOpenGL関係ないけど
それが普通だよ。OpenGLの仕事は基本的に描画のみ。衝突判定やピッキングは別でやるのが当たり前。
セレクションモードとかは「場合によっては使えなくもない」ってだけの仕組み。

初心者は、無理してOpenGL使うより、適当なシーングラフライブラリを使ったほうがいいと思うんだよなー。
でも敷居の低いシーングラフってなかなか無いんだよなー。

565 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 16:23:17 ]
javaなら低レベルなJOGLか、高レベルなJava3Dっていう選択肢があるんだけどな。

と、JOGLをRhinoから遊んでる俺が言ってみる。



566 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 17:37:50 ]
JOGLってなんでGL.glHogeHogeみたくプレフィクスだぶらせてるんだ。
メソッドのglとか定数のGL_とか、クラス名があるんだから不要じゃん?
入力面倒だよ……。

567 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 17:42:16 ]
定数の GL. は static import すればいい
メソッドのはメンドイね

568 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 02:43:39 ]
下らない質問なんですが、
戦場の絆みたいなゲームって、
blenderみたいなソフトでモデル(ガンダム)を作って、
その情報を取り込んでOpenGLでプログラミングして動かしているのでしょうか?

569 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 02:54:16 ]
商業なら独自形式にエクスポートしたりしない?

絆のハード構成は最近のPCと同じ(チップセットがAMDでVGAがGF7800)でOpenGL使ってるからCg使ってるかもしれないけど。

570 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 03:05:48 ]
>>569
むむ、言ってることが難しくて分からないです。
自分が何でこんなこと思ったのかと言うと、
たとえばもうちょっと簡単な例で、同人ゲームとかで3Dな奴ありますよね。
でも、自分にはOpenGLであんな複雑な人の形を作るなんて、とっても大変だと思うんです。
それで、たとえば何かのCGソフト(blenderとか六角大王とか)で人間の形を作って、
その人間の形を出力して、OpenGLで取り込んでプログラミングして動かすのかなと思ったんです。
実際のところどうやって3Dゲームは人の形を動かしてるんでしょうか?


571 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 08:35:42 ]
>>570
基本はあってる。

3DCGソフト(ゲームなら、3DSMax、Maya、XSIあたり)でモデリングして、アニメーション付けて、
それを独自形式で適当に吐いて、
プログラムでデータとして読み込む。

後は、それをOpenGLなり、DirectXなりで画面に出力する。

572 名前:デフォルトの名無しさん [2008/01/19(土) 09:05:08 ]
>>571
なるほど!
とてもよく分かる説明、ありがとうございます。
ちなみに、モデリングしてアニメーションつける人と
OpenGLなりDirectXで動かす人は普通別なんですよね?

573 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 12:08:24 ]
普通は別だろう
別である必要はないけど
技術的につらいし作業量的にも無理あるよな

574 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 12:33:58 ]
そこそこ以上の規模のゲームでは
前者はデザイナー、後者はプログラマーの仕事だよな

575 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 12:52:20 ]
今時の同人ソフトだってグラフィックデザイナとプログラマは別れてるんじゃないかな?

規模のでかいゲーム屋ならWebの募集要項の種類眺めるだけでも雰囲気つかめるんじゃないの>>572




576 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:55:18 ]
規模によるとしか言えない。1週間も3Dソフト触ればまずまずの絵は出てくるようになるよ。
ただゲームに適したポリーを吐くのは難しいときもある。

577 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:25:19 ]
GLUTによる「手抜き」OpenGL入門読んだら、次に読むべきお勧めの本は何かありますか?
赤本より簡単なやつで。

578 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:30:35 ]
>>577
続きという事なら、これはどうかな。俺もまだ読んでないけど。

GLUTによるOpenGL入門2 テクスチャマッピング
www.kohgakusha.co.jp/books/detail/978-4-7775-1332-1

579 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:30:54 ]
とりあえず自分で何か作ってみる、のがいいんじゃないかなぁ
太陽系の模型とか、三次元テトリスとか

580 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:55:33 ]
赤本は分厚いだけで難しくはないだろ。

581 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:37:44 ]
OpenGLで3次元で人体を描画するとしたら
各関節を座標で与えて表示することは可能でしょうか?
現在は例として肩から肘まではxyz座標でそれぞれの軸に何度回転しているかで
描画しているのですが…
よろしくお願いします

582 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:49:17 ]
座標から角度を計算すればいいだろ

583 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 00:17:40 ]
すいません、質問させて下さい。
今、複数のポリゴンに動画を貼り付けるようなことをやっているのですが、
どうしても8fps位しか出ず、複数のポリゴンと複数の動画を描画すると、0.5fps位になって
しまいます。なにか高速化のヒントだけでもいただけるとうれしいのですが…

テスト時の動画は400*400、処理は大体以下のような感じです。

1、カメラの設定
2、変換座標の設定
3、テクスチャの生成(1つの名前をglTexSubImage2Dで使い回し)
4、ポリゴン描画
1に戻る

584 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 00:25:19 ]
どこが遅いか調べればいいじゃないか。
エスパーは出張中だ。

585 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 08:06:43 ]
>>583
動画のデコードが遅いだけじゃないだろうな
動画でなく同じサイズの静止画を毎フレームglTexSubImageで設定してみて
遅いかどうかを確認してみなよ



586 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 17:01:41 ]
>>585
試したところ、無変形では静止画の方が速くなりました。
ところが、回転や移動をすると、なぜか静止画の方はフレームレートが
半分ぐらいにまで落ちたのに対し、動画の方は変わりませんでした。
これはデコード以外の別なところにもネックがあると考えた方がいいんでしょうか?

587 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:05:51 ]
>>ところが、回転や移動をすると、なぜか静止画の方はフレームレートが
>>半分ぐらいにまで落ちた

これはおかしいな。考えにくい。
プログラムうp。

588 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:31:42 ]
>>587
ちょっといろいろ処理がからみついていて長くなっているのでうpは出来ませんが、モデルビューや
プロジェクションの設定は動画と静止画の時は全く同じ処理で動いてます。
違うとしたら、動画から静止画を切り出すか、静止画をコピーするかの違いしかないのですが、
それは無変形の時に速度差が出てるので原因になってるわけ無いですし…
動画と静止画のサイズは一緒で、800*800ですが、サイズによっては高速に
動くようです。400*400では問題ありませんでした。

589 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:36:51 ]
>> 587
と、今もう一度試したところ、どうやらゴミがついていたようで、それを取ったら
ちゃんと問題なく速度を維持してました。
お騒がせしてすいません orz

590 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:36:55 ]
毎回すべてのデータを送りなおしているとか言って見る。

591 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:37:30 ]
>>589
>>587
安価… orz

592 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:29:40 ]
JOGLとJMFつかってJOGLに動画描画させたことあるが動画のデコードと動画の1フレーム毎にテクスチャオブジェクトに変換する処理に時間食ってるだけだったなぁ。

593 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 08:22:39 ]
テクスチャデータ設定が遅いのはPixelBufferObjectでなんとかならんかな
PBO2つ作って現在デコードしてるフレームの書き込み用と
テクスチャ設定用でダブルバッファリングするのが速い気がする

594 名前:デフォルトの名無しさん [2008/01/23(水) 22:13:25 ]
>> 542

かめれす... 「OpenGLの神髄」買いました.
分かり易くってよいです.コメント参考になりました.ありがとです.

595 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:46:41 ]
NicoAE開発頑張ってね



596 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 16:51:32 ]
今更だけど個人でコツコツと何年もかけてソフト作るなら
基本的にインターフェース仕様が変わらないGLは相性いいね


GLそのものが衰退しないという前提はあるけど

597 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 18:18:40 ]
NicoAEの人かっ!!!がんばれー

598 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 21:51:26 ]
しかしOpenGL 3.0ではガラッと変わるようなことをどこかで見たような……

599 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 22:04:54 ]
3.0がでて今までのが動かなくなるわけじゃないんならいいんじゃね

600 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 02:08:55 ]
今までのはそのまま動く予定みたいだな
3.0は従来とは別のコンテキストを作るようになる
両方使ってもコンテキストが別なんで全く別に処理されるって寸法らしい
あと3.0の描画を2.1以前のテクスチャとして使える拡張も用意される…かもしれない

601 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:46:14 ]
初心者です。
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glFlush();
}

void init(void)
{
glClearColor(0.0, 0.0, 1.0, 1.0);
}

int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
init();
なのですが、
init関数で塗りつぶす色を指定しているのに、
その前のglutDisplayFunc(display)で描画をしています。
何故init関数で色を指定する前にglutDisplayFunc(display)を実行しても
ウィンドウが塗りつぶされるのでしょうか?
逆なのではないのでしょうか?

602 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 17:21:35 ]
glutDisplayFuncはコールバック関数を「登録」する関数です。

603 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 17:22:13 ]
initよりdisplayが後に実行されてるからだよ。


604 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 17:23:53 ]
glutなんとかかんとかFunc は、コールバック関数を登録しているだけだから。

実際に登録した関数が実行されるのは、例えば
glutDisplayFunc なら画面の再描画時、
glutMouseFunc ならマウスがクリックされたとき等など。

どの命令でどのタイミングのコールバック関数を登録するかはマニュアルを参照すること。

605 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 17:23:55 ]
なんですと?
登録する関数?
じゃあ、glutMainLoopが描画してるんですか?



606 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 17:26:39 ]
MainLoopは名前のとおり中でぐるぐる回ってる。
そのなかでイベントに応じてコールバック関数を呼び出してる。


607 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:00:56 ]
OpenGLというよりコールバック関数の勉強した方がいいんじゃないか?
いまどき、コールバック関数ないのはHSPくらいだぞ。

608 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 21:39:54 ]
んなこたーない
大量にある

609 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 02:39:21 ]
>表示図形のサイズをビューポートの大きさにかかわらず一定にするには,
>glOrtho() で指定するの領域の大きさをビューポートの大きさに比例するように設定します.
>例えばワールド座標系の座標軸が上記と同様に l, r, t, b, n, f で与えられており,
>もともとのウィンドウの大きさが W×H, リサイズ後のウィンドウの大きさが w×h なら,
>glOrtho(l * w / W, r * w / W, b * h / H, t * h / H, n, f) とします.
>上のプログラムでは, ワールド座標系の2点 (-1, -1), (1, 1) を対角線とする矩形領域を
>200×200 の大きさのウィンドウに表示した時の表示内容の大きさが常に保たれるよう設定しています.
ここの意味が良くわかりません。
例えばW×H 200×200 (-1,-1) (1,1)をw×h 400×400にすると(-2,-2) (2,2)となって、
ウィンドウのリサイズに比例して表示画像も大きくなるような気がするのですが...


610 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 03:45:37 ]
>>609
縮尺を一定にしたいという話なんだからそれで正しいだろ

611 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 08:15:08 ]
GLUTを使って3Dアニメーションを作っているのですが、
現在表示している画面を画像ファイルに吐いてくれるような関数を探してます。
ありましたらぜひ教えてください。

612 名前:609 mailto:sage [2008/01/27(日) 09:37:39 ]
>>610
やっぱり良くわからないです?
ttp://upload.fam.cx/cgi-bin/img-box/a2g80127093410.jpg
のようになって、表示される画像の大きさが
ウィンドウをリサイズしたら比例しして大きくなりそうな気がするんですが。

613 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 10:00:19 ]
>>612
考えてないでやってみるとわかる。

614 名前:609 mailto:sage [2008/01/27(日) 10:43:14 ]
>>613
すいません。
考えないでやってみて不思議だから考えてるんですけれど...
そんな公式暗記しろみたいな事いわれても


615 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:05:26 ]
>表示図形のサイズをビューポートの大きさにかかわらず一定にする
この文章をどう理解するかという問題のような気がする



616 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:10:35 ]
>>612
おまえが作ったその図を見る限り
「表示図形のサイズをビューポートの大きさにかかわらず一定にする」
がめでたく実現されているようだが、いったい何が問題なんだ?

617 名前:609 mailto:sage [2008/01/27(日) 11:41:21 ]
>>615,616
すいません。自分の説明の仕方が悪かったみたいです。
ttp://upload.fam.cx/cgi-bin/img-box/7o080127113738.jpg
の赤い丸のような状態になるんじゃないかなと思ってるんです。
だって、
「表示図形のサイズをビューポートの大きさにかかわらず一定にする」
というのは、ビューポートに表示される図形の割合がリサイズしても変わらない
という意味ではないのでしょうか?

618 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 12:45:02 ]
>>617
どこに「割合」なんて書いてあるんだよ。
サイズと言ったらサイズだろ。

619 名前:609 mailto:sage [2008/01/27(日) 13:00:54 ]
わかった!
今やっと分かったっす。
自分の日本語読解能力な無かったんです。
ありがとうございました。

620 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 13:55:06 ]
>>619
わかったことをわかりやすく図に示してくれ
俺も不思議になってしまった

621 名前:609 mailto:sage [2008/01/27(日) 14:27:22 ]
>>620
つまり、そのまんまですよ。
自分の日本語読解能力が低かったんです。
円の大きさがウィンドウリサイズしたときに、
リサイズしたウィンドウの大きさに合わせて大きくなったり小さくなったりする場合が、
(ttp://upload.fam.cx/cgi-bin/img-box/7o080127113738.jpgの赤い円の状態)
glOrtho(-w / w , w /w , -h /h , h /h , -1.0, 1.0);
で常に表示される割合が一定で投影される範囲が(-1, -1), (1, 1)に固定。
ウィンドウの大きさにを変えても円の大きさが固定の場合が場合が、
(ttp://upload.fam.cx/cgi-bin/img-box/7o080127113738.jpgの黒い円の状態)
glOrtho(l * w / W, r * w / W, b * h / H, t * h / H, -1.0, 1.0);
でウィンドウをリサイズすると、合わせて(-2,-2)(2,2)...と投影される範囲が大きくなるから
逆に考えて円の大きさは変わらない。
みたいな理解で良いんでしょうか?

622 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 15:37:35 ]
C言語でOpenGLをつかって物体の動く軌跡を描くプログラムをつくるにあたって2つ質問があります。

一つは、
OpenGLでアニメーションをするときにダブルバッファをいれても
アニメーションのコマ毎に物体のオブジェクトが
制止している状態であっても点滅している風になってしまう場合があるのですが
どのように解消すればよいのか。

もう一つは、
軌跡を描くということで再描画の際にも軌跡を表現するオブジェクトは
そのまま残しておかなければならないと思うのですが
この処理はどのようにコーディングすればよいのか。

この2点なのですが、ご教授のほどよろしくお願い致します。

623 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 17:45:27 ]
>>622
glSwapBuffer()のタイミング。
windowsで使用しているなら、windowsでの再描画系のチェック。

軌跡に関してはopenGL関係ねえ。
適当に軌跡を保持しておけばいいんじゃない?

624 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:54:33 ]
バッファをクリアしないだけで勝手に軌跡にならないか?

625 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:00:15 ]
Zバッファなしで、奥から描画するように上書きすればそれっぽくなるかもね。



626 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 15:22:29 ]
glBegin(GL_POINTS)を使い、glPointSize(size)で指定したsize*sizeの
四角形を描画したいのですが、四角形にならず円形しか描画されません。
GL_POINT_SMOOTHになってるのかと思い、Disableにしてみましたが
結果は変わりませんでした。

glDisable(GL_POINT_SMOOTH);
glPointSize(10);
glBegin(GL_POINTS);
glVertex2f(x, y);
glEnd();

GL_POINTSで四角形のpixelを描画するにはどうすれば良いのでしょうか?
ご教授を宜しくお願いします。

627 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 16:09:14 ]
GL_QUADSを使えば済むと思うけど。

どうしてもというなら、円が重なるようにたくさん打てば良いんじゃないか。


628 名前:626 mailto:sage [2008/02/02(土) 16:41:23 ]
>>585
確かにGL_QUADSでも良いのですが、GL_POINTSの方がポリゴンを描画するよりも高速だったので
GL_POINTSで四角形の点を表示したかったのです。(数万個のパーティクルを扱いたいので)
とりあえずGL_QUADSで処理する事にします。どうもありがとうございました。

昔のグラボで試したところ四角形で点が表示されました。
うーん、ハードウェアの問題なんでしょうか…?ELSA GLADIAC 786GTを使用してます。

629 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 16:45:26 ]
赤本に描画を高速化するコツが載ってるよ。

630 名前:629 mailto:sage [2008/02/02(土) 16:52:15 ]
ごめん違った。
赤本じゃなくて、OpenGLの真髄でした。最近出た本です。

631 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:25:38 ]
GLdouble color[7]
for (i=0; i<7; i++)
color[i] = (GLdouble)i/6.0;
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
for(i = 0 ; i < 7 ; i ++){
for(j = 0 ; j < 7 ; j ++){
glColor3d(color[i], color[i], color[i]);
glVertex2f(-1.0+i*0.3, -1.0+j*0.3);
glColor3d(1.0, color[i], 0.0);
glVertex2f(-0.8+i*0.3, -1.0+j*0.3);
glColor3d(0.0, 1.0, color[j]);
glVertex2f(-0.8+i*0.3, -0.8+j*0.3);
glColor3d(color[i], 0.0, 1.0);
glVertex2f(-1.0+i*0.3 , -0.8+j*0.3);
}
}
glEnd();
みたいなコードって、
forの中身を
glColor3d(color[i], 0.0, 1.0);
glVertex2f(-1.0+i*0.3 , -0.8+j*0.3);
glColor3d(color[i], color[i], color[i]);
glVertex2f(-1.0+i*0.3, -1.0+j*0.3);
glColor3d(1.0, color[i], 0.0);
glVertex2f(-0.8+i*0.3, -1.0+j*0.3);
glColor3d(0.0, 1.0, color[j]);
glVertex2f(-0.8+i*0.3, -0.8+j*0.3);
と順番をいろいろ入れ替えただけで
描画される形や色が変わるんですけど、同じ場所に同じ色で指定しているのに
なんで順番を変えただけでグレデーションが変わってしまうのでしょうか?


632 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:44:43 ]
7 X 7 のループにしないと再現しないのか?
聞きたいことを再現する最小限のコードを載せてくれよ。
だいたい、グレデーションってどこのよ?

633 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 11:21:25 ]
>>631
頂点の順序は重要
その順番に繋いで形にするんだから

634 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 11:45:54 ]
>>631は確かに論点がわかりにくいコードだが、要するに

glColor3d (1)
glVertex2f (1)
glColor3d (2)
glVertex2f (2)
glColor3d (3)
glVertex2f (3)
glColor3d (4)
glVertex2f (4)

の順序を

glColor3d (4)
glVertex2f (4)
glColor3d (1)
glVertex2f (1)
glColor3d (2)
glVertex2f (2)
glColor3d (3)
glVertex2f (3)

に変えたと言ってるわけで、
GL_QUADSの定義からして特に問題はないように見えるんだよね・・・。

635 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 11:59:08 ]
「順番をいろいろ入れ替えた」 って言ってるから、
やっぱりでたらめにいろいろ入れ替えてるんじゃないのかなぁ

あとは、四角形を内部で三角形2枚に分割して処理してたりすると、
形や色の具合が変わることがあるかもしんない



636 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:08:33 ]
ああ、確かにグーローシェーディングの補間結果は変わってくるな。

637 名前:631 mailto:sage [2008/02/04(月) 12:25:38 ]
>>632
すいません。
ttp://www2.uploda.org/uporg1233762.jpg
に再現画像をのせました。
>>633
予測する方法は無いのでしょうか?
>>634
自分の言いたい事を分かりやすくいって頂いて有り難うございます。

えっと小さな四角形をグラデーションでたくさん表示したいなと思ったんですが、
プログラムを書いてる最中に「このグラデーションで表示したい」と思って
プログラムを書いているのに思っている物と違う物が表示されてしまって、
順番をかえると思った物が表示される事に気づきました。
色と点は同じ指定しているのに、順番を変えるだけで表示される画像が
かわってしまうので、最終的に表示される画像がどのようなグラデーションになるか、
法則?(色の補完の法則?)みたいなものは無いのでしょうか?

638 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:35:08 ]
GL_QUADSやめてGL_TRIANGLESで描くようにすればいいかと

639 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:57:50 ]
glVertexいじらずに色の順番だけ変えればいいじゃん

640 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:33:41 ]
ポイントスプライトとかじゃだめなの?

641 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:06:26 ]
どうみても学習始めたばかりの人にそれはない

642 名前:デフォルトの名無しさん [2008/02/04(月) 20:42:08 ]
床井先生のとこによさげなサンプルがあるよ。
OpenGL point sprite でググったら一番上にでてきた。


643 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:42:46 ]
ageちまった。スマン。

644 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:22:33 ]
GLUTでワールド座標系とデバイス座標系とマウスの座標の質問です。
「デバイス座標系とワールド座標系ではglutMouseFuncに渡されるマウスの座標の上下が反転している 」
というのがいまいち理解できません。
glutMouseFunc(mouse);
void mouse(int button, int state, int x, int y){
static int x0, y0;

switch(button){
case GLUT_LEFT_BUTTON:
if(state == GLUT_UP){
glColor3d(0,0,0);
glBegin(GL_LINES);
glVertex2i(x0,y0);
glVertex2i(x,y);
glEnd();
glFlush();
}else{
x0 = x;
y0 = y;
}
   break;
printf("(%d %d)¥n",x,y);
というプログラムで、
glOrtho(-0.5,w - 0.5,w-0.5,-0.5,-1,1);
とやって上下を逆転させてやると正しく線が引ける事
glOrtho(-0.5,w - 0.5,-0.5,w-0.5,-1,1);
とやると引かれる線の状態が鏡のように反転する事を確認しました。
でもprintf("(%d %d)¥n",x,y);で渡されるxとyは、glOrthoで上下反転してもしなくても、左上が(0,0)で右下は(w,h)であるようです。
それに上下反転させると絵も下のように逆転しそうな気がするのですが...
tune.ache-bang.com/~vg/outitem/up/img/18549.jpg
上のように絵は逆転しないのでしょうか?なぜ上下が反転しているのに、printf("(%d %d)¥n",x,y)で渡される値は正しいのでしょうか?


645 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:24:55 ]
対照物を行ったり来たりさせる代表的なアルゴリズムを教えてくれ!
ifとかつかっても俺の頭では行きっぱなししかできん!



646 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:33:43 ]
sin

647 名前:644 mailto:sage [2008/02/04(月) 22:38:35 ]
すいません。絵は上下逆転しますね。
でも、マウスをクリックして渡される座標は左上が(0,0)で右下が(w,h)で良くわかりません。
それとプロの方々はこのようにワールド座標系とデバイス座標系が逆転する時は、
わざわざ逆転したとき用にプログラムを書いているのでしょうか?

648 名前:644 mailto:sage [2008/02/05(火) 01:39:33 ]
分かったぁ。
デバイス座標系では左下が(0,0)なのに、
ワールド座標系では左上が(0,0)になるから、書いた線が鏡に書いたように逆転するんだ!
下の絵のような感じで。
ttp://www2.uploda.org/uporg1234742.jpg
絵に描けばすぐ分かったのに、なんでグダグダ頭の中で考えてたんだ、自分の馬鹿。

649 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 04:49:27 ]
よくわかんないけど、自演乙

650 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 05:16:26 ]
OPENGLでつくったアニメーションをスクリーンセイバーにできますか?
WindowsでVisual C++でつくりました。

651 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 05:52:05 ]
もちろんできますよ!

652 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 07:01:29 ]
.exe を .scr にする。
ほらできた!

653 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:35:17 ]
最近勉強始めたんですけど、
OpenGLってHCLの道具として役に立つんですか?


654 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 17:33:34 ]
塩酸?

655 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 17:38:45 ]
>>652
ありがとう!できた!でもめちゃくちゃ重くなった!



656 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:31:26 ]
スクリーンセーバーは正しい作り方があるからggr

657 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:37:18 ]
>>653
HCLがなんだかさっぱりわからんけど
OpenGLは3D*描画用*のAPIだ
それが役に立つなら役に立つんじゃね?

658 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:29:26 ]
>657
HCLじゃなくてHCIでした。単なる読み間違いでした。

659 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:50:12 ]
>>658
HCIがなんだかさっぱりわからんけど
OpenGLは3D*描画用*のAPIだ
それが役に立つなら役に立つんじゃね?

660 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:17:41 ]
ワロタ

俺もHCIがよくわからんのでググッタカス
だがわからん

661 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:55:12 ]
Human Computer Interaction とか Interface とかじゃないかなぁとまじれす。そして結論は >659

662 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 06:34:16 ]
glEnable(GL_COLOR_LOGIC_OP);
glLogicOp(GL_INVERT);
glBegin(GL_LINES);
線を引く
glend();
glDisable(GL_LOGIC_OP);
というプログラムなのですが、
GL_COLOR_LOGIC_OPは「図形の描画の際に,ウィンドウに既に描かれている色と,
これから描こうとする色の間で論理演算を行うことができるようにします」
という解説が有りました。
「GL_INVERT はウィンドウに描かれている内容の, これから描こうとする図形の領域を反転します」
とあります。
つまりコレは、以前引いてある同じ色の線の色を反転して、新しい線をまた反転した色で引くプログラムという
理解で良いのでしょうか?
「ウィンドウに描かれている内容の, これから描こうとする図形の領域を反転します」の意味がいまいち理解できないんです。

663 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 08:31:55 ]
白地に青で書くと黄色になる。

664 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:51:47 ]
>>662
黒が白に、白が黒になるのが反転
GL_INVERTは「これから描こうとする色」は使われない
「すでに描かれている色」を反転するのみ

>以前引いてある同じ色の線の色を反転して

以前に線を引いてある必要はない
たとえば真っ白のところにGL_INVERTで線を引くと黒い線になる
真っ黒のところにGL_INVERTで線を引くと白い線になる

>>663
それはGL_XORだろう

665 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:33:56 ]
>>662
ちがうよ



666 名前:デフォルトの名無しさん [2008/02/15(金) 02:21:24 ]
人間の顔の表面の形状を表した座標点のデータがあるのですが、これをポリゴンを使ってサーフェスモデルみたいにしたいのですが、これってどうやったらいいのでしょうか?

667 名前:デフォルトの名無しさん [2008/02/15(金) 03:03:19 ]
手作業でがんがれ!

668 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 03:17:11 ]
点群をトライアングルメッシュに直してくれるソフトとかあるよ
超高いけど

669 名前:デフォルトの名無しさん [2008/02/15(金) 03:19:02 ]
>>668
お金がないので、フリーか、もしくはプログラミングの方法があればお願いします。

670 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 08:03:56 ]
Delaunay法使ったら?
vtkとかMayaViに逃げるとか。

671 名前:デフォルトの名無しさん [2008/02/15(金) 09:52:25 ]
>>670
ありがとうございます!
試してみます。

672 名前:デフォルトの名無しさん [2008/02/15(金) 14:06:08 ]
ドロネー図を書く場合って、どんな関数を使えばいいですか?

673 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:30:35 ]
>>672
vtkならサンプルがある。
フルスクラッチで書く技量が無いなら取り敢えず他人のソースを参考にしろ

674 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:48:59 ]
投影と射影って同じ意味ですか?
本を読んで勉強しているのですが、
「射影変換には、射影変換には透視射影と平行射影が〜」
または、
「投影変換には大きくわけて、透視投影と平行投影が〜」
みたいに、どう見ても同じ無いようなのに、ころころ文によって
射影と投影が使われていてとても疑問なんです。

675 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:55:21 ]
一緒
どっちも projection の訳語



676 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:21:48 ]
トンです。

677 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:44:52 ]
VisualStudio2005でglpngを導入してテクスチャーをやりたいのですが
glpng.hを設定しただけでは上手くコンパイルが通りませんでした。
調べたところd.hatena.ne.jp/minami_SC/20070425/1177462910
のページが出てきて
この通りにやってみたのですが
ここでもコンパイルが通らずエラーを吹いてしまいます。

VisualStudio2005でのglpngを導入方法はできないのでしょうか?
できるのでしたら方法をご教授ください。

678 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:34:10 ]
         |:;:;:;:;:;:;:;:;:;:;:;:;:;:i;:;:;:;:;:;:;:;:;:;:;:;:;|
           |;:;:_:;:_:;:_:;:_;:;_:;:l:;_;:_:;:_:;:_:;:_;:_;|
        |______|_____|
        | 三|  _     _   |三 !
        | 三|  三シ   ヾ三  |三 |
        | 三′  .._     _,,..  i三 |
        ト、ニ| <でiンヽ  ;'i"ィでiン |三.|   エラー内容も貼らずに質問とな!!
        ', iヽ!  、 ‐' /  !、 ーシ |シ,イ
         i,ヽリ    ,' :  !.     |f ノ
         ヾ!    i ,、 ,..、ヽ   lノ
          |      _ _    イ l
            l    ,ィチ‐-‐ヽ  i /、
             ゙i、   ゝ、二フ′ ノ/'"\
              | \  ー一 / /   _,ン'゙\
          ,ィ|、  \     /_,、-'" _,.-''´ `丶、__
       _, イ  | ヽ_ 二=''" _,. -''´  """""´´  ``ー

679 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:54:29 ]
>>677
d.hatena.ne.jp/minami_SC/20070425/1177462910
にある方法は使わずに、VS2005で普通に試してみた。
libc.lib のエラーがでたけど、無視するようにしたら、うまくいったよ。
それ以外のエラーだったら知らん。


680 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 11:11:49 ]
すみません、エラー内容はこれです。

error LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。 LIBCMT.lib

無視する方法とかあるんですか?

681 名前:677.688 mailto:sage [2008/02/25(月) 11:55:04 ]
自己解決しました

最初の設定が悪かったみたいですorz


682 名前:デフォルトの名無しさん [2008/03/03(月) 20:11:07 ]

梅宮辰夫の歌に、シンボルロックいうのがあってな

シンボル
シンボル
外部のシンボルぅぅ〜

って

683 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 20:58:40 ]
なんの誤爆だwww
リンケージの話か??

しかもぐぐったら歌詞違うじゃん

684 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 21:00:09 ]
ってうあおおぉ勘違いしてんの俺じゃんorz orz orz
くだすれとごっちゃになってたorz

685 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 11:59:47 ]
OpenGL 3.0




686 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 14:31:32 ]
出たのかと思ってびっくりしたじゃないか
>Don’t miss the great updates on OpenGL3 at the SIGGRAPH BOF!
あと三ヶ月程待て

687 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 17:13:21 ]
すみません。話題がないので悪戯してみました。

688 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:01:00 ]
>>687
ショボーン

689 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:55:40 ]
> OpenGL BOF August 13th 6pm - 8pm Wilshire Grand Hotel - Wilshire Room
俺はSIGGRAPH行けないので後は頼んだ…!

690 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 00:52:45 ]
キューブマップもテクスチャ座標生成も無いOpenGL ES 1.1で
環境マップっぽいことをする方法は……無いよな……

691 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 10:18:56 ]
つGL_OES_texture_cube_map

692 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 13:56:26 ]
環境マップするだけなら球状マップかなにかにして
テクスチャ座標だけ自前で毎フレーム計算して渡してやればいいな

しかしES1.1な環境のCPUでそれをやるとなると……

693 名前:デフォルトの名無しさん [2008/06/09(月) 19:28:49 ]
OpenGLを使うんじゃなくてmesaみたいにソフトウェアで実装したいのですが、
参考になるソースを紹介していただけないでしょうか?
なるべくシンプルで簡単なのがいいです。
(mesaは大きすぎる)


694 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:53:24 ]
OpenGL関係ねー!!

スキャンライン、レンダリングとかでググってみてください
レイトレで良ければMiniLightとか
ttp://www.hxa7241.org/minilight/minilight.html

695 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:04:29 ]
OpenGLやDirectXのようなAPIが出る前に書かれた
3DCGの解説書はだいたい>>693みたいのばっかりだ。



696 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 19:04:15 ]
垂直同期待ってくれないので、ネットで垂直同期待つ関数をググったら
wglSwapIntervalEXT
という関数があるのはわかりましたが、
それを利用する方法がわかりません
#include <gl/wgl.h>
と書いても存在しないといわれます。
どうすればいいでしょうか?

697 名前:696 mailto:sage [2008/06/12(木) 19:14:41 ]
事故解決しました

698 名前:697 mailto:sage [2008/06/12(木) 19:23:12 ]
嘘です。
glewInit();でエラーが出ました。

699 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 19:42:31 ]
エラーメッセージは?

700 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 20:31:03 ]
glewInitはウィンドウ作ってから呼ぶんだぜ
glewInit後wglSwapIntervalEXTに1を渡すと同期あり、0を渡すと同期無しになる
しかしデフォルトは1のはずなんでドライバの設定いじってない限りは
同期取るはずなんだが、設定確認した方が良くないか?

701 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 20:51:49 ]
この間Ubuntuで初めてOpenGLアプリ書いてみたら
VSyncがオフになっててちょっとびっくり

拡張サポートはGLEEの方が個人的に好きです

702 名前:698 mailto:sage [2008/06/13(金) 14:09:21 ]
>>699
1です。

>>700
ウィンドウ作って呼ぶと行けました。
ありがとうございます。

>同期
glutInitDisplayMode を GLUT_SINGLE で設定してたので非同期でした。
GLUT_DOUBLE で同期しました。のでwglSwapIntervalEXTは、必要なくなりました><

まあ、でもglewは、今後お世話になりそうなので良かったです。
ありがとうございます。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<177KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef