OpenGLスレ Part11 ..
[2ch|▼Menu]
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」を入れてみた

これぐらいです。どなたか解決策をお願いします。


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

4355日前に更新/177 KB
担当:undef