OpenGLスレ Part11at TECH
OpenGLスレ Part11 - 暇つぶし2ch200:デフォルトの名無しさん
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
だが需要はあると思うぞ。俺も買った。

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

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


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

548:デフォルトの名無しさん
08/01/15 18:09:29
ろぼっとアームをバナナに置き換えれば

549:デフォルトの名無しさん
08/01/15 19:41:58
Cgとかのシェーダ言語のスレってないね

550:デフォルトの名無しさん
08/01/15 20:27:55
あったと思ったら違ったw

CGプログラムやれや、お前ら
スレリンク(cg板)

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

551:デフォルトの名無しさん
08/01/15 21:48:26
シェーダのスレならゲーム製作技術板だがあった
ついでに過疎ってるが
スレリンク(gamedev板)l50

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

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

552:デフォルトの名無しさん
08/01/16 04:27:47
ndsやってるかたいらっさいますか

553:デフォルトの名無しさん
08/01/16 10:06:52
仕事の質問なら帰れ
趣味でやってるなら聞くだけ聞いてやる

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

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

556:デフォルトの名無しさん
08/01/16 23:53:32
あっちで普通のシェーダ聞いたらすれ違い言われた

557:デフォルトの名無しさん
08/01/17 01:28:03
そりゃ当然

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


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

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

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

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

560:デフォルトの名無しさん
08/01/17 23:01:02
>>559
ありがとうございます。

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

URLリンク(wiki.livedoor.jp)
URLリンク(son-son.sakura.ne.jp)

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

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

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

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

もはやOpenGL関係ないけど

563:デフォルトの名無しさん
08/01/18 06:12:05
床井さん復活おめ。

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

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

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

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

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

567:デフォルトの名無しさん
08/01/18 17:42:16
定数の GL. は static import すればいい
メソッドのはメンドイね

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

569:デフォルトの名無しさん
08/01/19 02:54:16
商業なら独自形式にエクスポートしたりしない?

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

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


571:デフォルトの名無しさん
08/01/19 08:35:42
>>570
基本はあってる。

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

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

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

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

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

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

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


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

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

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

GLUTによるOpenGL入門2 テクスチャマッピング
URLリンク(www.kohgakusha.co.jp)

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

580:デフォルトの名無しさん
08/01/19 23:55:33
赤本は分厚いだけで難しくはないだろ。

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

582:デフォルトの名無しさん
08/01/20 17:49:17
座標から角度を計算すればいいだろ

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

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

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

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

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

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

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

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

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

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

590:デフォルトの名無しさん
08/01/22 18:36:55
毎回すべてのデータを送りなおしているとか言って見る。

591:デフォルトの名無しさん
08/01/22 18:37:30
>>589
>>587
安価… orz

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

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

594:デフォルトの名無しさん
08/01/23 22:13:25
>> 542

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

595:デフォルトの名無しさん
08/01/24 15:46:41
NicoAE開発頑張ってね

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


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

597:デフォルトの名無しさん
08/01/24 18:18:40
NicoAEの人かっ!!!がんばれー

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

599:デフォルトの名無しさん
08/01/24 22:04:54
3.0がでて今までのが動かなくなるわけじゃないんならいいんじゃね

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

601:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/01/26 17:21:35
glutDisplayFuncはコールバック関数を「登録」する関数です。

603:デフォルトの名無しさん
08/01/26 17:22:13
initよりdisplayが後に実行されてるからだよ。


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

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

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

605:デフォルトの名無しさん
08/01/26 17:23:55
なんですと?
登録する関数?
じゃあ、glutMainLoopが描画してるんですか?

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


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

608:デフォルトの名無しさん
08/01/26 21:39:54
んなこたーない
大量にある

609:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/01/27 03:45:37
>>609
縮尺を一定にしたいという話なんだからそれで正しいだろ

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

612:609
08/01/27 09:37:39
>>610
やっぱり良くわからないです?
URLリンク(upload.fam.cx)
のようになって、表示される画像の大きさが
ウィンドウをリサイズしたら比例しして大きくなりそうな気がするんですが。

613:デフォルトの名無しさん
08/01/27 10:00:19
>>612
考えてないでやってみるとわかる。

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



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch