OpenGLスレ Part11at TECH
OpenGLスレ Part11 - 暇つぶし2ch1:デフォルトの名無しさん
07/04/26 02:43:38
クロスプラットフォーム 3D API OpenGLに関する話題を扱うスレッド。

禁止事項
・「OpenGL終了」系のまず価値否定ありきの主観発言(客観的な懸念要素を挙げた上での建設的議論は可)
・学歴・理系か文系かに関連する差別発言
・その他の荒らし全て
これらは付き合うだけ無駄なので無視しましょう。

- 前スレ -
OpenGLスレ Part10
スレリンク(tech板)


- 関連サイト -
URLリンク(www.opengl.org)
URLリンク(www.mesa3d.org)

URLリンク(developer.nvidia.com)
URLリンク(www.ati.com)
URLリンク(developer.3dlabs.com)

- 過去スレ -
Part 9: スレリンク(tech板)
Part 8: スレリンク(tech板)
Part 7: スレリンク(tech板)
Part 6: スレリンク(tech板)
Part 5: スレリンク(tech板)
Part 4: スレリンク(tech板)
Part 3: スレリンク(tech板)
Part 2: スレリンク(tech板)
Part 1: URLリンク(pc3.2ch.net) (dat落ち)

2:デフォルトの名無しさん
07/04/26 02:44:41
- 関連スレ -
OpenGL 2.0 専用スレ
スレリンク(tech板)l50

くだすれOpenGL(超初心者用)
スレリンク(tech板)l50

- 各社のOpenGL拡張対応状況-
nVidia
URLリンク(developer.nvidia.com)
ATI
URLリンク(mirror.ati.com)

- その他もろもろリンク集 -
URLリンク(www.nbrains.net)

3:デフォルトの名無しさん
07/04/26 02:45:48
- 補助ライブラリ -
■OpenGLコーディングの補助
・glew           URLリンク(glew.sourceforge.net)
OpenGL拡張の利用を簡便に。

■数値演算ライブラリ
・CwMtx library     URLリンク(www.xs4all.nl)
行列、ベクトル、クォータニオンの演算ライブラリ。LGPL。
・Matrix, vector and quaternion library 2.0       URLリンク(www.programmersheaven.com)
配布ページの記述によれば無償で使えるらしい。ライセンスは未確認。
C++のメタテンプレート技法を多用しているので高速。APIとしての形も非常にシンプル。
・MathGL++       URLリンク(sourceforge.net)
行列、ベクトル、クォータニオンなどの各種演算用ライブラリ。APIはOpenGLライク。LGPL。

■マルチプラットフォーム化・イベントやサウンドなどのハンドリング
・SDL           URLリンク(www.libsdl.org)
定番。数多くの関連ライブラリが開発されている。現在のバージョンでは描画とイベントハンドリングを分離できないため、
描画がもたつくとイベント処理ももたつく。ライセンスはLGPL。
・Allegro         URLリンク(www.talula.demon.co.uk)
サポートしている機能、対応OSともにSDLに似ている。日本語資料は少ないが、Gift-wareという位の寛大なライセンスが魅力。
・GLFW          URLリンク(glfw.sourceforge.net)
キーボード、マウス、ジョイスティックなどのイベント処理、タイマ、マルチスレッド辺りのみをシンプルに抑えたマルチプラットフォームライブラリ。
サウンドやその他は他のライブラリと組み合わせたい場合は、こちらの方が競合などの問題が無く安心か。
・Java+jogl        URLリンク(jogl.dev.java.net)
OpenGLのJavaバインディング。現在のSun JavaVMがC++に肉薄した演算パフォーマンスを発揮している今、
Javaの豊富な標準ライブラリやSwing・Java2Dと連携できる事も考えると、今後はダークホース的選択肢に?

4:デフォルトの名無しさん
07/04/26 02:46:51
■サウンド
・OpenAL          URLリンク(www.openal.org)
3Dサウンドライブラリ。マルチプラットフォーム。DirectXゲームでもサウンドはこれを使っているものも。MacOSXでは標準で入っている。

■その他
・OpenSceneGraph    URLリンク(www.openscenegraph.org)
シーングラフライブラリ。
・freetype          URLリンク(www.freetype.org)
ビットマップフォントやベクタフォントのレンダリングを行うライブラリ。

■フォント描画
・FTGL           URLリンク(homepages.paradise.net.nz)
Freetypeを利用したもの。マルチプラットフォーム。アウトラインフォント対応。日本語が使えるかは未確認。

■物理エンジン
・ODE:Open Dynamics Engine         URLリンク(ode.org)
オープンソース物理エンジン(GPL or BSD-Style License)

5:デフォルトの名無しさん
07/04/26 02:48:27
テンプレはここまで。
追加も歓迎です。

6:デフォルトの名無しさん
07/04/26 05:04:43
otu

7:デフォルトの名無しさん
07/04/26 06:42:31
あ、お疲れ様です。

8:デフォルトの名無しさん
07/04/26 07:01:37


9:デフォルトの名無しさん
07/04/26 08:40:52
OpenGLを触ってみたけど何故か懐かしい感じがした。
赤本見てみたけど何故かPC8001mk2時代を思い出した。

10:デフォルトの名無しさん
07/04/28 14:56:19
最近、予備知識なしの状態から OpenGL の簡単なプログラムを書きました。
もっぱらネットで仕入れた知識のみを継ぎ接ぎで使っただけなので、少し不安です。

で、ちょうど連休と言うことでもあるので、暇つぶしを兼ねて本でお勉強をしようと思いました。
以下のような要望に適う本があればご紹介頂けると嬉しいです。

・次のような人間がちゃんと OpenGL を理解したいと思っている
 ・VC++ でグラフやなんやらの表示を伴うプログラムを普通に書いている
 ・OpenGL はネットで調べて簡単なプログラムなら組めるようになった
 ・でも体系立てた理解をしていないため不安である
・日本語で読める本 orz

>>9
そう感じるのは私だけではなかったんですね。w


11:デフォルトの名無しさん
07/04/28 15:23:14
連休だからこそ、英語に挑戦すれ。
ネットにある赤本と仕様の pdf ならタダだし、赤本の先の情報を得ようと思うと
ほとんど英語になってしまうんだから。
プログラミング以外でも、世界が広がるぞ。

すごい交じレス

12:デフォルトの名無しさん
07/04/28 16:01:11
Mesa 6.5.3 Release
URLリンク(www.mesa3d.org)
URLリンク(www.mesa3d.org)

OpenGL 2.Xサポートですよ奥さん

13:10
07/04/28 21:15:03
やっぱし?
英語からは逃げれるだけ逃げていたのですが。w
暇つぶしの範疇ですが、ちょっとだけ頑張ってみることにします。

14:デフォルトの名無しさん
07/04/28 21:29:36
OpenGL終了

15:デフォルトの名無しさん
07/04/28 22:44:55
1万円以上払えるほど金に余裕があるなら日本語版の赤本でもどうぞ。
ないならそれなりに努力しなさいな。

16:デフォルトの名無しさん
07/04/30 21:28:34
>>10
挙げられた条件からすると、どう考えても赤本だなぁ・・・。
って、もう遅いカナ??

17:デフォルトの名無しさん
07/05/06 20:14:43
初心者レスそんません.
赤本って何ですか?大学受験のやつしか思い浮かばないw

18:17
07/05/06 20:17:18
解決しました.
Programing Guideのことか.

19:デフォルトの名無しさん
07/05/17 10:29:56
バナナの腹筋って具体的にどのようなテクニックを使っているのでしょうか?

20:デフォルトの名無しさん
07/05/17 15:00:41
なにそれ?

21:デフォルトの名無しさん
07/05/17 15:05:14
スキンメッシュのこと?

22:デフォルトの名無しさん
07/05/17 17:45:34
>19
DirectX9SDKヘルプのジオメトリブレンディングの項を見れ

23:デフォルトの名無しさん
07/05/19 03:18:35
エスパー現る。

24:デフォルトの名無しさん
07/05/20 01:47:12
>>19
的確杉な擬人化表現にワロタwww

25:デフォルトの名無しさん
07/05/20 12:13:01
URLリンク(www.microsoft.com)

26:デフォルトの名無しさん
07/05/20 16:12:39
(x,y,z)というベクトルがあるとき、このxyzからオイラー角を求めるにはどのような計算すればよいのでしょうか?

27:デフォルトの名無しさん
07/05/20 21:38:12
プログラムにエスパーを求めないでください。

28:デフォルトの名無しさん
07/05/21 00:10:26
x-y、x-z、y-zそれぞれの値でatan2実行すりゃいいんじゃね?

29:デフォルトの名無しさん
07/05/21 06:10:09
>>19のせいで>>25がバナナの腹筋にしか見えなくなった

30:デフォルトの名無しさん
07/06/02 12:23:27
>>25
バナナワロタ


31:おしえてちゃん
07/06/03 14:34:46
質問です。

点を二つ作り、その点の大きさをgl_PointSizeを使って
大きくしたら、点が重なりました。その重なった部分の混合色は
どのようにつくられるのですか?

1,(vertex + fragment シェーダでの処理を一単位と考えて)
二度シェーダプログラムを呼んで色の混合を作る。
2,(上と同じ考えで)一度で処理する。
3,そのほか

同じカーネルに、複数の色を叩き込むということなので、
その色の混合処理の方法がわからないのです。

一体どれなんでしょうか?

32:デフォルトの名無しさん
07/06/03 14:55:32
マルチしすぎだボケッ

GPGPUをやる前に、OpenGLの基礎をちゃんと勉強しなさい。
話はそれからだ!

33:おしえてちゃん
07/06/03 17:10:14
赤本に載ってるのかなぁ・・・

独学でやったからよく判らないんだよねぇ・・・

34:デフォルトの名無しさん
07/06/03 18:59:58
>>33
透明の時?

35:デフォルトの名無しさん
07/06/03 19:48:59
一度ブレンドでGL_ONE,GL_ONEとか設定してみると理解できるんじゃなかろうか。

ブレンドの混合色はどのように作られるんですか、とかはここで聞く前に
OpenGL ブレンド とかでググってくらさい。


36:おしえてちゃん
07/06/05 19:15:30
透明のときです>>34

GL_ONEについて調べてみました。
GL_ONEってfragmentしぇーだですよね。(だと思う。)
それでそのしぇーだの内容を調べさせてもらったらただ単純に

結果の色 = 新しい色 * 1 + 元の色 * 1

みたいなことを、してるそうだとわかりました。
この場合、2度色をインプットしなければ混合色を作れません
でなければ、しぇーだの内容が

結果の色 = 新しい色(1つめ) * 1 + 新しい色(2つめ) * 1 + 元の色 * 1

みたいな感じになってるはずです。
でも2番目のようなソースは見たことがありません。
やっぱり"順番をつけて"2度シェーダを呼んで
混合色を作っているってことなんでしょうか?

どっかでトンデモな間違いをしてそうですが、そこらへんは勘弁してください。

37:デフォルトの名無しさん
07/06/05 19:56:27
OpenGLの基礎をちゃんと勉強しなさい。

38:デフォルトの名無しさん
07/06/05 21:42:20
GL_ONEというか最終的なカラーブレンドはシェーダでないよ
古い方でもいいから赤本を図書館でもなんでも見付けて読みなさい

39:デフォルトの名無しさん
07/06/05 22:06:26
>>36

ブレンド処理はバックエンドのラスタオペレーションなので、フラグメントシェーダは関係無いです。
最初の
>結果の色 = 新しい色 * 1 + 元の色 * 1
が正しいです。
「新しい色」てのが今処理してるポリゴンのフラグメント、「元の色」はフレームバッファの色ですね。

>この場合、2度色をインプットしなければ混合色を作れません
その通り、混合色を作るには、ポリゴンを複数回重ね合わせます。

40:デフォルトの名無しさん
07/06/05 22:47:10
Windows Vista上でOpenGLはネイティブサポートされているのでしょうか?

Aero Glassでは、DirectX 9をベースにしているため、
基本的にはOpenGLはDirect3Dにマップする形をとるような話が過去にあり、
それを裏付けるようなベンチマーク 結果
URLリンク(www.tomshardware.com)

製品FAQ?
URLリンク(jp.wiki.mcneel.com)
URLリンク(www.housenetworks.jp)


がある一方、

2007.04.20 Khronos OpenGL ARB ワーキング グループ
URLリンク(khronos.jp)

にあるような許容範囲内の速度で動くような話も出ています。
Driverしだい... ということでしょうか?

フルスクリーンではなく、ウィンドウ内への描画を行っておりまして、
Aero Glassとの併用がどの程度のオーバーヘッドで実現できるのか
解らずにおります。

#開発PCにVistaがなく、私は嫌なのですが、
#今後、導入が計画されていまして...。

41:デフォルトの名無しさん
07/06/06 06:55:27
メーカーのDirever入れてないVistaのOpenGLはめちゃくちゃ遅かったな。
確か、Geforce。
アプリは、ゲームだったんだが、ゲームにならないほど遅かった。
FPSはちょっと覚えていないが、10以下。
Driver入れたら、ちゃんと規定の速度で動いた。

42:デフォルトの名無しさん
07/06/06 08:59:03
またGeforceか。

43:デフォルトの名無しさん
07/06/06 12:13:16
要はVista用の新しいドライバがあれば大体同じ速度で動く。
そうでなければDirectXのラッパーとして動かして
OpenGL1.4までサポート・パフォーマンスはだいたい半減、
またはDWMを切って今まで通りに動かす。

44:デフォルトの名無しさん
07/06/06 20:02:46
void disp( void ) {
float f;
glClear(GL_COLOR_BUFFER_BIT);

glPushMatrix();
for(f = 0 ; f < 1; f += 0.1) {
// glColor4f(0 , f , 0, 0.2);
glCallList(DISP_LIST_INDEX);
}
glPopMatrix();

glFlush();
}

void setDispList( void ) {
glNewList(DISP_LIST_INDEX , GL_COMPILE);
glBegin(GL_POLYGON);
glVertex3f(-0.1 , -0.1 , -0.1);
glVertex3f(-0.1 , 0.1 , -0.1);
glVertex3f(0.1 , 0.1 , -0.1);
glVertex3f(0.1 , -0.1 , -0.1);
glEnd();
glTranslatef(0 , 0 , 0.1);
glEndList();
}

ポリゴンをミルフィーユのように重ねたものを表示したいのですが
このようにやってみて、一応重なったのですが、なんとなくスマートではありません

-0.1~0.1の正方形のポリゴンを10枚重ねて表示するにはどうやったらいいのでしょうか
また、その1枚1枚に別々のテクスチャを貼っていきたいのですが
御指導お願いします

45:デフォルトの名無しさん
07/06/06 22:24:23
> ポリゴンをミルフィーユのように重ねたものを表示したいのですが

そもそもこれがわからない

46:デフォルトの名無しさん
07/06/06 22:32:01
glTranslatefを外に出す

for(){
glTranslatef(0 , 0 , 0.1);
glCallList(hoge);
}
こんな感じ

テクスチャーが10枚とも固定されているなら、DisplayListに
描画命令を埋め込んでもいいと思うが、動的に変更されるなら、
DisplayListは使用しないほうがいいと思う。

あと、GL_BLEND, glBlendFunc あたりを押さえておく必要があります。

47:40
07/06/07 01:27:22
>>41
>>43

なるほど。参考になりました。ありがとうございました。
新しいドライバが出ているビデオカードでの開発になると思いますので、大丈夫そうですね。


48:デフォルトの名無しさん
07/06/07 12:53:15
>>46
ありがとうございます
テクスチャが10枚とも別のものなので
1枚1枚別のを指定しないといけなくて…そこでも躓いてしまっています

DisplayListを使わないやり方ですと
頂点を1個1個書いていくのでしょうか?
glbeginのところにfor文を入れたらエラーになってしまって、DisplayListを使いました


49:デフォルトの名無しさん
07/06/07 16:20:53
> glbeginのところにfor文を入れたらエラーになってしまって、DisplayListを使いました

別にglbeginをfor文で囲ってもエラーにはならないよ。
実際の コードだしてみないと、わからない

50:デフォルトの名無しさん
07/06/07 17:58:43
void disp( void ) {
float i;
glClear(GL_COLOR_BUFFER_BIT);
glBindTexture(GL_TEXTURE_2D , texName);
for(i=-0.5;i<0.5;i+=0.1){
glBegin(GL_POLYGON);
glTexCoord2f(0 , 0); glVertex3f(-0.5 , -0.5 , i);
glTexCoord2f(0 , 1); glVertex3f(-0.5 , 0.5 , i);
glTexCoord2f(1 , 1); glVertex3f(0.5 , 0.5 , i);
glTexCoord2f(1 , 0); glVertex3f(0.5 , -0.5 , i);
glEnd();
glBegin(GL_POLYGON);
glTexCoord2f(0 , 0); glVertex3f(-0.5 , i , -0.5);
glTexCoord2f(0 , 1); glVertex3f(-0.5 , i , 0.5);
glTexCoord2f(1 , 1); glVertex3f(0.5 , i , 0.5);
glTexCoord2f(1 , 0); glVertex3f(0.5 , i , -0.5);
glEnd();
}
glFlush();
glutSwapBuffers();
}
すいません…勘違いをしていて、これで表示が出来ました
これに1枚ごとにテクスチャを変えていけると、なんとか出来そうなのですが


51:デフォルトの名無しさん
07/06/07 18:45:26
そこまでできたなら、あとは、プログラミング言語の習得の問題だね

テクスチャーを配列に入れて、ループ内で、BindTextureすればいいんでないの。

52:デフォルトの名無しさん
07/06/07 18:51:50
その貼り付けたいものが
1枚ずつ(積み重ねているものの下~上までで)違っていて
さらに縦方向(1回目のglbegin)と横方向(2回目のglbegin)で異なっていて
そこで、どう組んでいけばよいか躓いてしまいました

ただ…あと少しという感じがしているので、もう少しテクスチャマッピングの項を見て勉強します。


53:デフォルトの名無しさん
07/06/08 03:06:58
質問させてください
科学シミュレーションで行う温度の可視化のようなものをしようと考えています

(▽こんな雰囲気)
URLリンク(www.mathworks.com)

表示する色の与え方についてOpenGLのサンプルを
探してみたのですが見つからず、とりあえず素人考えで

「可視化対象の変数値分布を0-1の範囲に変換」
→「HSV色空間におけるHの0度(赤)-240度(青)に割り振り」
→「HSV->RGB変換して表示」

と試してみたところ、まあまあイメージ通りのものができました・・・

が、他にもっと優れた方法やサンプルがあれば教えて頂きたく存じます
どうぞ宜しくお願いします


54:デフォルトの名無しさん
07/06/08 03:58:20
GDI、OpenGL、Direct3D、ソフトウェアの描画で2D、3Dの軽さに順位をつけるなら?

55:デフォルトの名無しさん
07/06/08 08:48:31
>>54
環境によるが

2D、3Dとも
Direct3D ≒ OpenGL >>>>>>>>> ソフトウェア描画 > GDI

56:デフォルトの名無しさん
07/06/08 08:49:33
3DはOGLのほうが綺麗だろう

57:デフォルトの名無しさん
07/06/08 12:02:14
綺麗とかナンセンス。どっちも大体同じこと出来るから。

58:デフォルトの名無しさん
07/06/08 14:01:10
基本的にD3DとGLの速度比較ならD3Dのほうが少し軽いと思って間違いないよ
もちろん例外はあるけど最近のハードならほぼ間違いない

59:デフォルトの名無しさん
07/06/08 18:33:45
理由は?

60:デフォルトの名無しさん
07/06/08 19:51:07
D3DはMSだから重いよ

61:デフォルトの名無しさん
07/06/08 19:54:40
D3Dの方が軽いと見るのが普通。

62:デフォルトの名無しさん
07/06/08 20:50:40
理由は?

63:デフォルトの名無しさん
07/06/08 20:52:04
>>53

> 「可視化対象の変数値分布を0-1の範囲に変換」
> →「HSV色空間におけるHの0度(赤)-240度(青)に割り振り」
> →「HSV->RGB変換して表示」

なんとなくこの部分は1次元テクスチャーを先に作って割り振ったほうが負荷がかからんのじゃないかと思う。
もしかしたらそうやってるのかもしれんけど。


64:デフォルトの名無しさん
07/06/08 21:24:17
すいません
BMPのある1色(黒)をマスクのように抜きたいのですが
glBlendFunc(GL_ONE , GL_ONE );だと
後ろが極端に白くなってしまいます

ただ、抜くだけにはどうすればいいのでしょうか

65:デフォルトの名無しさん
07/06/08 22:11:30
>62
自分でd3d/glの切り替え可能な描画エンジン組めばわかるよ

66:デフォルトの名無しさん
07/06/08 22:15:23
GL_ONE,GL_ONEだと加算合成。
GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHAだと普通のアルファ合成。

ちなみに一色だけで抜きたいというのであれば、
ブレンドは使わずにAlphaTestのほうが高速。

67:デフォルトの名無しさん
07/06/08 22:28:37
具体的な理由が思いつかなくて逃走ですかね。

68:デフォルトの名無しさん
07/06/08 22:40:55
そうですね^^

69:デフォルトの名無しさん
07/06/08 23:01:39
>>65
どうせ環境依存だし実際にどっちが速いかはそんなに気にならないけど、
どうして D3D の方が確実に速いと思ったかにはとても興味がある。

70:デフォルトの名無しさん
07/06/08 23:12:11
どうこう言ってもドライバー次第だと思うけどなぁ


71:デフォルトの名無しさん
07/06/08 23:20:09
D3Dのドライバはかなりの共通部分を部分をマイクロソフトがライブラリの一部として提供しているのに比べ
GLのドライバは全てベンダが提供しなければならない(シェーダコンパイラでさえも!!

さらに速度が最も重要視されるゲーム市場においてシェアに圧倒的な差がつけられている

結果的にどちらのドライバが信頼性、速度において洗練されるか言うまでもない

72:デフォルトの名無しさん
07/06/08 23:25:00
>結果的にどちらのドライバが信頼性、速度において洗練されるか言うまでもない
OpenGLと言うまでも無いな

73:デフォルトの名無しさん
07/06/08 23:26:58
そうですね^^

74:デフォルトの名無しさん
07/06/08 23:30:14
>>66
AlphaTestで色々ためしていたのですが
どうも色が抜けなくて

床井さんの所では、画像の抜きたいところを透明に処理してから使ったりで
やりたいのは黒(っぽい)ところを、黒ければ黒いほど透明にしたいのです

RGB=000 ならαも0
RGB=111 ならαも1
といった感じで。。。

75:デフォルトの名無しさん
07/06/08 23:39:52
3Dの軽さ
Direct3D>ソフトウェア>OpenGL>GDI
2Dの軽さ
ソフトウェア>Direct3D>OpenGL>GDI

76:デフォルトの名無しさん
07/06/08 23:41:06
>>71-72
まあまあ^^;
ここはOpenGLスレなんだからその辺にしといてくれよ。

77:デフォルトの名無しさん
07/06/08 23:41:52
>>74
Alha Testするには、黒とかの色じゃなくて、
アルファが重要なのはわかる?

78:デフォルトの名無しさん
07/06/08 23:53:49
>>77
はい。
ポリゴンに白黒のテクスチャを貼り付けているので
それ自体にα値が無いのでAlphaTestが出来ないのはわかっています

こういう場合はどうやって抜けばいいのでしょうか…

79:デフォルトの名無しさん
07/06/09 00:30:25
>>78
・テクスチャー生成時に、抜きたい色のα情報をテクスチャに書き込む

・シェーダーでゴニョゴニョ(アホ

80:デフォルトの名無しさん
07/06/09 00:47:26
共通のシェーダコンパイラってGPUごとの最適化が利かないんじゃなかったっけ?

81:デフォルトの名無しさん
07/06/09 00:51:01
白黒のテクスチャーだったら、DSTにGL_SRC_COLORとか試してみるといいんじゃないの?
GL_DST_COLORとかあるんだっけ?
まあ、自分でやってないのでどうなるかはわかんないけど。


82:デフォルトの名無しさん
07/06/09 01:04:52
本当に究極までドライバの最適化を極めれば仕様上GLのドライバのほうが早くなる
何故なら全てのカードごとに最適化されたドライバを書くことすら出来るからだ

実際に固定機能時代のnVIDIAのカードのパフォーマンスはD3Dを上回った
これはQuakeエンジン等のGLベースエンジンの活躍が大きな要因だろう

しかしその後のAPI仕様の肥大化、プラットフォームの多様化等のせいで
個別の最適化どころかそこそこの速度と信頼性を維持するのがやっとというのが現状

83:デフォルトの名無しさん
07/06/09 01:30:24
結論をいうと、本格的にやるならOpenGL。
お遊び程度ならD3D。

84:デフォルトの名無しさん
07/06/09 01:33:57
本格的なら両方やっとけ

85:デフォルトの名無しさん
07/06/09 01:49:18
2Dならソフトウェアのほうが軽いのか?

86:デフォルトの名無しさん
07/06/09 01:55:01
んなわけない
ハードウェアに依存しないから昔のマシンでもそこそこの速度で安定して動くんで使いやすいという程度

87:デフォルトの名無しさん
07/06/09 02:03:55
実際OGLやD3Dに比べりゃソフトウェアの方が軽い。

88:デフォルトの名無しさん
07/06/09 02:05:38
そうですね^^

89:53
07/06/09 02:18:37
>>63
なるほど、1次元テクスチャですかー
その辺あまり詳しくないので調べてみようと思います
どうもありがとうございます

90:デフォルトの名無しさん
07/06/09 02:39:21
>>85
Mac のデスクトップは 2D も OpenGL で描画してるよ

91:デフォルトの名無しさん
07/06/09 02:46:53
ここで言うソフトウェアってのは画像描画、ブレンド、ラスタライズその他諸々をCPUでやるってこと
MacでもGLの出番はクライアント領域への描画だけ

92:デフォルトの名無しさん
07/06/09 02:48:41
そりゃ描画処理切り替えやハード依存を無くす為だろ

93:デフォルトの名無しさん
07/06/09 02:55:58
90=92?
何が言いたいのかわかんないんだけど

MacでデスクトップがソフトウェアでもGLで描画していようとも
ソフトウェアレンダリングするなら速度に影響しないからどうでもいいでしょ?

94:デフォルトの名無しさん
07/06/09 02:58:34
ここでソフトウェアレンダリングって言うと紛らわしいな
○ソフトウェアでラスタライズ

95:デフォルトの名無しさん
07/06/09 03:03:21
ああ、わかった

>90はデスクトップ描画に使うくらいGLは軽いって言いたかったのかな?
もしそうならすまんかった

96:デフォルトの名無しさん
07/06/09 03:10:38
OGLはスペック要求されるから重くなるのは必然

97:デフォルトの名無しさん
07/06/09 03:15:25
>>89
わかってるかもしれませんが、1次元テクスチャによる色変換は
いわゆる依存(従属)テクスチャ処理になるからシェーダが必須ですよ~。

98:デフォルトの名無しさん
07/06/09 03:23:39
>>91-95
何がしたいんだ?

99:デフォルトの名無しさん
07/06/09 03:32:43
(´・ω・`)知らんがな

100:デフォルトの名無しさん
07/06/09 11:07:42
>>81
glBlendFunc(GL_ONE ,GL_ONE_MINUS_SRC_COLOR);
で上手く黒が消えて、白いところだけ出てきました!
ありがとうございました。。。なんか涙出てきた

101:デフォルトの名無しさん
07/06/09 11:09:18
OpenGLは最後に塗るとき以外、使い物にならないといいたいんだろう。

102:デフォルトの名無しさん
07/06/09 11:26:19
さすがにブレンドはGPU上じゃろう

103:デフォルトの名無しさん
07/06/09 12:19:06
>>85
2Dなら、むしろ、画質向上のためアルファ付きテクスチャーを多く描画することになると
想定すると、Zバッファが使えなくなって、重くなることもある。

まさか、いまどき、2Dで、ジャギジャギのドット絵スプライトの描画なんて、そうそうねーし。

まあ、場合によりけるだが・・・

104:デフォルトの名無しさん
07/06/09 12:20:54
>>82
懐かしいなー。
前世紀は、Quake3時代だよな
メーカーが、こぞって、OpenGL対応をうたってて、OpenGLの方ががメチャ速い(気のせいかも)時代だった

105:デフォルトの名無しさん
07/06/09 13:02:18
大量のテクスチャを大量に貼り付けるとき

 for(i =0; i < 枚数(512~); i++)
    {

           glBindTexture(GL_TEXTURE_2D, texture[i]);
}

のように、番号を保管するtexture[]配列を作らないとだめでしょうか?
forの中で、順次貼り付けるテクスチャを更新していって
貼り付けて描画→次のを貼り付けて描画→…終わりまで
で texture 変数を更新するだけでやるのは可能でしょうか。


106:デフォルトの名無しさん
07/06/09 13:06:20
出来るけどかなり遅いよ

107:デフォルトの名無しさん
07/06/09 13:14:53
>>106
配列でやるよりも遅くなるのですか。。。
枚数がたくさんになりそうなので(512×3 や 1024×3)あまりメモリを使いたくなくて…

for(i =0; i < 枚数(512~); i++)
{
 SetTexture(i);//テクスチャを連番で取得する関数
 glBindTexture(GL_TEXTURE_2D, texture[i]);
 //i枚目テクスチャを貼り付け
}

というやり方を考えていました。


108:デフォルトの名無しさん
07/06/09 13:18:05
ごめん、テクスチャの中身を更新するのと勘違いした
そのやり方が普通だよ

109:デフォルトの名無しさん
07/06/09 13:36:06
ありがとうございます!
これで迷い無く組めそうです。

あと、上のは少し違っていました
glBindTexture(GL_TEXTURE_2D, texture);

こうやっていくつもりでした。


テクスチャの中身を更新、というのは具体的にどういうことなのでしょうか
私のは中身を更新、していないのですか?
すみません…何回も何回も

110:デフォルトの名無しさん
07/06/09 13:44:04
最初glBindTextureの代わりに毎回glTexImage2Dで画像をロードするのかと思ったんだよ
これだと劇的に遅くなる代わりにメモリはテクスチャ1枚分しか使わないから

111:デフォルトの名無しさん
07/06/09 14:06:13
] 授業単元:プログラミング実習
2] 問題文(含コード&リンク): 2教科のテストの点数を入力し、その2つの点数に
任意の点数を加算する関数を、ポインタを使って定義し、以下のように出力するコー
ドを提出しなさい。
例)2教科分の点数を入力してください。
  78
  65
  加算する点数を入力してください。
  12
  12点加算したので
  科目1は90点になりました。
  科目2は77点になりました。

[3] 環境
 [3.1] OSLinux
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語:C
[4] 期限:6月11日17時まで
[5] その他の制限: 配列を関数までならいました。ポインタは初めてです
とにかく初心者です。
よろしくお願いします(><)



112:デフォルトの名無しさん
07/06/09 14:06:30
おそらく私がやろうとしているのは、そうなっています
SetTextureのところで、毎回違う画像(BMP)を拾ってきて、それをテクスチャにして
ポリゴンに貼り付けていくので…



113:デフォルトの名無しさん
07/06/09 14:12:51
>112
それだとglBindTextureはいらないよ

glBindTextureは時間のかかるglTexImage2Dなどのテクスチャロード処理を事前にやっておき
描画を高速にするためのものだから

114:デフォルトの名無しさん
07/06/09 15:44:51
OpenGLの勉強を始めたい大学生ですがCygwinでも大丈夫でしょか?
それともVisual studioを買って勉強したほうがいいでしょうか?
自分のパソコンにはCygwinが入っていて大学だとVisual studioなのですが。
何か違いが出てきますか?

115:デフォルトの名無しさん
07/06/09 18:05:14
Cygwinだとどうなるのかは知らないけど、
今はVisualC++2005 ExpressEditionという無料のバージョンがあるよ
OpenGL用のSDKが追加で入るのかは知らないけど


116:デフォルトの名無しさん
07/06/09 18:32:15
ExpressEditionだったら、プラットフォームSDKをいっしょに入れればOpenGLのSDKもついてくるよ。
ダウンロードするページにプラットフォームSDKを一緒に使いましょうみたいなお知らせがあるし、
でないとwindows.hもつかえないんじゃなかったっけ?

117:デフォルトの名無しさん
07/06/10 00:04:20
URLリンク(plaza.rakuten.co.jp)

ここに導入方法が

118:デフォルトの名無しさん
07/06/10 00:56:00
Cygwinでも大丈夫だし、そっちのほうが後々Linux等で動かしたくなったときに
楽かもしれないよ。大変かもしれないけど。

119:デフォルトの名無しさん
07/06/10 12:34:18
> 楽かもしれないよ。大変かもしれないけど。

どっちだよ

120:デフォルトの名無しさん
07/06/10 13:14:25
だってwin32API使ってたら互換性ないしさ

121:デフォルトの名無しさん
07/06/10 19:29:45
すいません109で聞いたものなのですが
テクスチャを大量に貼り付けるのに、このようにしたのですが、何も貼られなくて進めなくなっています…
床井先生のところをみながら、手探りでやっています。
static void SetTexture(int i){
/* テクスチャの読み込みに使う配列 */
GLubyte texture[TEXHEIGHT][TEXWIDTH][3];
FILE *fp;
sprintf(texture1,"texture%04d",i); //連番でテクスチャ読み込み
/* テクスチャ画像の読み込み */
if ((fp = fopen(texture1, "rb")) != NULL) {
fread(texture, sizeof texture, 1, fp);
fclose(fp);
}
else {
perror(texture1);
}
/* テクスチャ画像はバイト単位に詰め込まれている */
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
/* テクスチャの割り当て */
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, TEXWIDTH, TEXHEIGHT, 0,
GL_RGB, GL_UNSIGNED_BYTE, texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
}
ディスプレイ関数側ではこのように呼び出しています
for(i=1;i<=SLICE_NUM;i++){
glBegin(GL_QUADS);
SetTexture((int)i);
/* テクスチャマッピング開始 */
glEnable(GL_TEXTURE_2D);
glTexCoord2d(0.0, 1.0); glVertex3d(-1.0, -1.0, i/SLICE_NUM);glTexCoord2d(1.0, 1.0); glVertex3d( 1.0, -1.0, i/SLICE_NUM);lTexCoord2d(1.0, 0.0); glVertex3d( 1.0, 1.0, i/SLICE_NUM);glTexCoord2d(0.0, 0.0); glVertex3d(-1.0, 1.0, i/SLICE_NUM);
glEnd();}

122:デフォルトの名無しさん
07/06/10 20:22:34
121ですが、色々みて
initやmain関数で先にテクスチャを確保しないとダメっぽいということがわかりました…

動的にディスプレイ関数の中で確保する方法とかないでしょうか

123:デフォルトの名無しさん
07/06/10 20:48:19
glBindTextureってどこでやってんの?


124:デフォルトの名無しさん
07/06/10 21:02:36
glBindTextureは使っていません
テクスチャに関係している部分はココだけです。

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, TEXWIDTH, TEXHEIGHT, 0,
GL_RGB, GL_UNSIGNED_BYTE, texture);

ここで、開いたテクスチャが割り当てられると思ってやっていたのですが…


125:デフォルトの名無しさん
07/06/10 21:44:27
glEnableはglBeginとglEndの中に書いちゃダメだよ
というか設定系はglBeginの前に全部終わらせといて
Begin~Endの中にはglVertexとかglTexCoordとかだけにしよう

126:デフォルトの名無しさん
07/06/10 21:58:30
>>111
オメエ、mixiで手当たり次第に、マイミク登録して、聞いていただろう

>>125
え!それ知らなかった。
それってどこかに書いてある?



127:デフォルトの名無しさん
07/06/10 21:58:50
>>125さん
できました。
本当に、ただ、そこだけだったんですね
SetTextureをBeginから出しただけで、思ったとおりに出来ました

これだけのことなのに、ずっと悶々ググッていました
すみません、ほんと助かりました
これでようやく帰れます。。。ありがとうございました・゚・(ノД`)・゚・。

128:デフォルトの名無しさん
07/06/11 00:40:12
>>126
OpenGL SDKのリファレンス、glEnableのErrorsの欄にあった
たぶん青本でも書いてあると思うよ

129:デフォルトの名無しさん
07/06/11 01:01:03
>>126
常識だぜ

130:デフォルトの名無しさん
07/06/11 17:59:31
>>128
青本もってねーや。webで探してみる

>>129
マジ?

131:≠129
07/06/11 19:14:30
>>130
マジ


glBegin~glEndの中では、glEnableが使えないというよりはむしろ
ごく少数の限られたGLコマンド以外のほとんどがエラーになるんだでよ

132:デフォルトの名無しさん
07/06/12 15:55:36
というのはガセ

133:デフォルトの名無しさん
07/06/12 17:23:04
青本より引用
Only a subset of GL commands can be used between glBegin and glEnd.
The commands are glVertex, glColor, glIndex, glNormal, glTexCoord, glEvalCoord, glEvalPoint, glArrayElement, glMaterial, and glEdgeFlag.
Also, it is acceptable to use glCallList or glCallLists to execute display lists that include only the preceding commands.
If any other GL command is executed between glBegin and glEnd, the error flag is set and the command is ignored.

134:デフォルトの名無しさん
07/06/13 05:00:11
カーマックktkr
URLリンク(www.4gamer.net)

135:デフォルトの名無しさん
07/06/13 06:16:56
>  マップ全体が,20GBもある一つのテクスチャ画像で覆われており,
> 例えば,マップ内にある山の頂上付近の色だけを変えたり,
> 岩に名前を掘り込んだりといった具合に,マップの表面を自在に
> 変更することが可能。さらに,パフォーマンスや安定性には一切影響を与えないという。

すげえな。
どうやってんだ?
20Gって、VRAM足りんよな?
動的に読み込んだりして、あとはどうするんだろ・・・

136:デフォルトの名無しさん
07/06/13 21:33:09
カーマックのDirectX嫌いも直ったみたいだしもうWinではGL使わないかもね

137:デフォルトの名無しさん
07/06/14 20:48:42
OpenGLの勉強を始めたいのですがおすすめの書籍・サイトはありますか?
ちなみに大学生でVisual Studioは持っていないのでUNIX環境で作るつもりです。

138:デフォルトの名無しさん
07/06/14 21:38:30
GLUTによる「手抜き」OpenGL入門

139:デフォルトの名無しさん
07/06/14 21:58:18
リファレンスなんかはOpenGL SDKをどうぞ
URLリンク(www.opengl.org)

140:デフォルトの名無しさん
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のドライバではコンパイルできないソース吐くから使うのあきらめたな

あれからだいぶ時間たってるからその辺直ってるといいね


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