OpenGLスレ Part11 ..
[2ch|▼Menu]
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のWikipedia項目リンクが正しいとか思ってるんだが、どうだろうか?

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
(@u@ .:;)ノシ

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でやりたいんですが。もちろん動画です。



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

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