07/06/16 00:32:38
驚愕の事実。
GLUIはLGPLのくせにスタティックリンクしかねぇ!
ソース後悔はいやづら
141:デフォルトの名無しさん
07/06/16 01:07:26
せっかくgluiのソースがあるんだから、
gluiを *.dll とか *.so にコンパイルすればいいんでは。
142:デフォルトの名無しさん
07/06/16 01:21:51
>>141
おっしゃる通りなんですが、ほとんどの機能がクラスで提供されているので、事実上無理ではないでしょうか
143:デフォルトの名無しさん
07/06/16 01:23:33
>>140
LGPL はスタティックリンクしてもソースは公開しなくて良いんだぜ。
他人が再リンク可能なようにする必要があるだけだから、リンク前の
オブジェクトファイルを同梱しておけばオーケー。ソースは隠しておけ。
144:デフォルトの名無しさん
07/06/16 01:28:53
>>143
おおっ、トリッキーな情報さんきゅです。
確かにそんなこと書いてあった気がする。
これで恥ずかしい自コードを隠しておけそうですヽ(´▽`)/
145:デフォルトの名無しさん
07/06/16 18:19:21
> LGPL はスタティックリンクしてもソースは公開しなくて良いんだぜ。
嘘はいけないよ、嘘は・・・
146:デフォルトの名無しさん
07/06/16 18:28:43
>>145
釣りするつもりならもう少し工夫したらどうなんだ?
最近少し頑張りが足りないぞ。
147:デフォルトの名無しさん
07/06/16 18:56:46
おいおい、LGPLは動的リンクでないとLGPLになるよ。
だから、みんな、DLLにしてるのに・・・
148:デフォルトの名無しさん
07/06/16 19:09:54
>>147
gnu.org 逝って来い
思い込みだけで書き散らしてないで、原文をきちんと読め
149:デフォルトの名無しさん
07/06/16 19:10:06
というかLGPLなのにソース公開されてないの?
150:デフォルトの名無しさん
07/06/16 19:49:54
つうか、2007 年にもなって LGPL にソース公開義務があると
思っている人間がいたのが驚きだ…
151:デフォルトの名無しさん
07/06/16 23:12:49
lgplを採用するプログラム(ライブラリ)自体にはソースの公開義務はあるだろうよ…
ソースの公開義務が無けりゃ、BSDとかわらんではないか…
俺は勝手にwikipediaのURLリンク(ja.wikipedia.org)が正しいとか思ってるんだが、どうだろうか?
152:デフォルトの名無しさん
07/06/17 15:41:18
for(i=0;i<WIDTH;i++){
for(j=0;j<HEIGHT;j++){
/* test source */
glGetDoublev(GL_MODELVIEW_MATRIX, model);
glGetDoublev(GL_PROJECTION_MATRIX, proj);
glGetIntegerv(GL_VIEWPORT, view);
glReadPixels(i, j, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &z1);
gluUnProject(i, j, 0, model, proj, view, &x1, &y1, &z1); //スクリーン上の座標をワールド座標で取得
/* test source */
}
printf(" at (%d, %d) --> ", i, j);
printf(" at unproject (%lf, %lf, %lf)\n", x1, y1, z1);
}
スクリーン上の各ピクセルが、ワールド座標上でどうなっているのか知りたくて
上のようなソースを書いたのですが、変な値が入ってきます。
視点を<10 10 -20>において、<10 10 0>を見ているときに
左端のX~右端のXを表示しても
at (0, 256) --> at unproject (10.552285, 10.465990, -19.000000)
at (255, 256) --> at unproject (9.672081, 10.465990, -19.000000)
画面の幅が縦横256なのに、こんな小さな差しか出てきません。
これだとスクリーンは左端~右端までワールド座標中で約-0.5~0.5の差でしかないということでしょうか
gluPerspective(45.0, (double)w / (double)h, 1.0, 1000.0);はこのようにしております。
スクリーンの点から空間の点を知る方法を教えてください
153:デフォルトの名無しさん
07/06/17 15:54:22
スクリーン上の点を空間で表すと直線になるけどな。
154:デフォルトの名無しさん
07/06/17 16:06:50
すみません。仰ってることがわからないです
上のことは、私の勘違いだったかもしれません
画角を90度にして、画面も正方形で作ってみました
そうすると距離が1離れているスクリーンは
左端が-1 右端が+1になりますねよね。
それで正しい値だと認識できました。
155:デフォルトの名無しさん
07/06/17 17:02:30
>>152
とりあえず
gluUnProject(i, j, 0, model, proj, view, &x1, &y1, &z1);
↓
gluUnProject(i, j, z1, model, proj, view, &x1, &y1, &z1);
じゃねぇかね?
156:デフォルトの名無しさん
07/06/17 18:41:26
ワールド座標中でのスクリーンが欲しいときは0にすると以前教えていただきまして
z1だとこの場合スクリーンより奥の値になりますよね?
ここまでやって、スクリーンに向かって光線を打てると思ったのですが詰まりました…はぁ…
157:デフォルトの名無しさん
07/06/17 19:42:18
>>156
>ワールド座標中でのスクリーンが欲しいときは0にすると以前教えていただきまして
はっきりいって間違ってるよ
158:デフォルトの名無しさん
07/06/17 19:43:06
>>152
>これだとスクリーンは左端~右端までワールド座標中で約-0.5~0.5の差でしかないということでしょうか
そーゆーコトです。(gluPerspectiveに与えたwとhの比にもよりますが)
>gluPerspective(45.0, (double)w / (double)h, 1.0, 1000.0);はこのようにしております。
とのことなので、これはglFrustumでいえば
const double t = tan(22.5 / 180 * M_PI);
glFrustum(
-1.0 * t * w / h,
1.0 * t * w / h,
-1.0 * t,
1.0 * t,
1.0
1000.0
);
に相当しますから、nearクリック面の横幅はw/h*2tan22.5度、となります。
>スクリーンの点から空間の点を知る方法を教えてください
求められているように思えますが・・・。
159:デフォルトの名無しさん
07/06/17 19:54:32
多分152さんは、前スレの915~あたりの人ですよね。
もしいまだにnearクリップ面のことを「スクリーン」と呼んでるのなら、早く直した方がいいですよ。
独自の用語を使われると、意志の疎通以前に混乱を招きますので。
>>157
字面だけみると完全に間違ってる(笑)んですけど、
その辺の事情は前スレを見ないと分からないかと・・・。
160:140
07/06/17 20:18:51
ライセンススレ化してすんません。原文読んできました。
スタリンクするものはLGPLの派生物となるが、例外として、
リバエン/改変などの告知をし、完全かつ機械読み取り可能なオブジェクトコードあるいはソースコー ド(どちらかでも可) と一緒にする。
この「オブジェクトコード」がglui.libを指すのであれば大丈夫ですな
161:デフォルトの名無しさん
07/06/17 20:37:56
>>159さん
その節はありがとうございました。
一度他のことで時間を割かれてしまって、もう一度着手しているところです。
ご指摘もありがとうございます。手探りでやっている状態で、、、
上記の方法で、視点位置と、nearクリップ面とを結ぶ直線(レイ)を出そうとして
レイを単位ベクトルにしていざ使おうと思ったのですが
今度はそれと、立方体の面との交点の算出に苦戦しています。
ここはOPEN-GLじゃない、数学のレベルの問題なので、どうにかして頑張ります。
今日は帰れそうになさそうです(´;ω;`)
162:デフォルトの名無しさん
07/06/17 21:00:36
>>160
>この「オブジェクトコード」がglui.libを指すのであれば大丈夫ですな
違う、アプリケーションを構成する.oファイル全てなので、
公開しないコードの部分も.oは公開しないといけない。
つまり、コードは無くても良いけどLGPLの部分が置き換え可能な状態で無ければいけない。
163:デフォルトの名無しさん
07/06/17 21:28:27
>>161
交差判定は面倒ですね~。
こことか参考になるかもですよ。
URLリンク(ft-lab.ne.jp)
日曜なのに大変そうですね。
がんばれ~。・ω・`)ノシ
164:デフォルトの名無しさん
07/06/17 21:30:40
>>162 が正解
LGPL 部分を自分で改変したバイナリで置き換えられる様に、.o を入手可能にする
必要がある。派生物の所持者が入手可能であれば良いから、世界に向けて公開する
必要は無いよ。
165:140
07/06/17 22:45:24
>>162,164
両氏ともありがとうございました。
オブジェクトコード=.oだったんですね(;゚Д゚)
なるほど、派生物所持者が再びリンクできるようにってことですね。
>世界に向けて公開する 必要は無い
バイナリといえど、ちょっと抵抗があったので安心しました。
重ね重ね感謝ですヽ(´▽`)/
166:デフォルトの名無しさん
07/06/20 20:36:52
>>163
どうにか無事にレイと面の交差判定、できました!
あとはそれの効率化で頑張ります。
本当にありがとうございました!
167:デフォルトの名無しさん
07/06/23 08:15:38
c++でもextern"C"で頑張って、
dllやらsoを使うのが簡単な気がする。
168:デフォルトの名無しさん
07/06/24 04:46:17
光源の明るさを0にして描画しても真っ暗になりません。
具合的には、
GLfloat lightAmb[4] = {0.0f, 0.0f, 0.0f, 0.0f};
GLfloat lightDif[4] = {0.0f, 0.0f, 0.0f, 0.0f};
GLfloat lightSpe[4] = {0.0f, 0.0f, 0.0f, 0.0f};
glLightfv(GL_LIGHT0, GL_AMBIENT, lightAmb);
glLightfv(GL_LIGHT0, GL_DIFFUSE, lightDif);
glLightfv(GL_LIGHT0, GL_SPECULAR, lightSpe);
GLfloat mateAmb[4] = {1.0f, 1.0f, 1.0f, 0.0f};
GLfloat mateDif[4] = {0.0f, 0.0f, 0.0f, 0.0f};
GLfloat mateSpe[4] = {0.0f, 0.0f, 0.0f, 0.0f};
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, mateAmb);
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mateDif);
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mateSpe);
にして描画すると、薄暗く (RGB=0.1, 0.1, 0.1 ぐらいの暗さ) 描画されてしまいます。
原因がわかる人おりますでしょうか?
環境は、GeForce 7900 GS です。
169:デフォルトの名無しさん
07/06/24 10:16:44
GL_LIGHT_MODEL_AMBIENT
170:デフォルトの名無しさん
07/06/24 11:42:49
>>169
ありがとうございます。原因わかりました。
デフォルトで環境光 0.2 が加わるなんて、知りませんでした。
171:yd
07/06/25 19:05:50
だれかいますか?
172:デフォルトの名無しさん
07/06/25 19:09:03
(@益@ .:;)ノシ
173:yd
07/06/25 19:20:10
こんち
174:yd
07/06/25 19:21:49
(x, y) = (0 + 0.557 * cos( 90 ), 0 + 0.557 * sin(90));
をFor文で回したいんですけどうまく逝きません;;
175:yd
07/06/25 19:31:25
円上にポイントを64個、均等に置きたいんですm(__)m
176:デフォルトの名無しさん
07/06/25 20:13:16
これはひどいマルチ
177:デフォルトの名無しさん
07/06/25 21:16:28
>>175
int i;
float a;
const float b = 3.1415926535897932384626433832795028*2/64;
glBegin(GL_POINTS);
for(i = a = 0; i < 64; i++, a += b)
glVertex2f(cosf(a), sinf(a));
glEnd();
178:デフォルトの名無しさん
07/06/25 22:55:22
足し算は駄目だろ…
179:デフォルトの名無しさん
07/06/26 00:13:33
>>178
はあ?
180:デフォルトの名無しさん
07/06/26 00:31:45
>>179
誤差が蓄積するからって言う意味だろ。
181:デフォルトの名無しさん
07/06/26 00:45:55
>>180
でも差は、6.283185-6.283182=0.000003だけどな。
182:yd
07/06/26 04:01:08
ありがとうございます。早速試してみますm(__)m
183:デフォルトの名無しさん
07/06/26 04:04:36
どういたしまして
184:デフォルトの名無しさん
07/06/27 00:20:17
フィールドシーケンシャル 3DをOpenGLで実装したいのですが、
方法はさておき、左右の画像を1/2に間引きして交互に合成すれば
いいのでしょうか。こんな感じに
右右右右右右右右右右右右右右
左左左左左左左左左左左左左左
右右右右右右右右右右右右右右
(繰り返し)
左左左左左左左左左左左左左左
資料があまりないので確証がとれません。どこかにありませんか。
英語サイト可です。
185:デフォルトの名無しさん
07/06/27 00:51:01
立体視の話?
186:デフォルトの名無しさん
07/06/27 00:58:43
そうです。
例えば、
640x480右画像
640x480左画像
↓
奇数行は右画像から
偶数行は左画像から
↓
640x480の(裸眼では見るに堪えない)画像
でいいのでしょうか。それをOpenGLでやりたいんですが。もちろん動画です。
187:デフォルトの名無しさん
07/06/27 01:28:29
あなたがお使いのフィールドシーケンシャル方式のデバイスの
仕様に沿った形で画像データを渡せばよろしいかと思います。
188:yd
07/06/27 12:11:18
円周上にうたれた点に対して、1個飛ばしに円弧で結んでいきたいんですが
直線ニナら結べるんですけど、円弧だとどうアプローチしていいかわかりません
やさしい人教えてください。
189:デフォルトの名無しさん
07/06/27 21:25:16
ニナがキモイ
190:デフォルトの名無しさん
07/06/27 21:44:06
円周上の点を円弧で結んだら1個飛ばしとか関係なく全部の点通るんじゃね?
それはともかくOpenGLでやるなら細かい直線に分けて書く
それも面倒ならgluPartialDisk
ニナって誰?
191:Light
07/06/27 22:26:40
脳の視覚システムを研究している者です。
リンク先のような画像をOpenGLで作製したいのですが、うまくいきません。
URLリンク(en.wikipedia.org)
いまのアルゴリズムは、赤線を描いた後、緑線を描いているんですが、
それだと上描きしてしまうことになるので、リンク先の画像のように、
重なった部分が混ざり合ってぼけた感じになりません。
また、赤と緑を別々に描くと、僕のiMacだと後の方に描いた線が
バチバチします。計算量が無駄に多くなってしまっているのかもしれません。
何か良い解決方法はないでしょうか?
閃いた方、ぜひぜひご教授ください。
192:デフォルトの名無しさん
07/06/28 00:22:00
混ぜるのは色のアルファを指定してBlendしてくれ
ブレンドについてはGL_BLENDとかglBlendFuncで調べれば出てくるはず
パチパチというのはよく分からないがZ比較してるんでないかい?
glEnable(GL_DEPTH_TEST)をやってたらglDisableにしてみれ
あとこのレベルの質問はくだすれOpenGLスレに書いた方が適切と思われる
193:デフォルトの名無しさん
07/06/28 14:35:22
同業界人かよ
パチパチはvsyncに同期してないか、
ダブルバッファリング関係かどちらかかと思われる
194:Light
07/06/28 23:39:57
>>192 & 193の方へ
回答、ありがとうございます。
GL_BLENDは可にしていたんですが、glBlendFuncのパラメーターが良くなかった
ようです。glBlendFunc( GL_SRC_ALPHA, GL_ONE );でうまく色を融合できました。
バチバチは、glutIdleFunc( idle ); を入れると起こってしまいます。
ただし、idle関数の中身は、glutPostRedisplay();です。
glutSwapBuffers()を使っています。
もう少し自分でやってみて、また判らなければ「くだすれOpenGLスレ」に
投稿したいと思います。
195:デフォルトの名無しさん
07/07/03 02:15:15
手抜きOpenGlにあるサンプルが起動しません。
どうしたらいいのですか?
196:デフォルトの名無しさん
07/07/03 02:44:55
>>195
どういうふうに起動しないのよ?
環境わからんからなんとも言えんけど、GLUTは適切にインストールされてる?
197:デフォルトの名無しさん
07/07/03 08:25:16
【派遣ネガティブ根性チェック】
3つ以上、チェックがつけばアナタの性格はひん曲がっており、
ネガティブ負け組派遣人生を歩んでいます。
□派遣先正社員の作った糞開発ツールはたとえ腐っててもマンセーして使う
□派遣先の人事権のある社員の意見はたとえ間違っていてもマンセーする
□昼食は必ず派遣先の社員と行くべきだ
□自分の仕事で問題が発生しても解決するのは自分の仕事ではない
□派遣先から「いつまでもここで仕事してくださいね(安い金でw)」と言われて嬉しい
□自社で仕事なんてできるわけがない
□派遣労働の問題点の話題が出ると感情剥き出しにして反論する
□派遣労働の問題を指摘する人は嫌いだ
□派遣先には仕事だけでなくプライベートについてもグイグイ引っ張って欲しい
□奢ってくれる派遣先正社員を尊敬する
□自分の月額金額を知らないのは当然だ、単金を聞いてはいけない
□派遣先正社員より自分の生涯収入が低いのは当然だ
□チビは派遣先にかわいがってもらいやすから派遣には有利だ
198:デフォルトの名無しさん
07/07/03 12:33:07
プログラマー板でやれ
199:デフォルトの名無しさん
07/07/03 12:56:45
>>198
文句があるなら派遣を辞めてから言え
200:デフォルトの名無しさん
07/07/03 15:51:08
HaskellでOpenGL使ってる人いる?
201:デフォルトの名無しさん
07/07/03 18:44:55
いらない
202:デフォルトの名無しさん
07/07/03 18:56:57
俺もいらね
203:デフォルトの名無しさん
07/07/03 21:35:56
OpenGLなんて単独で使うもんだ
余計なもんなぞ糞
204:デフォルトの名無しさん
07/07/04 18:55:12
何がいらないのかまったくわからないのですが
205:デフォルトの名無しさん
07/07/04 19:12:14
そうですか
206:デフォルトの名無しさん
07/07/04 19:48:52
>200-202の流れにはワラタけど
>203は全く意味がワカランなぁ・・・
OpenGL単独で一体何ができるってんだか。肝心の絵すら出ないよw
207:デフォルトの名無しさん
07/07/04 20:07:38
OpenGLが自我をもって動き出す
行く先も分からぬまま
208:デフォルトの名無しさん
07/07/04 20:40:07
行く先と言えばLongsPeakって出るの今月だっけ?
ほんとに出るのかな…
209:デフォルトの名無しさん
07/07/04 21:58:55
>>206
ヒント
描画ロジックの分離
210:デフォルトの名無しさん
07/07/04 22:35:51
>>209
…描画ロジックを分離するとOpenGL単独でいけるんだ。
…へェ。
211:デフォルトの名無しさん
07/07/04 22:53:16
俺もOpenGL単独で使いたい!
極意を教えてください!!
212:デフォルトの名無しさん
07/07/04 23:00:40
メンテナンス性を考慮してできるだけOpenGL単独になるように設計するだろ、普通
213:デフォルトの名無しさん
07/07/04 23:20:20
>>200
Haskellみたいな純粋に近い関数型言語ってよく知らないんだけどさ、
OpenGLみたいなStateMachineとの相性って悪くないの?
あれかな、モナドとかいうやつを使ってむにゃむにゃするのかな?
214:デフォルトの名無しさん
07/07/05 00:09:52
>>212
言語との組み合わせでどう?といわれているのに
単独とかわけの分からないこと言ってるから突っ込まれてるんだろ
215:デフォルトの名無しさん
07/07/05 01:05:16
>>214
エスパー乙
216:デフォルトの名無しさん
07/07/05 01:20:37
>>204
HaskellでOpenGL使ってる人
217:デフォルトの名無しさん
07/07/12 00:10:34
ウィンドウとレンダリングコンテキストとフレームバッファがひとつに
くっついているのって扱いにくくないですか?
スレッドにカレントコンテキストを設定するのもグローバル変数のようで
プログラムが複雑になるような気がします。
218:デフォルトの名無しさん
07/07/12 00:40:14
OpenGLのせいではありません。M$に文句言ってください。
219:デフォルトの名無しさん
07/07/12 01:23:50
D3Dはそのへんちゃんと作ってるのがムカつくなw
220:デフォルトの名無しさん
07/07/12 21:19:22
そうか?
D3DでもDeviceは一個しか作れんし、結局グローバル変数にしちゃわない?
デバイスを使用する関数にいちいち渡してたらそっちの方が複雑になるな
あとは次バージョンのOpenGLにご期待ください
221:デフォルトの名無しさん
07/07/12 21:41:58
>D3DでもDeviceは一個しか作れんし
二個以上作れるしデバイスのAPIが複数スレッドからの
呼び出し可能にするオプションもあるんだなこれが。
ゲームはともかくツールとか作る時には未だにwgl*の適切な取り扱いがよーわからん。
222:デフォルトの名無しさん
07/07/12 21:55:33
そうなのか、昔やった時は1個しか作れなかったからそういう物だと思ってた
確かにツールとか複数ウィンドウに描画する場合はコンテキストの管理が面倒だな
設定は独自管理にしてコンテキスト切り替え時に必ず設定するようにするのがいいのかな
しかしマルチコンテキストの場合は何が共有できるのか分かりづらいのが困る…
これが嫌でpbuffer諦めてFBOにしたしな
223:デフォルトの名無しさん
07/07/13 11:40:57
内部で OpenGL を使うライブラリを作成するときに,ユーザーが
別に OpenGL を使っている可能性があるからライブラリの関数を
呼び出すごとにコンテキストの退避,切り替え,復元をしなけれ
ばならないから非効率
224:デフォルトの名無しさん
07/07/14 20:53:03
それはそのライブラリの仕様が悪いだけのような…
225:デフォルトの名無しさん
07/07/15 01:50:28
ライブラリの作り方をずっと考えてきたがうまいやり方が思いつかなかった。
OpenGL をライブラリ内部に隠蔽してユーザと同じスレッドで動かすライブラリ
の場合,ユーザが設定するコンテキストの影響を受けてもいけないし影響を
与えてもいけない。
結局ライブラリの関数に入ったときにこっそりコンテキストを切り替えて
関数から出るときに元のコンテキストに戻す方法しか思いつかなかった。
226:デフォルトの名無しさん
07/07/19 15:32:06
OpenGL 3.0 は D3D10 とほぼ同じ API にしてくれないかな。
そのほうが学習も楽だし,GPU ベンダーも楽になるのに。
227:デフォルトの名無しさん
07/07/19 17:17:03
それはない。何か(考えが)浅いな。
228:デフォルトの名無しさん
07/07/19 17:24:16
Fahrenheitというのがあってな…。
229:デフォルトの名無しさん
07/07/19 17:32:03
>226
今後はしばらくAPIの策定がD3D先行なのは間違いないから
インターフェイスはともかく出来ることはほぼ同じになるだろうね
少なくともD3Dで出来ることはGLでも出来るようになる(速度は知らんが
230:デフォルトの名無しさん
07/07/19 20:57:40
なってくれないと困る
231:デフォルトの名無しさん
07/07/19 23:25:16
OpenGL初心者の者です.言語はjavaを使っています.
修士研究で使用していますが,周りに使っている人がいないので聞けない状況
です.
解析で出た速度ベクトルを,glutSolidConeで描画したいと思っています.
流体なので,複数のベクトルがあり,陰影がついていないと見づらいのです.
for文で描画しようと思っています.
問題があり,glutSolidConeは,デフォルトでZ軸方向を向くようになっています.
これを回転させて,求めたベクトルの方向に向かせたいのですが,分かりません.
Z軸をこの方向に向かせたとして,他の2軸の向きがどうなろうと
かまわないのですが,Z軸に向かせるだけなのにできません.
調べたところクォータニオンというものがあり,便利ということですが,
あまり資料がありません.また,CGが研究の主題なのではなく,
描画自体はシンプルなものなので,ここまでやらなくてはいけないのか
悩んでいます.
良い方法があったらよろしくお願いしま
232:デフォルトの名無しさん
07/07/19 23:35:07
>>231
回転行列の3列目に向かせたい方向のベクトル入れたらええんちゃうのん?
残りの2列は直交するように適当に
233:デフォルトの名無しさん
07/07/19 23:42:29
それは,glRotatefを使用しない方法でしょうか?
詳しくないものですいません.
234:デフォルトの名無しさん
07/07/19 23:45:39
>231
四元数でもいいけど、glMultMatrix()使うのが分かりやすいかと。
Z軸が (x, y, z) の方向を向いて欲しいなら、
GLfloat m[16]={x0,x1,x2,0, y0,y1,y2,0, x,y,z,0, 0,0,0,1};
glMultMatrixf(m);
(glutSolidCone...)
て感じ。Cしか知らないので自分で適当にJavaに翻訳してね。
あ、事前に(x0,x1,x2)と(y0,y1,y2)と(x,y,z)は互いに直交するように
かつ正規化されているように設定する必要がありますヨ。
235:デフォルトの名無しさん
07/07/20 00:04:27
ありがとうございます.
調べてやってみたいと思います.
>234
あ、事前に(x0,x1,x2)と(y0,y1,y2)と(x,y,z)は互いに直交するように
かつ正規化されているように設定する必要がありますヨ。
の部分がはっきりしないのですが,
(x0,x1,x2)と(y0,y1,y2)はどういったベクトルなのでしょうか?
・向かせたい方向(x,y,z)
・直行するベクトル→(x0,x1,x2)と(y0,y1,y2)は
(x0,y0,z0),(x1,y1,z1)と解釈
でよろしいでしょうか?
かつ,(x,y,z),(x0,y0,z0),(x1,y1,z1)はそれぞれ正規化されたベクトル
ただし,今回は(x0,y0,z0),(x1,y1,z1)は適当に与えればよい.
でよろしいでしょうか?
236:デフォルトの名無しさん
07/07/20 00:13:51
>234
教えていただいたことで分からない点がもう一つありました.
仕様が違うのかもしれませんが…
「glMultMatrixf(float[],int)は(float)に適用できません」と出てしまいました.
引数で,int型のある数が必要らしいのですが,知っていれば教えていただけませんか?
237:デフォルトの名無しさん
07/07/20 01:10:16
>235
座標変換前のx軸とy軸が座標変換後に向く方向、って意味で(x0,x1,x2),(y0,y1,y2)って
名前にしましたけど、かえって分かりづらかったですか。w
まぁ、名前なんて(x0,x1,x2)だろうが(x0,y0,z0)だろうがどうでもいいんで気にしない方向で。
要は、座標変換後もxyz軸が直交して欲しいなら三つのベクトルを直交させないといけないし、
また座標変換後のxyz軸の大きさが変わらないで欲しいなら三つのベクトルが正規化されてないと
いけないわけです。GLと関係無い、数学の話ですね。
glMultMatrixf()の二番目の引数ってなんだろ。Cにはそんなの無いんですが。
てかAPIのリファレンスとかwebで調べれば良いだけの話では。
238:デフォルトの名無しさん
07/07/20 01:25:37
>237
分かりました,ありがとうございます.
3次元の座標変換というものに慣れていないので,質問しました.
調べてみればみるほど,数学の話になるので仰るとおり理解するには
数学的にしっかり理解しなければいけないようです.
APIの方も見ようと思います.
ありがとうございました.
239:デフォルトの名無しさん
07/07/20 16:00:04
>238
改めて考えてみたら、glMultMatrixを使うのは無駄多いかも。
要するにz軸(0,0,1)を任意の方向(x,y,z)に向けられればいいわけだから・・・
Vz=(0,0,1)→V=(x,y,z)
回転軸Vr(rx,ry,rz)は
Vr = Vz x V (外積)
回転角度aは
a = arccos(Vz・V) (・は内積、Vは単位ベクトルとする)
このVrとaが、そのままglRotateの引数に使える、の、かな。
Vz = (0,0,1)を入れて具体的に計算すると、
Vr = (-y, x, 0)
a = arccos(z)
これを、速度ベクトル一個ずつに対応して保存しておけば、
描画するときにglRotate(a, Vr.x, Vr.y, Vr.z)でいけるはず。
ただしGLの角度表現はradじゃなく度なので注意。
あとV(x,y,z)がz軸に平行なときは計算が別になるけど、ま、それは分かるでしょ。
240:デフォルトの名無しさん
07/07/20 22:22:24
>236
2 番目の引数は配列のオフセット。
C → glMultMatrixf( m + 10 );
Java → gl.glMultMatrix( m, 10 );
241:デフォルトの名無しさん
07/07/21 00:03:45
>>239
直接基底作ってglMultMatrixのほうが明らかに計算量が少ないと思うが・・・
242:デフォルトの名無しさん
07/07/21 01:25:26
昨日質問した者です.
>239
なるほど,そういう方法もあるんですね.glRotateの引数には,1.0fか0.0fを
入れる方法しか知りませんでした(汗)
>240
オフセットですか.APIを見ても???という感じでしたが,オフセットで調べたいと
思います.
みなさんありがとうございます.諦めかけていましたが,なんとかなりそうです.
243:デフォルトの名無しさん
07/07/21 02:48:34
>>241
>glMultMatrixのほうが明らかに計算量が少ない
そうでもない。
・パラメータの転送量が多い
・(OpenGL内部での)逆行列計算が大変
てことで、glMultMatrixは負荷が大きいよ。
対してglTranslate,glScale,glRotateは逆行列の計算が速い。
ま、自分ではベンチとって比べてみたことは無いけど。一般的には、
MultMatrixを使うよりはTranslate/Scale/Rotateを使うべきと言われてるね。
それに事前の計算量もメモリ消費量も、このケースでは
234の方法 > 239の方法 だと思うけど・・・。
244:薄汚い派遣の国、日本
07/07/22 17:53:13
最近、職場で「出戻り寄生派遣」という言葉が囁かれています。
派遣契約を切られたにもかかわらず「次の派遣先でも切られてしまって生活できません」
などと 言って泣き落としで現場責任者に一切話がないまま再契約した派遣のことです。
今月初め、半年前に切った派遣が出社してきてマネージャーも含めみんなびっくりしました。
影でコソコソ偉い人に泣きついて再契約したそうです。同じ部署の人には黙って・・・
そんなことまでして自宅の近くの派遣先にこだわって人間として恥ずかしくないのですか。
派遣でスキルアップ、派遣で収入アップとか言うなら一箇所にしがみつかず
複数の会社を渡り歩いてください。
ひとつの会社で派遣向けの単調な仕事をしていたらスキルアップなんてありえないでしょう。
身分不相応な商品のローンを払うために派遣だと当然足りない収入は親にも寄生して、
いつ切られるんじゃないかとビクビクしながら人事権のある人間とだけ仲良くし、
契約終了を通知されれば泣き落とし。悲惨な人生ですね。
氏んだほうがいいんじゃないですか。
245:デフォルトの名無しさん
07/07/26 14:28:32
XPだとうまく動いてたプログラムが Vista だと glBindTexture での
テクスチャの切り替えがうまくいかねぇ・・・・
ググっても同様の症状は出ないので自分のコードのどこかが
行儀悪いんだろうが何がいけないのやらさっぱり・・・ orz
246:デフォルトの名無しさん
07/07/26 20:39:33
とりあえずOpenGL-D3D Translatorで動かしてみたら?
247:デフォルトの名無しさん
07/07/26 23:59:46
【派遣ネガティブ根性チェック】
3つ以上、チェックがつけばアナタの性格はひん曲がっており、
ネガティブ負け組派遣人生を歩んでいます。
□派遣先正社員の作った糞開発ツールはたとえ腐っててもマンセーして使う
□派遣先の人事権のある社員の意見はたとえ間違っていてもマンセーする
□仕様とは正社員から口伝されるものだ
□耳で聞いた仕様を正確に覚えていないのは自分の責任だ
□昼食は必ず派遣先の社員と行くべきだ
□自分の仕事で問題が発生しても解決するのは派遣の仕事ではない
□自社で仕事なんてできるわけがない
□派遣労働の問題点の話題が出ると感情剥き出しにして反論する
□派遣労働の問題を指摘する人は嫌いだ
□派遣先には仕事だけでなくプライベートについてもグイグイ引っ張って欲しい
□奢ってくれる派遣先正社員を尊敬する
□自分の月額金額を知らないのは当然だ、単金を聞いてはいけない
□派遣先正社員より自分の生涯収入が低いのは当然だ
□チビは派遣先にかわいがってもらいやすいから派遣には有利だ
248:デフォルトの名無しさん
07/07/27 00:05:24
>>246
ども。試してみます。
249:デフォルトの名無しさん
07/07/27 09:52:21
>>245
ここにVistaでOpenGLを使う時の注意点があるけどどうだろう
URLリンク(www.opengl.org)
Aeroを使ってたら切って試してみるといいかもしんない
250:デフォルトの名無しさん(245)
07/07/27 10:40:19
245ですが原因わかりました。-_-;..
glBindTexture でテクスチャを切り替える時に、XPだと、
glBindTexture( GL_TEXTURE_2D, テクスチャ1 );
/* テクスチャ1有効 */
glBindTexture( GL_TEXTURE_2D, テクスチャ2 );
/* テクスチャ2有効 */
とダイレクトにバインドして問題ないんだけど、
Vista の場合、
glBindTexture( GL_TEXTURE_2D, テクスチャ1 );
/* テクスチャ1有効 */
glBindTexture( GL_TEXTURE_2D, 0 );
glBindTexture( GL_TEXTURE_2D, テクスチャ2 );
/* テクスチャ2有効 */
glBindTexture( GL_TEXTURE_2D, 0 );
と、名無しテクスチャに戻してやらないと他のテクスチャにバインドし直せなかったです。
うーん・・・ 赤本(原書第5版)の glBindTexture のサンプルコードは上の書き方だったけど
この辺何か文献でてましたっけ。 勉強が足らんなぁ・・・
>> 249
サンクス!!
OpenGL描画中にGDIはいじってないので大丈夫そうです。
自分の元のコードが Aero の On/Off に関わらず発症すること、
上記の修正をして Aero の On/Off に関わらず修正されたことを確認しました。
以上、お騒がせしてすんませんでした・・・・ orz
251:デフォルトの名無しさん
07/07/27 11:06:45
>>250
BindTextureに0を指定することって普通無いと思うが、不思議な現象だな
まだVista用のグラフィックドライバがバグってるってだけかもしんないね
252:デフォルトの名無しさん
07/07/27 16:03:10
おいらンとこではBindTextureで0をバインドしなくてもVistaで普通に動いてるよ。
てか今まで特に不具合は出てないな。
253:デフォルトの名無しさん
07/07/27 16:32:41
>>250
定番だけどドライバを更新。もうやってそうだけど。
>>251
無名のテクスチャを指定するときに0を指定するんじゃなかったかな。
254:デフォルトの名無しさん
07/07/27 18:17:26
Vista標準のドライバを使っているといったら、なぐる
255:デフォルトの名無しさん(245)
07/07/29 08:31:17
>>254
とはいえ、標準ドライバでも最低限まともに動くようになってないとね・・
なんせ「標準」ですからね・・
>>252
ですよねぇ。自分のOpenGL作法がおかしいんだろうなぁとは思うんですが、
テクスチャ以外は問題ないし、毎回 gllTexImage2D() する分にも問題ない。
glBindTexture だけが思うように動かない。謎です。
みなさんどもありがとです。m(_ _)m
256:名無しさん@そうだ選挙に行こう
07/07/29 13:16:20
うちのプロジェクトでは、Vista添付のドライバでOpenGL動かしたら、
WindowsXPのベンダー提供ドライバ時の約6%しか、速度がでなかった。
Vista対応ドライバを入れると、解決した。
よって、Vistaの添付ドライバは全く信用していない
257:名無しさん@そうだ選挙に行こう
07/07/29 13:37:48
遅いのはD3Dへのtranslatorだからってだけの話
信用云々とかあふぉくさ
258:デフォルトの名無しさん
07/07/30 01:13:23
全然詳しくないので質問させてください。
いつも仕事中にWebばかり見てる派遣クンが
「OpenGLがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」
と言っています。
彼のOpenGLプログラムが動かないのを調べるのは誰の仕事なのでしょうか?
259:デフォルトの名無しさん
07/07/30 01:15:03
まともに論破する技量も無いお前の仕事
260:デフォルトの名無しさん
07/07/30 01:18:15
こういうバカを論破しようとチャレンジするなんて尊敬するよ
俺なら論破以前に派遣契約を切るからな
261:デフォルトの名無しさん
07/07/30 01:23:48
それスクリプト
262:デフォルトの名無しさん
07/07/30 01:32:37
>>259-260
論破しようにもそういう奴って話通じないだろ
「僕は言われた通りにやりました!何で僕が調べないといけないんですか!」
なんて言われたひにゃ俺ならマジギレしそう
263:デフォルトの名無しさん
07/07/30 01:50:00
>>262
話通じない奴が居るって時点でお前も話通じなそうだな
264:デフォルトの名無しさん
07/07/30 01:57:43
>>263
日本語をしゃべってれば話が通じるなんて考えは甘いよ。
265:デフォルトの名無しさん
07/07/30 02:04:33
>>263
お前ずいぶん恵まれた環境で仕事してるんだな
266:デフォルトの名無しさん
07/07/30 03:06:58
マ板池
267:デフォルトの名無しさん
07/07/30 05:45:57
>>258は、マルチ
268:デフォルトの名無しさん
07/07/30 07:02:50
契約内容見直せよ。
269:デフォルトの名無しさん
07/07/30 09:20:10
258はDirectXスレでも単語が変わっただけの同じのみたな
270:デフォルトの名無しさん
07/08/04 19:23:43
MacでOpenGLやりたいんだけどXcodeでプログラミングすれば平気?
271:デフォルトの名無しさん
07/08/04 19:28:32
>>270
XCode 使っても良いけど、↓これ見ておけば悩み無用。
URLリンク(www.wakayama-u.ac.jp)
272:デフォルトの名無しさん
07/08/04 23:02:22
CocoaでやんのかCarbonでやんのか知らんがまぁがんばれ
273:デフォルトの名無しさん
07/08/05 23:56:10
今日から始めたんだが解説サイトとかすごく少なくて不安…
日本語で基礎からガッチリ固めたかったらあの高い赤本しかないの?
せめて5000円以下でないだろうか
274:デフォルトの名無しさん
07/08/06 00:13:13
>>258
人材配置を見直してもらうか、仕事振ってるマネージャーを変えてもらえ
275:デフォルトの名無しさん
07/08/06 11:39:09
>>273
学生なら学校の図書館とか、あるいは市町村の図書館でもあたってみては。
無いかもしれんが。
英語でよければ古い版の赤本を無料で読める URLリンク(www.glprogramming.com)
276:デフォルトの名無しさん
07/08/06 16:11:22
やはり英語か…
覚悟きめてがんばるわ
277:デフォルトの名無しさん
07/08/06 20:52:07
古い赤本はほんとうに古いから参考になるかどうか…
図書館は無ければリクエストしてみるといいかも
でも入るまでかなり時間かかるかな
278:デフォルトの名無しさん
07/08/06 21:04:40
日本語の赤本もようやっと原著第5版になってるしね。
英語で格闘する労力と13k円の出費のトレードオフを考えてオレは買った。>赤本
279:デフォルトの名無しさん
07/08/06 21:09:00
昔の赤本(初版)はもってるんだけど、最近のとどこが違うのでしょうか?
280:デフォルトの名無しさん
07/08/06 21:10:38
図書館てOpenGLみたいなマニアな(?)専門書って置いてるものなの?
281:デフォルトの名無しさん
07/08/06 22:12:54
比較的メジャーなマニア本だからな。
282:デフォルトの名無しさん
07/08/06 22:42:51
>>279
Amazon.co.jp: OpenGLプログラミングガイド 原著第5版: 本: OpenGL策定委員会,松田 晃一
URLリンク(www.amazon.co.jp)
> ■OpenGL バージョン1.5 で追加された以下の新しいコア機能:頂点配列のバッ
> ファオブジェクトへの格納/遮蔽問い合わせ/シャドウマッピング用のテクス
> チャ比較関数の追加/トークンの更新
>
> ■OpenGL バージョン2.0 で追加された以下の新しいコア機能:シェーダ記述言
> 語の追加/プログラマブルシェーダからの複数のカラーバッファへの異なる色の
> 出力/テクスチャマップに関する2 のべき乗のサイズ制限の緩和/テクスチャ
> マップされた点スプライトのレンダリング/前面と背面ポリゴンでのステンシル
> 処理の分離
>
> ■バグ修正
だそうです。
OpenGL1.5とOpenGL2.0についての追加と、訳の見直しが行われている模様。
俺もほしい
283:デフォルトの名無しさん
07/08/06 23:10:14
第2版までは翻訳業者が訳してたから読みにくかったね
284:デフォルトの名無しさん
07/08/06 23:29:29
>>279
・より赤くなった
・1,000円高くなった
285:デフォルトの名無しさん
07/08/07 00:20:48
不覚にも笑ってしまった
しかしせめて8000円ぐらいに…
286:デフォルトの名無しさん
07/08/07 02:27:06
>>284
1.5倍くらいは速くなってんのかな
287:デフォルトの名無しさん
07/08/07 02:39:49
> 原著第5版
テクスチャへの描画とか、実際に使う際の普遍的なチップスとかって
載ってますのん?
そういうのは、Game Programming Gems買えって事かな?
(そろえたら、赤本よりたけええけどよぉおぉ)
288:デフォルトの名無しさん
07/08/07 02:52:53
Gems にそんなの載ってたっけ
289:デフォルトの名無しさん
07/08/07 03:18:43
>>287
テクスチャへのレンダリングにはGL_EXT_framebuffer_objectを使う。
この拡張機能はOpenGL 2.0の仕様に含まれていないから当然赤本には載ってない。
290:デフォルトの名無しさん
07/08/07 22:16:01
ああ、使用に含まれてない=載ってないか・・・
そうだよなあ
291:デフォルトの名無しさん
07/08/07 22:51:14
赤本は昔からextensionには触れないからね
292:デフォルトの名無しさん
07/08/13 18:58:10
The OpenGL ARB officially announced OpenGL 3
URLリンク(www.opengl.org)
293:デフォルトの名無しさん
07/08/19 23:15:27
よしはる別スレに今も登場中
294:デフォルトの名無しさん
07/08/19 23:26:55
スレ違い、こっちでやれ↓
OpenGL 2.0 専用スレ
スレリンク(tech板)
295:デフォルトの名無しさん
07/08/23 18:42:39
カーマック大失敗w
URLリンク(www.technobahn.com)
296:デフォルトの名無しさん
07/08/23 18:48:33
wwwwwwwwwwww
297:デフォルトの名無しさん
07/08/24 05:32:42
ざまぁwww
298:デフォルトの名無しさん
07/08/24 19:51:37
すみません。
OpenGLでなくGLSLでVertex texture fetchをしたいのですが、
テクスチャを取ってくるときの関数はフラグメントシェーダと同じように、
texture2Dやtexture2DRectを使うのでしょうか?
299:デフォルトの名無しさん
07/08/24 21:08:31
>>298
確かそうだったと思う。
300:デフォルトの名無しさん
07/08/26 01:18:20
GeForce8600GTにしてからたまに描画が異様に遅くなるんですが、似たような症状に遭って解決できた方いませんか?
VBOにデータ置いても直らず、シェーダやテクスチャはおろか、ライティングすらしてないモデルでも再現。
WindowsXPで、ドライバは最新(162.18)とベータ版(163.44)両方で発症。
GeForce6000系や7000系では問題は起きませんでした。
プログラムを何度も起動しなおしたら上手くいくこともあるのですが…。
301:デフォルトの名無しさん
07/08/26 01:38:33
>>300
熱暴走してないか疑え
302:デフォルトの名無しさん
07/08/26 21:53:14
盲点でした、が、マシン起動直後でも起きるので、単純に熱だけが原因ではなさそうです。
あとDirectXのゲームとかでは同様の問題は起きず。
# もう検証疲れた…。ドライバが腐ってるせいってことにしたいorz
303:デフォルトの名無しさん
07/08/26 21:58:46
VBOに書き込む際のバッファオーバーランとか
304:デフォルトの名無しさん
07/08/26 22:09:36
glInterleavedArray()/glVertexPointer()系 + VBO使用/未使用の組み合わせ、
glBegin()~glEnd()、の5パターンで同じモデルを描いてみましたが、全てで発症しました。
モデルは立方体を1000個程描いてるだけです。
305:デフォルトの名無しさん
07/08/26 22:12:00
とりあえずプログラムうp
306:デフォルトの名無しさん
07/08/26 22:15:40
>>305
ちょっと公開したくない部分があるんで、
問題が起きる最小限のプログラム用意してみます。
307:デフォルトの名無しさん
07/08/26 22:21:12
お、えらい。
大抵公開できない部分があるのでそこを何とかお願いしますとかが多いのに。
308:デフォルトの名無しさん
07/08/27 01:40:12
URLリンク(a-draw.com)
DLKey: 0000
急拵えなんでバグってたらすみません。
グラフの単位はミリ秒で、上限20msです。
good.jpgは正常時、bad.jpgが異常に遅いときのスクリーンショットです。
これ作りながら検証したところ、どうも全体的な負荷が高い時程発症確率が上がってる感じがします。
立方体1000個にしてシェーダ使うと9割以上発症したり。
しかし500個シェーダ無しでも稀に遅くなったりで、根本的な対処法は依然分からず。
309:デフォルトの名無しさん
07/08/27 02:23:56
>>308
解凍できないのは俺だけか?
310:デフォルトの名無しさん
07/08/27 03:34:28
>>309
とりあえず解凍はできたぞ。
311:デフォルトの名無しさん
07/08/27 11:02:23
>>309
安心しろ俺もだ
312:デフォルトの名無しさん
07/08/27 11:40:18
unzip.dllが古いんじゃね
313:デフォルトの名無しさん
07/08/27 12:07:05
WindowsXP標準の圧縮フォルダで展開できるZIP形式でお願いします。
314:デフォルトの名無しさん
07/08/27 17:17:02
そのぐらいじぶんでやれよ
315:デフォルトの名無しさん
07/08/27 19:33:23
>>308
解凍できません
316:デフォルトの名無しさん
07/08/27 20:33:59
そのままで自動ダウソすると失敗するぽいお
リンク押してダウソしたら解凍できるんでないか
317:デフォルトの名無しさん
07/08/27 20:47:07
unzip コマンドで普通に展開できたよ
318:デフォルトの名無しさん
07/08/29 21:25:44
>>308
うちのgeforce8800gtxでもbad.jpgと同じぐらいのスピードになった。
GLexpertから何もメッセージがでてない(標準出力は起動時につくられるstdout.txtに出力されるんだよね?)
っぽいし、ソースコードをざっと読んだけど原因はよくわからなかった。
そういえば、geforce6000, 7000で毎framePBOにデータを送るようなプログラムを書いていたときに
数秒後に急に倍近くfpsが上がることがあった。
ドライバが消費電力を低くするために裏で負荷に合わせて使用するシェーダの数を調整したりしてるのか?
教えてエロ詳しい人
319:デフォルトの名無しさん
07/08/30 21:39:21
上のに関連するが、Vista+GeForce8000だとむちゃくちゃ遅くならない?
うちだと>>308のbad.jpgより遅くなってる。
URLリンク(d.hatena.ne.jp)
これとか見ると少なくとも7000だと問題ないみたいだが。
8000はまだOpenGLの実装が不完全と見た方がいいのかね。
320:デフォルトの名無しさん
07/08/31 11:21:10
Vista
yaneurao
321:デフォルトの名無しさん
07/09/01 13:24:30
>>308
ずっとこんな感じで推移。
URLリンク(gamdev.org)
たまにぐっと負荷がかかるようだが、見た目はスムーズ
たぶん常駐が多いせいだと思う
環境は、
CPU: Pen4 2.6GHz
メモリ: 1.5GMB
GPU: Sapphire RADEON X700
今時だと、さすがにプア環境でアレだが
しかし、きれいやねー参考にさせていただこう
322:デフォルトの名無しさん
07/09/01 13:27:04
メンゴ書き忘れ
OS: Windows XP SP2 32bit
GPU DRIVER: ATI ver 8.342.0.0
323:デフォルトの名無しさん
07/09/05 10:52:26
URLリンク(www.inside-games.jp)
すげー
324:デフォルトの名無しさん
07/09/05 11:09:26
OpenGL 3.0て具体的にはどんなんになるんだ。
325:デフォルトの名無しさん
07/09/05 13:29:05
あれだろ
コンセプトだけ言って、具体的には何もできてないっての
326:デフォルトの名無しさん
07/09/05 16:55:37
>>325
それは、もまえ、OpenGL自体を馬鹿にしているのかw
327:デフォルトの名無しさん
07/09/06 00:03:47
むしろ、交差とか法線計算とかエッジ検出とか・・自動でやってくれるようにはならんかね。
楽したいんじゃ。ワシャ。
この前セレクション出来るようになったばっかなのに(^ω^;;)
328:デフォルトの名無しさん
07/09/06 02:36:51
>>308
nVidiaのドライバの設定にあるtheaded optimizationがautoになってると遅くなったり速くなったりするようだ。
onにすると常に速く、offにすると遅くなるようだ。
このオプションはマルチコアCPUで複数スレッドを使って高速化するかどうかのオプションらしい。
fpsが60以上になるとだんだんとCPU側がボトルネックになってきてるんかな。
>>327
そういうのはwild magicとかなんとかライブラリを使えばいいんじゃない?
329:308
07/09/06 08:33:45
>>328
うお、ありがとうございます。
ただ、うちだとoffにすると常に速くなるようになりました。
(FPS60超える/超えない関係なく)
なんかこれ不気味なオプションですね…。
330:デフォルトの名無しさん
07/09/23 10:52:18
URLリンク(www.4gamer.net)
331:デフォルトの名無しさん
07/10/06 23:02:51
glGenTextures()してgluBuild2DMipmaps()した画像のテクスチャが、
ウィンドウがリサイズされたときにSDL_setVideoMode()すると画像が無くなってしまうのですが、仕様ですか?
リサイズされたときビューポートをウィンドウと一致させたくて毎回SDL_setVideoMode()しているのですが、
glViewPort()を使ったほうがいいのでしょうか?
332:デフォルトの名無しさん
07/10/06 23:26:38
カラーマップの使い方がいまいちわかりません
おしえてください
333:デフォルトの名無しさん
07/10/06 23:40:53
>>331
ウインドウのサイズが変わるたびにglViewportするべき
だと俺は考える
334:デフォルトの名無しさん
07/10/07 02:53:26
リサイズでビューポートとprojection matrix設定しなおしてるんだけど、
そうするとディスプレイリストが無効になることがあります。
リサイズのときにディスプレイリストを消して作り直すことにして回避したけど、
これはそういうものですか? それともどっかおかしい?
335:デフォルトの名無しさん
07/10/07 03:19:00
>>334
俺の経験上、ウインドウのリサイズでディスプレイリストを作り直すってことは無いな…
glRasterPosとか使ってるのかな??
>>331ならglTexParameterのGL_TEXTURE_MIN_FILTERなり、GL_TEXTURE_MAG_FILTER
なり
と思ったりするけど、どうなんかなぁ~
336:デフォルトの名無しさん
07/10/07 05:05:44
ウィンドウ全体を FBO あるいは pBuffer でテクスチャに取り込んで、自前でダブルバッファリングをしようと考えています。
しかし、もしウィンドウのサイズが最大テクスチャサイズを超えてしまうとどうしようもありません。そういう場合どうすればいいのでしょうか?
337:デフォルトの名無しさん
07/10/08 22:48:26
>>336
いくつかのテクスチャに分割するしか無いだろうな
338:デフォルトの名無しさん
07/10/08 23:09:11
glTexImage2Dでは2^n乗のサイズしか指定できませんが、
gluBuild2DMipmapsではどんなサイズでも指定できることに関して、わからない点があります。
ミップマップは使う必要がない場合、例えば100*200の画像をglTexImage2Dでテクスチャ化しようとしたとします。
ここから128*256というサイズのテクスチャを作るところまではいいのですが、
そうした場合、100*200に対してはみ出ている部分も含めて、128*256のテクスチャがopenGLに渡されますよね。
そうすると、glTexCoord2fに指定する値は、(0~100/128) * (0~200/256) としなければ、
こっちが広げてやった余白(?)も表示されてしまいます。
しかし、gluBuild2DMipmapsで100*200を指定してやった場合は
glTexCoord2fに指定する値は、(0~1) * (0~1) でうまくいきます。
これはどういうことですか?glTexImage2Dを使ってテクスチャを作った後、
任意のサイズの元画像にたいして、glTexCoord2fに指定する値を(0~1) * (0~1) で操作できるようにする方法を教えてください。
339:デフォルトの名無しさん
07/10/08 23:17:39
gluBuild2DMipmapsは任意のサイズの元画像を2^n乗のサイズに拡大縮小する
URLリンク(www.opengl.org)
>Initially, the width and height of data are checked to see if they are a power of 2.
>If not, a copy of data (not data), is scaled up or down to the nearest power of 2.
340:デフォルトの名無しさん
07/10/09 01:19:40
2.0以降ならgluBuild2DMipmaps使わんでも
非2^nのサイズ扱えるし、ミップマップも生成してくれる。(パラメータの設定次第
341:デフォルトの名無しさん
07/10/09 12:35:09
>>331,334
Windows上のSDLだとsetVideoModeするとOpenGLのコンテキスト作り直される
設定やらディスプレイリストやらテクスチャは全部作り直す必要があるぞ
Windows以外ではどうなってるかわからん
342:デフォルトの名無しさん
07/10/09 15:28:10
>>339
てことは内部で既に縦横比が変更されてるんですね。ありがとうございます。
>>340
>(パラメータの設定次第
調べてみます。
>>341
ありがとうございます。やはりそうなんですね。ウィンドウリサイズにはglViewportだけ動かすようにしました。
343:デフォルトの名無しさん
07/10/11 13:21:30
>>341
ゲッ!
もしかして、OpenGLで、DirectDraw使って全画面表示やってた時に、
環境によって、うまく動かなかった(画面真っ黒)のは、もしや、これのせいだったのか?
Geforceでは、うまく動いてたからなぞだったんだが・・・
344:デフォルトの名無しさん
07/10/15 00:44:43
スキンメッシュについて学びたいんだけど、
いいサンプルとかない?
345:デフォルトの名無しさん
07/10/16 23:54:45
OpenGLを使って作った画像の情報が欲しいんですが
キャプチャ以外で画像の情報(RGBなど)はとってこれるんでしょうか
346:デフォルトの名無しさん
07/10/16 23:59:45
glReadPixels
347:デフォルトの名無しさん
07/10/17 02:42:05
>>346
ありがとうございます。調べてみました。
いろんなサイトのサンプルを見てみたのですが
具体的にどのようにプログラムすればいいのかどうしてもわかりません・・
(出てきた画面をキャプチャしたいんですが、どうすればいいんでしょうか)
348:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/10/18 00:50:11
オフスクリーンの DIB にOpenGLで描画してビットマップ参照しれ
350:デフォルトの名無しさん
07/10/18 16:46:28
>>348
ありがとうございます、解決できました
351:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/10/20 17:44:18
要はこういうことをやりたくて
URLリンク(home.student.uu.se)
image planeのところをどうやったらいいのか四苦八苦しています
353:デフォルトの名無しさん
07/10/20 17:52:30
3次元テクスチャを並行投影ってどういう状態?
そのコードだと、サイコロの各表面に2次元テクスチャを貼り付けてるのと大差ない気がするが。
3次元テクスチャの各表面を貼り付けてるだけで、内部は描画されていないが、そのへんは理解してるか?
354:デフォルトの名無しさん
07/10/20 18:13:17
その辺は理解しています。
サイコロの各面から、内部に向かってレイを放ってテクスチャのピクセル色を決定して(フラグメントシェーダ)
それを貼り付ける、といったことをしようとしてこうなっています。
URLリンク(www.uploda.org)
これは0~64までの3次元テクスチャに
4~60まで、テクスチャ在りにしたものを、45度程度傾けたものなのですが
テクスチャがある部分を内側になればなるほど、緑~赤のグラデにしたものです。
6面全体に一部分だけが表示されてしまって、立方体の形状が出てこなくて…
355:デフォルトの名無しさん
07/10/20 22:57:00
>>351
各頂点にテクスチャ座標の0と1は渡ってるよ。
ActiveTextureは余計な気がするけどまぁいいか。
356:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/10/20 23:30:55
よく知らないんだけどさ、文法上はforとか記述できるとしても、
実際はループ回数やテクスチャフェッチ回数には上限があるんじゃないの?
最新のグラフィックスカードを使えば、実行結果が変わったりとかー。
358:デフォルトの名無しさん
07/10/20 23:33:57
吐き出されているエラーが明らかにハードウェア側のことなのでそうだと思うのですが
このエラーに関する記述がWEB上に4つほどしかなくて…
URLリンク(developer.nvidia.com)
このエミュレーターでどうにかなるんじゃないか?と英語であったのですがそれを起動しても変わらず
nvidiaのカード買うしかないのか…お金ないや
359:デフォルトの名無しさん
07/10/21 01:58:33
358ですが、シェーダを弄くって
テクスチャの投影部分ではなく、シェーダーで反復回数が足りないせいだと判明しました。
原因はAtiだからだと思います。for文をまわすたびにレジスタが使用されているのか、、、
360:デフォルトの名無しさん
07/10/27 04:03:52
どのprofileのフラグメントシェーダを使うかにもよるがfor文はループ展開されてたりするよ。
何をしようとしているのかよくわかってないけど、GPUレイトレで3次元テクスチャをボリュームレンダリングするなら、
何故画面の各ピクセルからレイを飛ばさないの?
361:デフォルトの名無しさん
07/10/27 04:59:27
ATIのカードだとCgでは事実上arbvp/arbfp以外の選択肢がないから
動的なループ、分岐やら新しい技術が使用できないのがきつい、というか終わってるね
最近触ってないけどGLSLだとその辺どんな感じなの?
362:デフォルトの名無しさん
07/10/27 17:15:42
>>360
画面からするとバウンディングボックスとの交差判定が必要で
ものすごい遅くなっていたのです。
実際にarbvp1 arbfp1が選択されていました。
ATIしかない環境でCgを選択したのがマズイのですね…
nVidiaを購入するのに…10万か…お金が。。。ない
363:デフォルトの名無しさん
07/10/27 17:47:04
ATIでもX1000系以降ならGLSL使えるよ
CgでもプロファイルのglslvとglslfでGLSLにコンパイルして使える
…が、使ったことはないしLatestProfileでも出てこないのであんまりお勧めはできないかも
つかGeForceで10万って何買うつもりだよwwww
364:デフォルトの名無しさん
07/10/27 17:50:30
ぁ、ぃぇ
PCそのものを買わないといけなくて、結局10万くらい掛かるっていうことです。
glslv glslfについてちょっと調べてみます
365:デフォルトの名無しさん
07/10/27 18:18:35
glslプロファイルは去年触ったけどnvidiaでは問題なく動くけど
ATIのドライバではコンパイルできないソース吐くから使うのあきらめたな
あれからだいぶ時間たってるからその辺直ってるといいね
366:デフォルトの名無しさん
07/10/27 19:19:53
OpenGL3の続報がなかなか来ないな
367:デフォルトの名無しさん
07/10/28 01:24:13
すいません質問させてください
openglのプログラムのビルドで、error C2381: exit' : 再定義~とエラーが出てしまいます
何かstdlibとglutが関係ありそうなのですが、よくわかりません
解決策がありましたら教えてほしいのですが
368:デフォルトの名無しさん
07/10/28 06:32:34
>>367
includeの順番入れ替えてみ
369:デフォルトの名無しさん
07/10/28 06:54:27
いまさら気づいたんだけどGL関数群の日本語訳manあったんだねぇ・・・orz
URLリンク(man.sourcentral.org)
370:デフォルトの名無しさん
07/10/28 12:42:06
367です
#include<stdio.h>
#include<cstdlib>
#include<GL/glut.h>
にしたら、解決しました
理由はわかりませんが・・・ありがとうございました
371:デフォルトの名無しさん
07/10/30 16:12:14
学校の課題でOPENGL使ってなんか作らないとダメなんだけどいい感じのサンプルない?
インベーダーとかハノイとかルービックとか。。。
誰かおせーて
372:デフォルトの名無しさん
07/10/30 16:53:14
なんだ、まぁ頑張れ。 とにかく頑張れ。
373:デフォルトの名無しさん
07/10/30 17:28:53
>>371
OpenGLはあくまで動かすための道具なんだから基本は自分でできなきゃ
というか、たぶん基礎を調べるための課題だろ
がんばれ
374:デフォルトの名無しさん
07/10/30 17:44:37
GLSLとCgどっちを使うべき?DirectXは使わない.
なるべくハード依存したくないならGLSL?
375:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/10/30 19:17:12
なんでCgを標準にしなかったんだろうな
GLSLをプッシュしておきながら結局撤退した3DLabs死ねよ
377:デフォルトの名無しさん
07/10/30 19:17:53
俺はインテル製はsm2.0に対応しててもfboやarb_fragment_shadow、
アンチエイリアシング、その他諸々が使えないから最初から無視してるな
378:デフォルトの名無しさん
07/10/30 19:22:22
>>375
なるほどCgの方がハードには柔軟ですね
379:デフォルトの名無しさん
07/10/30 23:59:22
RGBで取り込んだ画像データを表示したいのですが
何か関数は用意されてるんでしょうか?
380:デフォルトの名無しさん
07/10/31 01:28:04
glDrawPixels
381:デフォルトの名無しさん
07/11/01 01:17:23
ネットにあるOpenGLのサンプル書いて遊んでいたんですけど,普通に実行できます.
でも3Dデスクトップ効果の Compiz を起動させて実行すると,描画ができません.
窓枠がでなかったり色とかも変だし.
これって一緒には使えないものなんでしょうか?
使えるとすれば何かおまじないのようなものを書かないといけないとかあるんでしょうか?
教えてください.
382:デフォルトの名無しさん
07/11/01 02:00:05
グラボのドライバが最新でも駄目ならVISTAを窓から(ry
383:デフォルトの名無しさん
07/11/01 02:12:53
compizはvistaじゃないから・・・
compiz起動しながらOpenGLのアプリ動かしても
俺の環境では問題ないなー
どのサンプル?
384:デフォルトの名無しさん
07/11/01 09:40:01
板違い
犬糞板池
385:デフォルトの名無しさん
07/11/01 22:08:00
別にここでもいいだろ
386:デフォルトの名無しさん
07/11/02 17:04:12
opengl 3d絵画の初心者用サンプルプログラムが多く置いてあるサイトありませんか?
解説もついているとありがたいです
387:デフォルトの名無しさん
07/11/02 18:46:27
(#^ω^)
388:デフォルトの名無しさん
07/11/02 20:30:16
絵画とはまた斬新な
389:デフォルトの名無しさん
07/11/03 11:33:46
OpenGLで、絵画を書くのって難しいんじゃないの?
そういうシェーダーを書かないといけないような。
水彩シェーダーは、前に見かけた気がするが、
油絵ってみたことないな・・・
390:デフォルトの名無しさん
07/11/03 11:36:45
>>376
3DLabsをせめないで。
すべてにおいて糞なクリエイティブを呪ってください。
391:デフォルトの名無しさん
07/11/03 13:55:14
クリエイティブが3DLabsを駄目にした.
そしてWildeCatは死んだ,あのボードも波乱だよなIntergraphが死んだりして
392:デフォルトの名無しさん
07/11/04 04:53:55
glDisplayFuncで指定した関数で
6000点ほどの頂点を取ってるのですが
起動して描画まではしてくれるのですが動作がとまってしまいます。
何か解決方法はないものでしょうか
393:デフォルトの名無しさん
07/11/04 11:04:59
boxとかじゃなくpointで描画すれば60万点くらいは描けるよ
そういうのじゃないか
394:デフォルトの名無しさん
07/11/05 00:23:50
>>392
>glDisplayFuncで指定した関数で
glDisplayFuncって何。glutDisplayFuncのこと?
>6000点ほどの頂点を取ってるのですが
頂点を取る、って何。意味不明。
>起動して描画まではしてくれるのですが動作がとまってしまいます。
動作が止まる、って何。意味不明瞭。
単に再描画がされないってだけなら、glutPostRedisplay()でも呼んでみれば。
>何か解決方法はないものでしょうか
ある。
「正しい用語を正しい用法で使うこと」 これを必ず守れば良い。
なんでこれが解決方法なのか?の説明は面倒なので省く。
しかし、これを常に守る事を心掛けていれば、技術的な問題のうち半分以上は
君自身で答えを見つけられるはずだ。これはマジな話。
395:デフォルトの名無しさん
07/11/05 00:48:53
Kusakabe(void)論法みたいだが
>>394の言うことは確か。
3D絵画とかじゃ当たらないし、状況を文字よりもキャプったりソース上げた方が確実。
396:デフォルトの名無しさん
07/11/05 04:25:07
void氏は相手のバカの壁より常に一歩外側でしか喋らないからな。
横で見てる分には楽しめるんだが。
397:デフォルトの名無しさん
07/11/05 21:14:48
ということにしたいのですね。
398:デフォルトの名無しさん
07/11/05 21:42:43
そんな感じw
399:初心者
07/11/05 23:33:29
はじめまして。プログラミングのことについて初心者です。
次のことについてどなたか教えていただけないでしょうか。
OpenGL+glutでシミュレーション結果を表示しようとしています。
VC++で作成し、コンパイルエラーはなかったのですが、実行してみると
何も起こらずに"終了にはキーを押してください"というような画面のみでした。
しかるべき場所にそれぞれのライブラリなど置いたつもりですが...
どのような原因が考えられるでしょうか。
400:デフォルトの名無しさん
07/11/05 23:41:43
ソース
401:初心者
07/11/05 23:49:25
すみません、わかりません。
402:デフォルトの名無しさん
07/11/05 23:52:46
その作成したプログラムのソースファイルを見せろという意味だ
403:デフォルトの名無しさん
07/11/06 00:07:18
デバックしても原因分かんないの?
404:デフォルトの名無しさん
07/11/06 00:34:13
GLUTのメインループに入らないで、プログラム終了しちゃってるんじゃないの?
VisualStudioならデバッガが使いやすいし、最低限printfデバッグくらいはするべきだ。
405:デフォルトの名無しさん
07/11/07 01:29:21
>400-402
ふいたw
406:デフォルトの名無しさん
07/11/12 07:43:46
texture座標の自動生成を使うと
その前に使ったglColorの値がtextureの色と混じってしまうんだけど
glColorの値の影響を受けないようにするにはどうしたらいいですか
407:デフォルトの名無しさん
07/11/12 08:42:15
glColor を白色にしとけばいい
408:デフォルトの名無しさん
07/11/12 09:58:58
テクスチャ座標の自動生成とは関係なくて、
単にテクスチャ色とglColorの色が乗算(GL_MODULATE)されてるだけですねん。
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
を実行してやると、テクスチャの色だけが描画されるようになるよ。
409:デフォルトの名無しさん
07/11/12 18:01:14
ありがとー
できました
410:デフォルトの名無しさん
07/11/12 19:31:27
FreeBSD6.2R, Mesa 7.0.1をつかっているのですが
プログラム自体は動くのものの、実行時に
libGL warning: 3D driver claims to not support visual 0x4c
とでるのが気になります
どうすればいいんですかね?
411:デフォルトの名無しさん
07/11/12 20:22:06
該当のglvisualをサポートしてないってだけだからwarningってだけ。
本気でやるならデバイスドライバをハックしてみよう。
もっともgpu側がサポートしてなかったらどうしようもないけどさ。
412:デフォルトの名無しさん
07/11/13 22:18:58
カーマック続報
URLリンク(www.technobahn.com)
413:デフォルトの名無しさん
07/11/13 22:52:54
ほとんど自力というのがまたカーマックらしいな
414:デフォルトの名無しさん
07/11/17 01:05:22
OpenGLの日本語リファレンスマニュアルってどっかでダウンロードできませんか?
本買わないとだめ?
415:デフォルトの名無しさん
07/11/17 01:14:39
駄目
416:デフォルトの名無しさん
07/11/17 01:26:24
やっぱりだめですか。
講座サイト漁ろう。
417:デフォルトの名無しさん
07/11/17 12:20:43
赤本の英語版なら読めたんじゃなかった?公式で
最新かどうかわからんけど
418:デフォルトの名無しさん
07/11/18 00:30:04
たしか読めるのは古い
419:デフォルトの名無しさん
07/11/20 02:49:52
古いのでよければこちらへ。
URLリンク(www.opengl.org) (v1.1)
URLリンク(www.opengl.org) (v1.0)
以前はここで pdf が落とせたような気がするが、今は html 化されてる模様。
420:デフォルトの名無しさん
07/11/20 03:52:33
赤本はともかく、古い青本読むくらいなら最新の仕様書を読んだ本がいいね
421:デフォルトの名無しさん
07/11/20 21:50:04
視点移動したらオブジェクトの一部が画面に現れないことがあるのですが
どうすれば解決できますか?
422:デフォルトの名無しさん
07/11/20 22:33:54
>>421
オブジェクトが入るような視点にする
423:デフォルトの名無しさん
07/11/20 23:02:42
znear,zfar
424:デフォルトの名無しさん
07/11/22 12:07:50
objデータがバカでかいので
視界に入ってる領域だけ読み込んで表示できるようにしたいです
どうすればいいですか><
425:デフォルトの名無しさん
07/11/22 12:27:02
データのフォーマットによるが、視界に入ってない領域を読み飛ばせばいいのでは
426:デフォルトの名無しさん
07/11/22 13:02:58
視界に入ってるかどうかの領域はどうやって決めたらいいんですか><
427:デフォルトの名無しさん
07/11/22 13:13:22
頂点単位ならLookAtとかPerspectiveに渡してるパラメータから視錐台を求めてそこに頂点が入ってるかどうか判別
ポリゴン単位なら視錐台とポリゴンの交差判定
フラグメント単位ならオクルージョンクエリーでも使ったら?
428:デフォルトの名無しさん
07/11/22 13:41:33
ありがとうございます><
>>パラメータから視錐台を求めてそこに頂点が入ってるかどうか判別
>>ポリゴン単位なら視錐台とポリゴンの交差判定
これやるためには、バカでかいデータをメモリに載せないといけない気がするのですが載りません><
視錐台に入る座標をまとめてデータにして、それをファイルポインタで読み込むときに
1頂点読み込み→視錐台内の座標か判定→視錐台内ならメモリに格納
そんな流れになるのでしょうか><
オクルージョンクエリーという言葉初めて聴きました!見てみたら難しそうでした!
429:デフォルトの名無しさん
07/11/22 16:39:36
オクルージョンクエリーは冗談だ。その用途では役に立たんと思うので忘れてくれ
やり方としてはそれでいいが、実際には1頂点ずつやってたら大変だわな
モデルデータを前もって適当に一度にメモリに載せられる範囲に区切っておいて
その範囲と視錐台が重なってるかどうか判定して重なってれば読み込む、
という感じである程度の頂点数を一気に処理した方が速いだろうな
430:デフォルトの名無しさん
07/11/22 16:44:46
モデルデータのバウンディングボックスをあらかじめ計算しておく
431:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/11/22 21:30:14
trans_x、trans_y、trans_zにはその平面上のどこか1点を与えてやればいいんでないの?
回転はよくわかんね
というか平面を描くなら立方体を変形させるより
平面上の4点とかを適当に求めてポリゴンで描いた方が楽だと思う
433:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/11/28 00:22:43
現在3Dゲームを製作中なのですが、学校から持ち帰ったものを家で動かそうとすると
1>fatal error C1900: 'P1' Version '20060201' と 'P2' Version '20050411' が一致しません。
1>LINK : fatal error LNK1257: コードの生成に失敗しました。
というエラーがでてきます。
思い当たる節としては
・「GLee」を入れてみた
これぐらいです。どなたか解決策をお願いします。
435:デフォルトの名無しさん
07/11/28 01:30:12
「動かそうと」具体的に何をどうしたのか
「GLeeを入れる」とは具体的にどのファイルをどこに置いたのか
436:デフォルトの名無しさん
07/11/28 02:02:36
>>434
学校と家のコンパイラのバージョンが違うんでないか
全プロジェクトをリビルドしてみ
437:デフォルトの名無しさん
07/11/28 07:36:28
>>435
「GLeeを入れる」というのは
GLee.cをスタティックライブラリにして追加し
glBindBufferARBなどの関数を使っていることをいいたかったんです。
>>436
リビルドしてみましたが、同じエラーでとまってしまいました。
438:デフォルトの名無しさん
07/11/28 11:35:57
>>434
ググったがVC++の環境がおかしくなってるみたいだな
解決策としてはVC++2005のSP1を入れてみる
ダメならVC++を再インスコ
それでもダメならOSから再インスコするくらいかな
439:デフォルトの名無しさん
07/11/28 21:23:26
>>438
VC++2005のSP1を入れたらなおりました!!!!
課題の締め切りが明日までだったので、本当にうれしいです!!!
今日はこのうれしさをばねに、徹夜でやろうとおもいます。
440:デフォルトの名無しさん
07/11/29 00:44:32
嬉しさをバネにって初めて聞いたww
441:デフォルトの名無しさん
07/11/29 01:54:54
"嬉しさをバネに" の検索結果 約 1,480 件中 1 - 10 件目 (0.39 秒)
URLリンク(www.google.co.jp)
結構出てきて吹いたw
さすがゆとり。
言葉の意味なんて考えたことないんだろうな。
442:デフォルトの名無しさん
07/11/29 02:13:48
嬉しさのときは何て言えばいいの?
嬉しさを追い風にして?
443:デフォルトの名無しさん
07/11/29 02:25:04
こういうの突っ込む奴は言い回しに気を取られて言葉の意味なんて考えたことないんだろうな
444:デフォルトの名無しさん
07/11/29 07:39:58
喜びは 糧に でいーんでねーの。
445:デフォルトの名無しさん
07/11/29 08:44:14
糧にするのも大概はネガティブなものだと思うが。
~をバネには単なる反発、糧には消化して教訓とするって感じじゃないか。
446:デフォルトの名無しさん
07/11/29 12:31:40
名誉返上、汚名挽回を思い出した。
447:デフォルトの名無しさん
07/11/29 14:08:41
嬉しさを肥やしにして
448:デフォルトの名無しさん
07/11/29 20:52:43
喜びなら「さめないうちに」とつなぐのがいいのでないの?
449:デフォルトの名無しさん
07/11/29 21:00:13
確信犯
450:デフォルトの名無しさん
07/11/30 04:09:52
>>449
さすがにその誤用をつっこむやつは最近なかなかいないが。
451:デフォルトの名無しさん
07/11/30 10:05:47
役不足
452:デフォルトの名無しさん
07/11/30 22:52:52
役不足だと言っているッ!
453:デフォルトの名無しさん
07/11/30 23:18:12
流れ断ち切って悪いけど質問。
モデルビューの行列から視点、注視点、アップベクトルを求めたいんだけどいい方法無い?
gluLookAtの逆バージョンみたいなの
もう1つ質問で
頂点にウェイトをつけたいんだけど、OpenGLだとどうやってやるんだ?
454:デフォルトの名無しさん
07/12/01 00:26:46
>>453
モデルビュー行列の左上3×3の各行が
それぞれ右方向ベクトル、上方向ベクトル、逆視線ベクトル。
モデルビュー行列の逆行列の4列目が視点。
のような気がする。
455:デフォルトの名無しさん
07/12/01 01:52:18
>>453
>頂点にウェイトをつけたいんだけど、OpenGLだとどうやってやるんだ?
いまどきならシェーダを書く
456:デフォルトの名無しさん
07/12/01 10:37:09
>>454
どうせ逆行列求めるなら、1~4列目がそれぞれ
右、上、逆視線、視点
でいいと思ったw
あと頂点ウェイトは
glVertexWeightfEXT
かな。
457:デフォルトの名無しさん
07/12/01 11:58:24
ARB_vertex_blend拡張はATIにしかなく
EXT_vertex_weighting拡張はNVIDIAにしかない
頂点ブレンドは汎用的な方法があんまりないから
シェーダでやるのが一番無難だろうな
458:デフォルトの名無しさん
07/12/01 13:32:05
>>457
NVIDIAもARB_vertex_blend対応してるぞ。
459:デフォルトの名無しさん
07/12/01 14:20:37
>>458
まじか
うちのGeForce8600GTでは無いみたいなんだけど…
もしかしてExtensionStringに出てこないけど使えんの?
460:デフォルトの名無しさん
07/12/01 17:03:05
>>459
ソースはOpenGL Extensions ViewerのDatabase。
ちなみに8600は項目がなくてわからん。
8600Mならあるんだがなぁ
461:デフォルトの名無しさん
07/12/01 17:12:26
あ、原因わかったかも。
OSのフィルタでWindowsに絞ったらNVIDIA全滅した。
MAC使えって話っぽい。
462:453
07/12/01 21:56:23
>>454-461
サンクス
う~ん、モデルビュー行列から完全に元には戻せないのかな
注視点を求めたいんだけど、さっぱりわからない
ウェイトの件はシェーダを使うのが無難みたいですね
463:デフォルトの名無しさん
07/12/01 22:07:25
注視点は求まらんよ
見てる方向は求まるけど、その方向ですぐ目の前から無限遠までのどの点を見てるのかは失われる
奥行きをz=1とか適当に決めちゃって、そこを注視点ということにするくらいか
464:453
07/12/02 01:39:56
やっぱり無理なのか
残念だけど諦めよう
465:デフォルトの名無しさん
07/12/02 13:03:51
2Dテクスチャを2^nに限定しない関数ってありましたよね。
それの1Dテクスチャ・3Dテクスチャのものってありますか?
466:デフォルトの名無しさん
07/12/02 18:16:40
GL_TEXTURE_RECT_ARBなんかのことか?
それなら2D版しかない
GL_ARB_non_power_of_two拡張があれば
特に何も考えずに1Dでも2Dでも3Dでも2の乗数じゃないサイズが使えるよ
467:デフォルトの名無しさん
07/12/02 18:51:47
おお、知らない言葉が出てきた
ググります!
468:デフォルトの名無しさん
07/12/02 22:55:54
GL_ARB_non_power_of_twoって環境によってはクソ遅いんじゃなかったっけ。
標準にはなってるけど当然古いカードだと使えないし。なんだかなーという感じだ。
469:デフォルトの名無しさん
07/12/02 23:07:26
Radeon系だとクソ遅いらしいね。。
あとRadeonのドライバはOpenGLのバージョン2以降返しときながらGL_ARB_non_power_of_two対応してないこともあったり。
470:デフォルトの名無しさん
07/12/03 01:19:37
nvidiaだと快適サクサク
8600GT。
つーかシェーダ組んだときのRadeonのクソっぷりにビックリした
俺、今度からNvidia住人になるよ
471:デフォルトの名無しさん
07/12/07 16:30:01
ポリゴンを1000枚作って表示させたときと
ポリゴンを1枚作って表示させたとき
OPENGLではメモリの量違いますか?
472:デフォルトの名無しさん
07/12/07 18:28:27
違う
473:デフォルトの名無しさん
07/12/07 20:46:42
了解です!
474:デフォルトの名無しさん
07/12/07 21:57:58
違わない処理系ってどれよ?
475:デフォルトの名無しさん
07/12/07 22:28:03
描画領域のメモリは変わらんとか?
476:デフォルトの名無しさん
07/12/12 10:39:47
すみません。教えてください。
cpadでopenGLを起動できないのですが、どうしたらいいですか?
実行ファイルが作れません。というエラーがでます。
477:デフォルトの名無しさん
07/12/12 11:29:59
まず落ち着こう
次にCPadでOpenGLを使わないプログラムが実行できるか確認するんだ
それができたら「実行ファイルが作れません」の前にもエラーが出てるはずなのでそれを確認しよう
前に出てるエラーの原因が分からない、となってから質問しても遅くないと思うぞ
478:デフォルトの名無しさん
07/12/12 15:03:05
お前らまだOpenGLなんか使ってんのかw
479:デフォルトの名無しさん
07/12/12 15:25:36
個人的にはカーマックにその手の質問したら何て答えるのか非常に興味あるなw
そういえばPS3でGLやCgが採用されるってのは結局どうなったんだろ
480:デフォルトの名無しさん
07/12/12 20:00:50
PS3ではOpenGLもCgも実装されてる
でもOpenGLはパフォーマンスが出ないからGPUのコマンド直に叩くのがほとんどと聞いた
最近はほとんどシェーダだしDirect3D10もGPU仮想化されてOpenGLとたいして違いがないし
どっちでもいいわな
481:デフォルトの名無しさん
07/12/12 20:17:02
>>478
うん。組み込みとかそれしか選択肢がないの多いし…
482:デフォルトの名無しさん
07/12/12 20:52:14
ゲーム機があります
PS3 Wii XBOX
Microsoftゲイツ様仕様のDirectXをPS3やWiiが使えると思ってるのかな。
選択肢としてOpenGL+GPU言語(Cg・GLSL)くらいしか無いでしょうに。
483:デフォルトの名無しさん
07/12/12 21:27:02
誰に対して何の話をしてるのかわからない
484:デフォルトの名無しさん
07/12/12 21:54:01
わからないお前の神経がわからない
485:デフォルトの名無しさん
07/12/12 23:46:45
変な勘違いをして誰に対してるのか分からない見当外れな話をする誰かさんの神経が一番わからない
486:デフォルトの名無しさん
07/12/13 01:15:25
gllogicopの使い方がわかりません!
URLリンク(www.arch.oita-u.ac.jp)
二つの物体あわせてこういうのが作れるってことですか!
作れたら、作り方教えて下しア!!!
487:デフォルトの名無しさん
07/12/13 02:26:22
>>486
>二つの物体あわせてこういうのが作れるってことですか!
違う・・・
ググれ!
488:デフォルトの名無しさん
07/12/13 11:17:11
どう違うのか教えてください(;;
489:デフォルトの名無しさん
07/12/13 18:47:38
ぎろっぎこっプー
490:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/13 20:42:26
>>400
HWで対応してないからソフトウェアで処理すんぞってことでしょ
ビデオカードを換えるかglDisable(GL_LINE_SMOOTH)してみたらどうか
492:デフォルトの名無しさん
07/12/14 00:15:04
1か月越しか
493:デフォルトの名無しさん
07/12/14 00:59:11
シェーダーとかあるの?
494:デフォルトの名無しさん
07/12/14 11:58:50
OpenGLでテキスト描画したい場合ってどうするの?
プラットフォーム非依存なんだから、とうぜん標準で glDrawText 関数なんてものは
ないんだと思うんだけど、テキスト描画したい人はやっぱりゴリゴリコード書いて、
フォントイメージ持って来てそれを自力で転送してるの?
495:デフォルトの名無しさん
07/12/14 12:41:54
>>494
環境依存(任意のフォントでディスプレイリストを作成)
glXUseXFont
wglUseFontBitmaps
wglUseFontOutlines
環境非依存(フォントの種類が少なく、ディスプレイリストを作らないので遅い)
glutBitmapCharacter
glutStrokeCharacter
496:デフォルトの名無しさん
07/12/14 14:02:41
ここでくだらん質問するまえにNeheみれ
497:デフォルトの名無しさん
07/12/14 18:00:32
>>490
mesa-r300は色々と未実装なフォールバックになるやつが結構ある。
それもfglrxならフォールバックなしに使えたりする。
内部的にはlinesmoothはvs使って実相しているらしいが、
仕様公開後もっと開発が進むんじゃないかな。
498:453
07/12/14 18:14:48
>>494
FTGLがおすすめ
499:498
07/12/14 18:15:43
すまん、名前はミスだ
500:デフォルトの名無しさん
07/12/15 07:48:28
二年前にCGのクラスでOpenGLを学んだが
忙しくてそれ以上続けられなかった俺様が
来年こそはと>>500をゲット
501:デフォルトの名無しさん
07/12/15 08:18:14
>>500
大丈夫だ。若いんだから年末年始だけでOK
知的欲望全開で突っ走れ
502:デフォルトの名無しさん
07/12/15 13:13:22
Dynabook A1/X85PMC(PenIII 450MHz メモリ384MB)
で、OPENGL動かそうとしたら、止まった
なぜ…研究が進められない
503:デフォルトの名無しさん
07/12/15 13:22:36
>>502
随分古いマシンだな
とりあえずグラフィックスドライバ更新
でもOpenGLなんて所詮は最後に表示を担当するだけなんだから
研究は進められるんじゃ?
504:デフォルトの名無しさん
07/12/15 13:25:01
URLリンク(www.opengl.org)
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:デフォルトの名無しさん
07/12/15 13:27:53
doubleとか何に使うの?
506:デフォルトの名無しさん
07/12/15 13:35:58
頂点シェーダのレジスタ精度が32/24/16/8bitしかないから無くても問題ないな
507:デフォルトの名無しさん
07/12/15 13:36:48
>>503
画面サイズを小さくしたら出来ました。
研究室がいきなり工事やら停電やらで土日作業できず
自宅のはもらいもののノート。一応作業できますわ
508:デフォルトの名無しさん
07/12/21 09:10:44
ラデのドライバを最新にしたらツールが立ち上がらなくなったんで調べてみたら
ARB_fragment program_shadowのサポートが無くなってやがった
AMD氏ね
509:デフォルトの名無しさん
07/12/21 12:38:19
>>506
GL_FLOATが、16bitだよな?
32bitはなんだっけ?
510:デフォルトの名無しさん
07/12/21 22:45:13
テクスチャについての質問なんですが、ちょっと前までテクスチャが張れたのに、
アプリを再起動したらそれ以降全くテクスチャが張れなくなるのって何が原因
なんでしょうか?
昨日作ったソフトが今日になって全くテクスチャが張れなくなってしまって
困っています。バイナリ、テクスチャの元画像共に昨日テクスチャが張れた
時から全くいじっていません。また、ドライバの更新等もしていません。
思い当たるとしたらノートンの更新ぐらいですが…
511:デフォルトの名無しさん
07/12/22 01:03:45
Z座標が同じポリゴンが重なったときに重なった部分のアルファのあるテクスチャを
合成するにはどうしたらいいでしょうか?
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
は実行しているのですが、なぜか合成してくれません。
┌――┐
| |
| |
| ┌―┼―┐
└―┼―┘ |
| |
| |
└――┘
こんな具合です。
512:デフォルトの名無しさん
07/12/22 02:46:14
テクスチャのinternalformatはちゃんとGL_RGBA(あるいはその他アルファを含むフォーマット)
にしてるかい??
513:デフォルトの名無しさん
07/12/22 03:34:45
はい、Z軸を0.0000001とかほんの少しずらすとアルファは通っているので
大丈夫です。ただ、Z軸が重なるとなぜか合成されずに上書きになってしまう orz
514:デフォルトの名無しさん
07/12/22 03:53:30
>>513
glDepthMask(GL_FALSE);
glDepthFunc(GL_LEQUAL);
描画
glDepthFunc(GL_LESS);
515:デフォルトの名無しさん
07/12/22 20:22:14
>>514
遅くなりましたが、上手くいきました!
ありがとうごさいます。
516:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/22 22:50:46
×VGL_ARB_half_float_pixel
○GL_ARB_half_float_pixel
518:デフォルトの名無しさん
07/12/22 22:59:39
>>516
float、32bitか。何年プログラマやっとんだ、アホか俺はw
519:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/24 20:40:54
>>519
キーボードを押したらティーポットが回転するプログラムを書いたんですが、
ティーポットが回転してくれません。それどころかポットがどっかに移動して
しまいます。どうしたら良いですか? 教えてください。
521:デフォルトの名無しさん
07/12/24 23:49:54
>>520
どう見てもコンパイルすら通りそうにないコードなんだが
C言語の基礎(変数のスコープとか)を勉強し直すことだな
522:デフォルトの名無しさん
07/12/25 01:06:44
>>520
glRotated(x,0.0,0.0,1.0);
これでxを+1しても回転にならないぞw
523:デフォルトの名無しさん
07/12/25 01:14:56
XP上のMicrosft VC++6.0でOpenGLを使いたいのですが、
どうもこうもOpenGL/gl.hが無いと言われます。
ググってみると、
XPはデフォルトであるから心配ないとしか書かれていないのです(泣)
GLUTはインストール済みです。
もしよろしければ、対応策を教えていただけないでしょうか。
524:デフォルトの名無しさん
07/12/25 01:30:20
>>523
もし
#include <OpenGL/gl.h>
ってやってるなら、その行は削除。いらない。
525:522
07/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:デフォルトの名無しさん
07/12/25 04:32:13
> void myKbd(unsigned char key, int x, int y)
で、
x += 1;
は、何も影響を及ぼさない気がする・・・
527:デフォルトの名無しさん
07/12/26 19:22:57
質問です
物体(glutSolidSphereなど)を3次元空間で動かして
動かした三次元座標空間だけマスクして
動かせば動かすほど、画像が変わっていく(3次元空間がマスクされて、隠れている画像が出てくる)
ということをしたいのですが。
どうやればいいかヒントをください
528:デフォルトの名無しさん
07/12/26 20:23:44
>>527
日本語でおk
529:デフォルトの名無しさん
07/12/26 21:47:49
伝わりにくくてすみません
要は3次元空間にマスクをマウスで書き込んでいく、ということをしたいのです。
フォトショップとかの2次元空間でのクイックマスク処理を
3次元でやるイメージです
530:デフォルトの名無しさん
07/12/26 22:09:50
3次元でマスクってのが良くわからない…
もしSculptみたいなことをやりたいならボクセルでも使うのが早いかなぁ
531:デフォルトの名無しさん
07/12/26 22:30:36
>>530
まさしくそんな感じです。
固体を削り取っていって、削られた部分だけ別の物体の色になっていくという感じです。
それか、マウスの範囲内の物体の色(不透明度)を強制的に0にしていければ…同じように出来ると考えてるのですが
マウスでglutSolidSphereの範囲内のカラーを変えていく、ということ出来ますか?
532:デフォルトの名無しさん
07/12/26 22:41:45
正直に脱がせゲーを作るといえばみんな協力するはず
533:デフォルトの名無しさん
07/12/26 22:49:32
…その発想はなかった!!!!!
そっちにシフトします><
534:デフォルトの名無しさん
07/12/26 23:45:14
もし531のようなことやるのに
参考になるサンプルとか考え方あったら、レスお願いします。
535:デフォルトの名無しさん
07/12/27 01:04:05
2Dじゃなくて、3Dでか。
そもそも、サーフェスモデルが基本なので、
「削り取る」というのをどのように表現するか・・・だな
536:デフォルトの名無しさん
07/12/27 01:18:27
削り取るよりも
>マウスでglutSolidSphereの範囲内のカラーを変えていく
こっちのほうを実装するほうが、やりたいことが出来そうな気がしてきました
まだ研究室で、2時くらいに帰るのですが
かなりてんぱってきました
537:デフォルトの名無しさん
07/12/28 23:04:41
536ですが
アキュムレーションバッファで変更したい部分を上書きしてく、ということはできるでしょうか?
もし出来るなら、エリア内の画素のαを0にして上書き・エリアを動かして0にして上書き…で削り取れるかもと思ったのですが
538:デフォルトの名無しさん
07/12/28 23:33:04
サンプル弄くってみて
エリア内の指定
全体が変化する
でアウトでした。
もう夜も眠れません
539:デフォルトの名無しさん
07/12/29 01:58:55
ん、もしかして2Dでマスクできればいいのか?
それならStencilBufferでいいと思うけど
初心者スレにそんな話題が出てたぞ
540:デフォルトの名無しさん
07/12/31 17:54:28
質問させて頂きます。
①FBOテクスチャに適当に描画。
②上のレンダリングテクスチャに、上のレンダリングテクスチャを別のオブジェクトに貼って描画。
としう事をしたいのですが、②を行う際、①で作ったテクスチャを別のテクスチャにコピーする必要があると思います。
その、テクスチャを別のテクスチャにコピーをしたいのですがどのようにすればいいのでしょうか?
できれば、高速な方法が良いです。宜しくお願いします。
541:デフォルトの名無しさん
07/12/31 17:55:05
すいません、くだすれと間違えました・・・。
542:デフォルトの名無しさん
08/01/06 19:39:29
OpenGL Distilledの邦訳OpenGLの神髄が出てたな
さっと立ち読みしただけだがタイトル通り要点を押さえた本だった
神髄とか言うと上級向けっぽいがそうでもなく
いきなり赤本を読む前に読んでおきたい本だな
543:デフォルトの名無しさん
08/01/06 21:41:32
とりあえず(あえて)7Yでポチった
DirectXとか汎用言語書は自称初心者向け(笑)が増殖してるが、
買うヤツがほとんどいないOpenGL本をあえて出すということはそれなりのクオリティであると期待してみる
544:デフォルトの名無しさん
08/01/06 21:56:29
>>543
だが需要はあると思うぞ。俺も買った。