OpenGLスレ Part 3 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
03/10/31 00:55
マルチプラットフォームなグラフィックAPIそれがOpenGL!
DirectXもいいがOpenGLもそれなりに(・∀・)イイ!!
質問、雑談何でもいいから書き込め!

- 過去スレ -
スレリンク(tech板)

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

2:デフォルトの名無しさん
03/10/31 00:56
- ライブラリ & Toolkit -

GLUT
URLリンク(www.opengl.org)

GLUI
URLリンク(www.cs.unc.edu)

wxWindows
URLリンク(www.wxwindows.org)

FLTK
URLリンク(www.fltk.org)

Qt
URLリンク(www.trolltech.com)

FOX
URLリンク(www.fox-toolkit.org)

csgl(C#)
URLリンク(csgl.sourceforge.net)


3:デフォルトの名無しさん
03/10/31 00:56
- 赤本 -
URLリンク(www.opengl.org)
URLリンク(romka.demonews.com)

- お勉強サイト -
URLリンク(nehe.gamedev.net)
URLリンク(www.flipcode.com)
URLリンク(www.gamedev.net)
URLリンク(romka.demonews.com)
URLリンク(www.exa-corp.co.jp)
URLリンク(www.wakayama-u.ac.jp)


4:デフォルトの名無しさん
03/10/31 00:58
過去スレ

Part 1: スレリンク(tech板)
Part 2: スレリンク(tech板)

5:1
03/10/31 00:59
適当に立てちゃいました。
あとよろ。

6:デフォルトの名無しさん
03/10/31 01:30
>>1


DAT落ちしててビックリした。
part2は1000までいったの?

7:デフォルトの名無しさん
03/10/31 01:49
>>6
漏れも985までしか確認できなかったyo。


8:デフォルトの名無しさん
03/10/31 03:06
URLリンク(up.isp.2ch.net)
上のようにポリゴンが交差するとギザギザになるのを防ぐには
ポリゴンが交差しないようにモデリングするしかないですかね・・・?


9:デフォルトの名無しさん
03/10/31 07:01
>>1乙です
俺も985までしか見てない

10:デフォルトの名無しさん
03/10/31 08:59
>>8
単にZバッファの精度が足りてないだけと思われ。
near,farを適切に設定(不必要に広くとっていたら狭くしてみる)するとか、
もしZバッファが16ビットだったら32ビットにしてみるとかやってみそ。

11:デフォルトの名無しさん
03/10/31 13:09
>>10
なるほど。やってみます。ありがとう

12:デフォルトの名無しさん
03/10/31 23:45
GL_NV_texgen_reflectionの具体的な使用例を挙げてるとこってないですかね?

13:デフォルトの名無しさん
03/11/01 15:36
>>1
スレ中にでてきた奴も含めろよ

GLT
URLリンク(www.nigels.com)

14:デフォルトの名無しさん
03/11/01 17:09
>>13
んじゃ、ついでに個人的な趣味でSDLとWideStudioも加えて
>>2をこんな感じにするのでどうでしょ?

- ライブラリ & Toolkit -

GLUT: URLリンク(www.opengl.org)
GLUI: URLリンク(www.cs.unc.edu)
wxWindows: URLリンク(www.wxwindows.org)
FLTK: URLリンク(www.fltk.org)
Qt: URLリンク(www.trolltech.com)
FOX: URLリンク(www.fox-toolkit.org)
csgl(C#): URLリンク(csgl.sourceforge.net)
GLT: URLリンク(www.nigels.com)
SDL: URLリンク(www.libsdl.org)
WideStudio: URLリンク(www.widestudio.org)

15:デフォルトの名無しさん
03/11/01 17:33
スクリーンキャプチャした画像をテクスチャとして使うには、
一旦glReadPixelsしたのをglGenTextures〜glTexImage2Dで登録して
使うしかないのでしょうか?
なんか一旦メインメモリに持ってくるのが重いんじゃないかとか
余計な心配をしてしまうのですが…。

16:デフォルトの名無しさん
03/11/01 18:12
glCopyTexImage2D か glCopyTexSubImage2D

17:15
03/11/01 20:06
>>16
おぉ!やはり専用の関数があったのですね。
ありがとうございました、早速試してみます。

18:デフォルトの名無しさん
03/11/01 23:37
テクスチャ座標の動的生成で平行投影時に投影角を傾けるにはどーすれば良いんでしょう?
あのテクスチャが直線状になっちゃうのが激しく嫌なんですが。

19:デフォルトの名無しさん
03/11/02 02:18
>18
glMatrixModeでGL_TEXTURE指定してglRotateかけるのではダメなの?

20:デフォルトの名無しさん
03/11/02 04:23
OpenGLってvoxel使えるの?

21:質問
03/11/02 10:24
VC5.0&Win2KでOpenGLやっております。
以下のようなコードで、リンクエラーが出ます。

#include <GL/glut.h>

void display(void)
{
 〜
}

int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glClearColor(1.0, 1.0, 1.0, 0.0);
glutMainLoop();
return 0;
}

glutTest1.obj : error LNK2001: 外部シンボル "___glutInitWithExit@12" は未解決です
glutTest1.obj : error LNK2001: 外部シンボル "___glutCreateWindowWithExit@8" は未解決です
Debug/glutTest.exe : fatal error LNK1120: 外部参照 2 が未解決です。
link.exe の実行エラー

となります。glut32.libなど、
ライブラリの追加はやったのですが…どうしたらいいでしょうか?

22:デフォルトの名無しさん
03/11/02 10:30
>>1>>14
あまり多くのURLを一度に書き込まない方がいいよ。
この板ではまだ規制は始まっていないみたいだけど

23:デフォルトの名無しさん
03/11/02 11:01
>22
何か始まったの?
漏れのよく逝く何枚かの板ではまだ聞いた事ないんだけど

24:デフォルトの名無しさん
03/11/02 11:02
>20
努力次第で

25:デフォルトの名無しさん
03/11/02 11:20
>>23
スレリンク(operate板)
スレリンク(operate板)
リンク先が2ch内でも規制対象だとか

26:21
03/11/02 11:28
すみません、どなたか21が分かる人いませんか…

27:デフォルトの名無しさん
03/11/02 11:29
>>26
6.0以上を使ってください。

28:21
03/11/02 11:34
>>27
考えてみます。

29:デフォルトの名無しさん
03/11/02 11:46
>>28
どう見てもglut32.libの中身がうまくリンクされてないとしか思えないけど…
glut32.libを入れなおすとかワークスペースを作り直すとか試してみた?


30:デフォルトの名無しさん
03/11/02 12:05
>>19
glMatrixMode(GL_TEXTURE);
glLoadIdentity();
glRotatef(angle, x, y, z);
glMatrixMode(GL_MODELVIEW);

で試したのですがダメでした。

glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
↑このテクスチャ座標を傾けたいのですが・・・

31:デフォルトの名無しさん
03/11/02 14:57
>>30
>glEnable(GL_TEXTURE_GEN_S);
>glEnable(GL_TEXTURE_GEN_T);

直線状になるっていうのがなにか良くわからないけど、もしかしたら、
三次元空間に投影していて、同次除算していないとか?
そうだったら、GL_TEXTURE_GEN_R についても考慮しないといけない
気がする。(はずしてたらスマソ)

32:21
03/11/02 15:23
>>29
やってみたけど無理でした…


33:デフォルトの名無しさん
03/11/02 16:45
>>32
ダミーのglut32.lib置いてみたりすると>>21のエラーが出るね
ただ他にも外部シンボル未解決エラーが計9個でる。
なんでその二つだけ見つからないんかな?
やっぱコンパイラ側の問題かなぁ・・・

34:デフォルトの名無しさん
03/11/02 23:58
>>21
URLリンク(www.microsoft.com)

35:デフォルトの名無しさん
03/11/03 00:54
>>25
要するに、h抜けばオッケーなわけね。
次から気を付けよう。

36:デフォルトの名無しさん
03/11/03 01:52
GL_ARB_vertex_buffer_object使ってる人いない?
URLリンク(oss.sgi.com)
ここのサンプルを元に、BufferDataARBのパラメータ変えたり色々弄ってるんだけど、
普通に描画する場合と速度全く変わらない。何でだろう。
GL_NV_vertex_array_rangeだと目に見えて速くなるんだけど…。

37:21
03/11/03 08:17
>>34
ありがとうございます。
とりあえず環境変えてみます。

38:20
03/11/06 22:51
>>24
ヒントください。vtk使えってことじゃないですね?

39:デフォルトの名無しさん
03/11/07 20:50
>38
vtkって何?

voxelは別名なんて言うか知ってるか?
それが分かれば手掛かりになると思うぞ

40:デフォルトの名無しさん
03/11/07 20:57
Volume Element?

41:20
03/11/07 22:27
volume pixel つなげてvoxel.
vtkはOpenGLを利用した高レベル3Dライブラリでつ。

42:デフォルトの名無しさん
03/11/07 22:51
Volume Textureとか聞いた事ないか?

43:デフォルトの名無しさん
03/11/08 15:40
OpenGL 1.5 specification available for download
URLリンク(www.opengl.org)
うほっ!いいOpenGL (プログラミング)やらないか?

今んとこドライバくっついてるの3Dlabsだけ?nVidiaもATIもあるのか?
使ってるのがGeForce2MX400なもんで…

44:デフォルトの名無しさん
03/11/08 18:56
1.5、ヨサゲだよねぇ
早くATIから対応ドライバ出てくれないか待ち遠しいYO!

45:デフォルトの名無しさん
03/11/08 23:44
OpenGL信者は赤本1.4(洋新書)を買って精進しる!

ついでに布教活動も忘れずにね。

46:デフォルトの名無しさん
03/11/09 11:24
おまいらシャドウは何をつかってるんだ?


47:デフォルトの名無しさん
03/11/09 16:08
>>46
平面投射シャドウが一番簡単だけど、詰まる所シャドウボリュームが一番実用的だね。

48:デフォルトの名無しさん
03/11/09 17:08
誰かパーティクルの解説載せてある所知らない?

49:デフォルトの名無しさん
03/11/09 17:48
URLリンク(www2.alc.co.jp)

50:デフォルトの名無しさん
03/11/10 01:17
OpenGL Shading Languageって良さげなんでしょうか?
URLリンク(www.amazon.co.jp)

まだ出てないので難しいかもしれませんが…。

51:デフォルトの名無しさん
03/11/12 12:27
OpenGLでAIを作ろうと思う。
ウィンドウに表示する画像の視点(自分視点)とは別に、画面に表示しないAI視点のビューボリュームを設定して、
その画像認識を行ないたいんだけど、どうやったらいいの?

52:デフォルトの名無しさん
03/11/12 12:33
たしか、HL2でも、カメラオブジェクト視点からの映像を加工した上で画面内のモニタに映してたよね。
あれが出来ればいいんだけど。

53:デフォルトの名無しさん
03/11/12 12:47
おもいっきり外してたらすんません。
グラフィックボードに任せてエフェクトさせてる場合、
画面のキャプチャってできるんです?
エミュレーションじゃ本当の画面と違ってしまうだろうし。
ゲー本なんかのキャプチャ画像ってどうしてんでしょ。
まさか、カメラでパシャなんてことないよね。

54:デフォルトの名無しさん
03/11/12 13:14
>>53
スレ違い

55:デフォルトの名無しさん
03/11/12 14:14
ゲーム作りたいんですが、2D日本語フォント表示する方法教えて下さい。

56:デフォルトの名無しさん
03/11/12 17:40
フォントの表示はかなりめんどくさいよ。
glBitmapかglDrawPixelsで描くか、テクスチャにして貼り付けるしかないと思う。
ここらへんが参考になるかも。
URLリンク(www.uri.sakura.ne.jp)
URLリンク(i-saint.abz.jp)

57:デフォルトの名無しさん
03/11/12 18:06
>>56
JText.cとか言うファイルで上手くやれるって聞いたけど、どうなの?

58:デフォルトの名無しさん
03/11/12 18:17
文字テクスチャにする場合って、Orthoにしなちゃなんないだろうから、
ゲームのPerspectiveとどう分ければいいの?

59:デフォルトの名無しさん
03/11/12 18:38
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0.0, UIWidth, UIHeight, 0.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
// glPushAttrib(GL_ALL_ATTRIB_BITS);
glPushAttrib(GL_ENABLE_BIT);
glDisable(GL_LIGHTING);
glDisable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);


60:デフォルトの名無しさん
03/11/12 19:03
続きは?

61:デフォルトの名無しさん
03/11/12 19:20
glTexCoord2fとかでフォントテクスチャ貼るなりしてから
スタックをポップして終わり

62:デフォルトの名無しさん
03/11/12 19:26
>>52
HL2ってOpenGLもつかえるの?

63:デフォルトの名無しさん
03/11/12 22:36
さ〜て、そろそろ赤本1.4が発売になるわけだが・・・。
しかしこのスレの寂れ様ときたら(ry

 布 教 活 動 や ら な い か ?

64:デフォルトの名無しさん
03/11/12 22:54
赤本1.4の売りって?何か良い所ある?

65:デフォルトの名無しさん
03/11/12 23:11
持ってるとなんだか威張れる様な気が...

66:デフォルトの名無しさん
03/11/12 23:19
スポットライトがまともに表示されないのですが、なぜでしょうか?
頂点増やさないとだめかな?

67:デフォルトの名無しさん
03/11/12 23:49
>>66
スポットライトは単一面上では不可能です。

68:デフォルトの名無しさん
03/11/13 00:10
GNUが関わってると知ると、よさげなソフトがうんこに見えるんですが、
なんででしょうか。

69:デフォルトの名無しさん
03/11/13 01:06
GNU is not Unko

70:デフォルトの名無しさん
03/11/13 01:19
Great Nature Unko

71:デフォルトの名無しさん
03/11/13 16:49
>>67
単純な面でも、細かいポリゴンで構成しないと駄目ということですね。
帰ったら試してみます。

72:デフォルトの名無しさん
03/11/14 01:05
>>55
要件を満たすかわからないが、FTGLを勧める。
URLリンク(homepages.paradise.net.nz)
これのBitmapフォントかPixmapフォントかどちらかで2Dフォントかけたはず。
コンパイルにfreetypeが必要だから忘れずに。日本語表示する場合は
iconv等でWCHAR_T型に変換しないと文字化けします。
またそのせいで、半角と全角が混在する文字列を描画することはできません。
render(char*)が半角用render(wchar_t*)が全角用なんで分けて描画すればできると思う。

windowsだったら、ポリゴンフォントを取ってくる関数が有るんだっけ?
Linuxで日本語ポリゴンフォントを描画できるものって、ほかにあったら教えてください。

73:デフォルトの名無しさん
03/11/14 02:00
1.4よりOGSL欲しい。
これもガイドでサンプルプログラムとかはあまりないんだろうか…

サンプルプログラムが豊富に載ってるHLSLとかCgの本いっぱいあるからなぁ。

74:デフォルトの名無しさん
03/11/14 19:40
・赤本 Version 1.4
・OpenGL Extensions Guide
・OpenGL Shading Language

この三冊は必携だね(・∀・)ニヤニヤ

75:デフォルトの名無しさん
03/11/14 21:53
OpenGLの本高過ぎ。ゲーム製作関連の本はネへくらいのしか無いし。
D3Dの方が結果的に費用も手間も何でも安くつく。

76:デフォルトの名無しさん
03/11/15 01:57
>>74-75
どっちのAPIにしろ、オンラインのリソース利用すればAPI利用するための
必携の書なんて今更無いけどなぁ…。

# OpenGLなんてopengl.orgやatiやnvidiaのサイトみれば大抵仕様とかサンプルがのってるし、
# OGSLなら仕様もSDKもとりあえず↓にあるし。
# URLリンク(www.3dlabs.com)


77:デフォルトの名無しさん
03/11/15 02:19
ウチのグラボじゃ動かないや>OGSL

78:デフォルトの名無しさん
03/11/15 15:28
win2000,VC++6.0で、
現在テクスチャ貼りやってるんですが、
gluScaleImage()のところで落ちます…

gluScaleImage(GL_RGBA,
image.m_width,image.m_height,
GL_UNSIGNED_BYTE,
image.m_buffer,
scaleW,
scaleH,
GL_UNSIGNED_BYTE,
outBuffer);

ぐぐってみると最後の引数の大きさが足りてない場合に落ちる、
元画像の幅が4の倍数でないとダメ、というのがありましたが、それは守っています。
どなたか助けてください。

79:78
03/11/15 15:40
自己解決しそうです。

80:78
03/11/15 15:55
やっぱり無理でした。

81:78
03/11/15 16:54
OpenGLとは関係ない問題のようなので、
消えます。

82:デフォルトの名無しさん
03/11/15 18:13
なんか赤本1.4の発売日が月末30日に延期になってないか?


まあ、いいんだけど。

83:デフォルトの名無しさん
03/11/15 20:34
>>82
今Amazon.co.jpで確認してみたけど、確かにそうなってるね。
どうりで発送メールが来ないとわけだ。

84:デフォルトの名無しさん
03/11/16 02:03
一度描いたら、ずっと変えない、背景とか建物などの構造物のデータと
アニメーションしたり、動かすことのできるデータを区別して、
描画にかかる負荷を減らしたいんですが、どうすればいいでしょう。

背景などのデータもアニメーションするたびに生成しているので、
効率が悪いのですが、一度生成した、ポリゴンをどう保持すれば
いいのかイマイチ分かりません。

誰か、いい方法知りませんか?

85:デフォルトの名無しさん
03/11/16 02:23
>>84
URLリンク(www.google.com)

86:デフォルトの名無しさん
03/11/16 08:51
某入門書では表示リスト。

87:デフォルトの名無しさん
03/11/16 18:03
OGSLの良い点とか特徴って何ですか?

88:デフォルトの名無しさん
03/11/16 18:09
PyGtkglサイコー


89:デフォルトの名無しさん
03/11/17 00:38
にゃっほー

90:デフォルトの名無しさん
03/11/17 05:06
GLint num;
glGetIntegerv(GL_MAX_LIGHTS, &num);

ってやっても
numに何も入ってくれないんですが
何が考えられますか?
最大光源数(8以上)が入ってくれることを期待してたんですが

91:デフォルトの名無しさん
03/11/17 15:31
タイプミスだろ。mumとか書いてたんじゃないの。

92:デフォルトの名無しさん
03/11/17 19:35
カレントレンダリングコンテキストが無効な状態になってるとか

93:デフォルトの名無しさん
03/11/18 19:45
Cygwinのglut使ったところ、
ウィンドウのクローズボタン押してもglutMainLoop()を抜けない。
どこかでexit(0)を呼び出すことになってるって見た気がするんだけど。
(事実、某UNIX系OSでコンパイル&実行したらちゃんとexit(0)された。)
glutをテスト目的以外で使うのはやはり辛いか...

94:デフォルトの名無しさん
03/11/18 21:35
>>93
普通に終了するけど?

95:デフォルトの名無しさん
03/11/18 21:56
>>93の問題とは少しずれてますが…

確かLinuxでの話だったと思うけど、
終了してもglutMainLoop()の次の処理は実行されなかった気がする…
終了処理を記述したいときは、"Q"とかESCで終了するようにして、
kyefunc()で対応してました。

96:デフォルトの名無しさん
03/11/19 01:04
>Description
>
>glutMainLoopは GLUT イベント処理ループに入る. GLUTプログラム内で一度だけコールする.なお,一度コールされると,決して返ってこない.必要に応じて,登録されたコールバックをコールする.



97:デフォルトの名無しさん
03/11/19 01:19
Part3に移ってたのか…。2ちゃんビュア使ってるから気がつかなかった。

かなり遅レスだが、>>21のはヘッダがc++に対応していないのが原因だとおもわれ。
関数がextern "C"されているか要確認。
もしくは__cplusplusがdefineされていなからその部分が抜けているかだと。

98:デフォルトの名無しさん
03/11/20 02:40
OGSLについて誰か特徴を教えて下さい。
あと、頂点シェーディングとピクセルシェーディングとは具体的にどのような効果をもたらすのか宜しくお願いします。

99:デフォルトの名無しさん
03/11/20 03:05
OpenGLでノンフォトリアリスティック表現って出来る?
鉛筆画風にやりたいんだけど。

100:デフォルトの名無しさん
03/11/20 10:29
頂点シェーディングとピクセルシェーディングでノンフォトリアリスティック表現が出来ます

101:デフォルトの名無しさん
03/11/20 13:12
>>93
あれ? 最近Cygwinを再インストールしたからその関係かなぁ。
>>95
glutMainLoop内でexit(0)するので、glutMainLoopのの先は実行されないのは確認してます。
>>96
URLリンク(www.gimlay.org)の3.070にexitする
ようなことが書いてあったので期待してたけど、正式な仕様ではそうじゃ
ないっぽいな。
うーん。Windowsだとウィンドウが消えてプロセスが残ってても気づかないから
困るんだよね。クローズボタンを押しても何も起きないのならまだいいんだけど。

102:デフォルトの名無しさん
03/11/20 13:20
>>93>>94のミスです。

103:デフォルトの名無しさん
03/11/20 17:29
>>100
OpenGLにその機能ってある?

104:デフォルトの名無しさん
03/11/20 22:11
あげ

105:デフォルトの名無しさん
03/11/21 23:32
グローブ状のデバイスで人の手の運動を計測して,
その運動をOpenGLで画面上に再現したんだけど
どなたかそんなことがピンポイントで書かれている
サイトとか知ってません?

もしくはそれに類似した内容がのってるサイトとか.

106:デフォルトの名無しさん
03/11/21 23:51
>>105
制御工学の教科書買って勉強しる。

107:デフォルトの名無しさん
03/11/21 23:56
いやいや,いきなりソースコードとかのってるようなサイトが知りたいのです.


108:デフォルトの名無しさん
03/11/22 00:05
お前、すげーな

109:デフォルトの名無しさん
03/11/22 00:14
spinに載ってたが、
RADEONがOpenGL Shading Language対応したそうでつ。

110:デフォルトの名無しさん
03/11/22 00:39

O p e n G L S h a d i n g L a n g u a g e a g e

111:デフォルトの名無しさん
03/11/22 01:51
>>109
ATIからARB_vertex_program と ARB_fragment_program
のサンプルも出たね。
URLリンク(mirror.ati.com)

112:デフォルトの名無しさん
03/11/22 10:16
OpenGL Shading Language
ってなに?なにか特殊なスクリプト言語かなにかなの?

113:デフォルトの名無しさん
03/11/22 12:15
頂点シェーダとフラグメントシェーダ用の言語でしょ
特殊なスクリプト言語かというと、確かにそうだな。

114:デフォルトの名無しさん
03/11/22 13:16
カノプーでFX5950が売ってたんで脊髄反射で買ってしまったー!!
せっかくだから、がんばってシェーダーの勉強でもしよう。

そんで、Cgを使おうと思うんだけど、OGSLとは別もんなのかな?
HLSLとCgは言語レベルでは同じもんらしいから、OpenGL上でも
Cgが業界標準になってほしいきがするけど…。

115:デフォルトの名無しさん
03/11/22 15:28
>>114
個人的にはCgは特定グラフィックチップメーカー(nVidia)依存だから、
あんまりデファクトスタンダードになって欲しくなかったり。

nVidia提供の Cg -> HLSL のコンバータみたいなのはあった気がするから、
そのうちOGSLへのコンバータも出すんじゃない?

116:デフォルトの名無しさん
03/11/22 16:19
というか、それ以前にもうCgは終了じゃないのか?
これからはDirectXがHLSL、OpenGLがOGSLの2大政党でしょ。

ちなみにCgはRadeonでも動作するよ。

117:デフォルトの名無しさん
03/11/22 17:11
素人で非常に馬鹿みたいな質問をするのですが…
CgやOGSLの存在意義はなんなのでしょう?
CやC++でOpenGLのプログラムはかけるんじゃないのですか?

118:デフォルトの名無しさん
03/11/22 17:55
Cgの存在意義 = HLSLの元ネタ
OGSLの存在意義 = HLSLに対抗するネタ

CgとOGSLの存在意義 = ビデオチップメーカーの小遣い稼ぎのネタ

119:デフォルトの名無しさん
03/11/22 18:03
Cg, OSGL, (そしてHLSL)も、CPU側じゃなくて、
GPU側で走らせるプログラムを書くための言語。

120:デフォルトの名無しさん
03/11/22 22:45
OpenGL Shading Language 2004年2月1日発売予定
URLリンク(www.amazon.co.jp)

OpenGL Programming Guide 2003年11月30日発売予定
URLリンク(www.amazon.co.jp)

しかし微妙に値段が高いな・・・

121:デフォルトの名無しさん
03/11/24 16:11
フラグメントシェーダって何?
ピクセルシェーダと違うの?



122:デフォルトの名無しさん
03/11/24 18:16
どなたかSkyboxの構築方法をご存知ないですか?

123:デフォルトの名無しさん
03/11/24 19:59
>>121
名前が違う (それしか思い付かん)

124:デフォルトの名無しさん
03/11/24 20:57
頂点毎に色を指定したいのですが、
前に使用したglMaterialfv()の効果が出てしまいます。
glMaterialfv()の無効化はどのように行えばよいですか?

125:デフォルトの名無しさん
03/11/25 08:52
そのミカン俺が剥こうか?

126:デフォルトの名無しさん
03/11/25 09:49
glDisable(GL_LIGHTING);

127:デフォルトの名無しさん
03/11/25 13:06
セレクションモードでゲットした、セレクションバッファの
デプスの最小値と最大値って何に使うの?
URLリンク(www.geocities.jp)
の下の方にある
// 最小デプスの確認
if(depth_min>depth_1){
の意味が分かりません、だれか教えてくださいな。


128:デフォルトの名無しさん
03/11/25 14:03
OpenGLの話題かWin32APIの話題か迷ったのですが、こちらで質問させて下さい。
win32上でOpenGLの描画画面を任意のサイズでオフスクリーンレンダリングし、
ビットマップ形式でファイルに保存したいのですが、以下のような手順でうまくいきません。
どなたかお知恵を・・・。

------
int w = 1000; // 幅
int h = 1000; // 高さ
int bc = 24; // ピクセルあたりの色数

int length = 4*((w*bc+31)/32); // バッファの一行の長さ
DWORD filesize = sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+length*h;

// バッファの確保
LPBYTE buf=(LPBYTE)GlobalAlloc(GPTR,filesize);
LPBITMAPFILEHEADER head=(LPBITMAPFILEHEADER)buf;
LPBITMAPINFOHEADER info=(LPBITMAPINFOHEADER)(buf+sizeof(BITMAPFILEHEADER));
LPBYTE pixel=buf+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);

// ファイルヘッダ
head->bfType='B'+256*'M';
head->bfSize=filesize;
head->bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);

// ビットマップヘッダ
info->biSize=sizeof(BITMAPINFOHEADER);
info->biWidth=w;
info->biHeight=h;
info->biPlanes=1;
info->biBitCount=bc;
---
つづく

129:デフォルトの名無しさん
03/11/25 14:05
つづき
---
// デバイスコンテキストの作成
HDC hdc = ::CreateCompatibleDC(NULL);

// DIBの作成(ここで既に確保された&pixelを指定してるのが怪しい気が・・・)
HBITMAP hbmp = ::CreateDIBSection(hdc,(BITMAPINFO*)info,DIB_RGB_COLORS,(void**)&pixel,NULL,0);

// ビットマップメモリをデバイスコンテキストに設定
HBITMAP hbmp_old = (HBITMAP)::SelectObject(hdc,hbmp);

// ピクセルフォーマットの設定
PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR), 1,
PFD_DRAW_TO_BITMAP | PFD_SUPPORT_OPENGL | PFD_SUPPORT_GDI,
PFD_TYPE_RGBA, bc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 0, 0, PFD_MAIN_PLANE, 0, 0, 0, 0
};
int pf = ::ChoosePixelFormat(hdc,&pfd);

// レンダリングコンテキストを生成してカレントにセット
::SetPixelFormat(hdc,pf,&pfd);
HGLRC hrc=::wglCreateContext(hdc);
::wglMakeCurrent(hdc,hrc);

// 描画
draw();
::wglMakeCurrent(0,0);
---
もうちょいつづく

130:デフォルトの名無しさん
03/11/25 14:05
つづき
---
// 描画
draw();
::wglMakeCurrent(0,0);

// バッファをファイルに保存
HANDLE hfile=::CreateFile(filename,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD dwSize;
::WriteFile(hile,buf,filesize,&dwSize,NULL);
::CloseHandle(hfile);

// 終了処理
::wglDeleteContext(hrc);
hrc = NULL;
::SelectObject(hdc,hbmp_old);
::DeleteObject(hbmp);
::DeleteDC(hdc);
GlobalFree(buf);
------
ここまで

131:128-130
03/11/25 14:13
>>127
セレクションバッファの最小デプス値は一番手前のオブジェクトのピクセルを指すから、
マウス座標とデプスバッファ値から一番手前のオブジェクトの世界座標を取得するときに便利です。




132:デフォルトの名無しさん
03/11/25 16:25
色が違う点が二つあって、それを線で繋いだとき、間の色が滑らかに変化するようにするには
どうしたらいいですか?

133:128-130
03/11/25 18:25
線の両端を違う色にすれば間の色は滑らかに変化しますよ。

134:127
03/11/25 20:03
>>127です。
>>131さん、
複数オブジェクトがあった場合、
ヒットした全てのオブジェクトの最小デプス値は、全て、
一番前のオブジェクトのデプスバッファ値になるのということでしょうか?
言い換えれば、最大デプス値と最小デプス値はどのオブジェクトでも
同じ値ということでしょうか?

135:131
03/11/25 22:16
いえ。セレクションが行われた点において、各オブジェクトについて最大と最小デプス値が与えられます。
で、セレクションバッファに格納されたオブジェクトの中で一番最小デプス値が小さいものが一番手前、
つまり直感的にマウスがポイントしているオブジェクトになるということを書きたかったんですが
説明不足でした。
>>127のサイトでやっているのはそういうことだと思います。

136:127
03/11/26 02:11
>>131さん、
ありがとうございました。
おかげで理解できました。

137:デフォルトの名無しさん
03/11/26 23:24
PROJECTIONモードで描画したオブジェクトをセレクションモードで取得するには、
どうすればいいでしょうか?
PROJECTIONモードでPushName(xxx)で識別子を付けると、
画面のどこを触ってもxxxを取得してしまいます。
PROJECTIONモードで描かれたオブジェクトとオブジェクトの描かれていない、
空間を区別するにはどうすればいいでしょうか?


138:131
03/11/27 00:24
>>137 PROJECTIONモードでPushName(xxx)で識別子を付けると、

ここの捉え方が変ではないですか?
実際に描画するモードがGL_RENDERモード、
セレクションのために仮想的に描画するのがGL_SELECTモードです。
で、PushNameが有効になるのはもちろんGL_SELECTモードです。
で、画面の触った場所に従ってきちんとセレクトするには
その画面を作ったGL_RENDERモードでの描画と、
GL_SELECTモードでの描画がきちんと対応していないと駄目です。
つまり同じプロジェクションマトリクスを使う必要があるということです。

GL_SELECTモードで描画するときに、GL_RENDERモードと同じ
プロジェクションマトリクスを使っていないのが原因ではないでしょうか?


139:デフォルトの名無しさん
03/11/27 11:35
>>131さん、表現が間違っていました。

オブジェクトを描画するときは、GL_SELECTモードとGL_RENDERともに
同じ関数で行っています。
ワールド座標でなく、視点を基にしたオブジェクトを
MODELVIEWからPROJECTIONモードに切り替えて、
描画していて、その描画されたオブジェクトをピックしたいのですが、
何も描かれていない、もしくはMODELVIEWで描いたものの
情報が上手く取得できなくなってしまうのです。

140:131
03/11/27 12:45
たぶんこんな手順になります。(順番重要)
当たり前だったら申し訳ない。

・セレクション
glGetIntegerv(GL_VIEWPORT,vp); // ビューポート変数を取得
glSelectBuffer(BUFFER_SIZE,sb); //セレクションバッファをセット
glRenderMode(GL_SELECT); // セレクションモードに切り替え
glInitNames(); // セレクションバッファを初期化
glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentify(); // 投影変換マトリクスの保存と初期化
gluPickMatrix(mx,vp[3]-my,pixel,pixel,vp); // セレクション領域が(mx,my)近辺(pixel の範囲)になるように投影変換マトリクスを設定
set_projection(); // 好みの投影変換マトリクスを設定。glFrustum など。
glMatrixMode(GL_MODELVIEW); // モデルビューモードに切り替え
draw(GL_SELECT); // 描画。セレクトしたいものをPushName。gluLookAtやglTranslatefなども含む。
glMatrixMode(GL_PROJECTION); glPopMatrix(); // 投影変換マトリクスを元に戻す
glMatrixMode(GL_MODELVIEW); // ビューイング変換マトリクスに切り替えておく
glPopName(); // ネームスタックをクリア
GLint hits = glRenderMode(GL_RENDER); // セレクション完了

・実際の描画
glMatrixMode(GL_PROJECTION); glLoadIdentify(); // 投影変換マトリクスの初期化 (*1)
glMatrixMode(GL_MODELVIEW); // モデルビューモードに切り替え (*1)
draw(GL_RENDER); // 描画
# ただし (*1) のところは普通はウィンドウサイズが変化したときなどに呼ぶようにする。


141:131
03/11/27 18:02
少し訂正

・実際の描画
glMatrixMode(GL_PROJECTION); glLoadIdentify(); // 投影変換マトリクスの初期化 (*1)
set_projection(); // 好みの投影変換マトリクスを設定。glFrustum など。(*1)
glMatrixMode(GL_MODELVIEW); glLoadIdentity(); // モデルビューマトリクスを初期化 (*1)
draw(GL_RENDER); // 描画
# ただし (*1) のところは普通はウィンドウサイズが変化したときなどに呼ぶようにする。


142:デフォルトの名無しさん
03/11/28 04:05
>>131さんのレス>>140のdraw(GL_SELECT);の下に

draw(GL_SELECT);
glPushMatrix();
glLoadIdentity();
glMatrixMode( GL_PROJECTION );
glPushMatrix();
glLoadIdentity();
Drawオブジェクト();
glPopMatrix();
glMatrixMode( GL_MODELVIEW );
glPopMatrix();

といった感じで、PROJECTIONモードで描きたいオブジェクトを作成したのですが、
「draw(GL_SELECT);で描画したものは正確にピックでき、
それ以外の箇所では、Drawオブジェクト();があるないにかかわらず、
Drawオブジェクト();の識別子がピックされます。」
gluPickMatrix(); は、GL_MODELVIEWにしか対応していなくて、
GL_PROJECTIONの場合は、他の関数を使うべきなのでしょうか?
MODELVIEWとPROJECTIONの理解がまだ浅いようで、勘違いしていたらすみません。

143:131
03/11/28 17:26
gluPickMatrix()はプロジェクションマトリクスを変更する関数です。
>>142 の4〜6行目でプロジェクションマトリクスを初期化してるので、
それ以後でセレクションが思い通りに行われていないのではないでしょうか?


144:デフォルトの名無しさん
03/11/29 05:06
>>131さん、ありがとうございます。
やっと、理解できました。

145:デフォルトの名無しさん
03/11/29 16:52
ゲームを作ってみたいと思っています。
OpenGL で 3D モデルを読みこむことはできますか?
それ用のルーチンはありますか?
ポリゴンを半透明にすることはできますか?

スレ先頭にあるガイドやチュートリアルをずっとあさってみているんですが、
そこのところがよく見えてきません。ご教授ください…。

146:デフォルトの名無しさん
03/11/29 17:11
できます。
ここではなく、ぐぐれば出てくる。

147:デフォルトの名無しさん
03/11/29 18:04
>>145
URLリンク(alb.hp.infoseek.co.jp)
ここにメタセコの独自形式モデルから読み込むサンプルがあるね。

ところで、SDLってどうなの?GLUTより使い易いという触れ込みらしいんだけれど。

148:131
03/11/29 18:38
>>128-130はやっぱりWIN32APIに関する質問だったかなぁ・・・。


149:145
03/11/29 19:59
>>146-147
ありがとうございました。
特に147さん、面白いサンプルのあるサイトをご紹介していただいて感謝です。

150:デフォルトの名無しさん
03/11/29 21:33
>>147
> ところで、SDLってどうなの?GLUTより使い易いという触れ込みらしいんだけれど。
使ってる。
タイマとかスレッドとかキーボード、マウス、ジョイスティック入出力とか
標準で使えるので、ゲーム作るなら結構楽。

更に、追加ライブラリのSDL_mixerとかSDL_imageとか使えば
BGM(WAV,MIDI,MP3,ogg,MOD対応)、SE(WAV)再生とか
jpeg,png,tiffその他の読み込みとかも出来るし。

あと使ったことないが、
SDL_ttf使用でフォント表示とか色々拡張できるのもありがたいかも?

因みに2ch内のスレは
スレリンク(gamedev板)
ここね。あんまり活発ではないけど。

151:デフォルトの名無しさん
03/11/29 22:44
Linuxで全画面表示をするにはどうしたらいいのでしょうか?
Windowsでは、
glutGameModeString("1024x768:32@60");
glutEnterGameMode();
で出来たのですが、Linuxではダメでした…。

152:デフォルトの名無しさん
03/11/30 00:23
>>150
なるほど。結構良さげだね。

というか何故にOpenGLには標準でテクスチャ読み込み関数が内包されてないんだろう?

153:デフォルトの名無しさん
03/11/30 07:49
>>152
グラフィックライブラリだからさ

154:デフォルトの名無しさん
03/11/30 17:57
赤本1.4は今日発売らしいけど、誰か既に入手した人いる?

155:デフォルトの名無しさん
03/12/01 01:19
>>154
アマゾンからまだ発送メールこないよ。

156:デフォルトの名無しさん
03/12/01 14:29
「通常24時間以内に発送」になったね。

157:デフォルトの名無しさん
03/12/02 00:01
アキュームバッファを使用してモーションブラーを実装したいのですが
どなたか具体的な使用方法ご存知の方っていません?

158:デフォルトの名無しさん
03/12/02 00:19
>>156
漏れの注文分、「12/2〜5に発送」だたYO!
後から注文した方が早かった?

159:デフォルトの名無しさん
03/12/02 00:34
赤本1.4発送しましたメールキター

160:デフォルトの名無しさん
03/12/02 00:38
>>159
インプレ激しく希望。
実は洋書初めてなのでちょっと迷ってるんです。

161:デフォルトの名無しさん
03/12/02 00:53
赤本新版の日本語訳って出る予定ナインですかね?


162:デフォルトの名無しさん
03/12/02 08:14
遅レスだが>>99

URLリンク(www.cs.wisc.edu)
鉛筆画風もあるぞ

まあもともとQuakeはジオメトリは自前でやっててラスタライズのみOpenGLなので
OpenGLに渡す前に処理してるわけだが

163:デフォルトの名無しさん
03/12/02 17:17
赤本1.4発売記念age

164:デフォルトの名無しさん
03/12/03 01:04
1.4買っちゃったけど、結局何が変わったの?

165:デフォルトの名無しさん
03/12/03 01:33
>>164
URLリンク(www.opengl.org)
URLリンク(www.opengl.org)
によると、1.4では、固定パイプライン用GL Extension多数追加の他に、
vertex_program拡張によるシェーダープログラム追加。
ただし1.4では低レベルの言語でのサポートのみ。ってことっぽい。

1.5になるとshader_objects, vertex_shader, fragment_shader拡張により、
高レベルシェーディング言語OGSLによるプログラミングが可能となる模様。

166:デフォルトの名無しさん
03/12/03 02:39
シェーダープログラム追加は嬉しいけど、
OGSLに対応は1.5からで、それまでは見るのも萎えるアセンブリでって事ですか。

167:デフォルトの名無しさん
03/12/03 15:26
要するに、赤本1.4買ったらこれも買えよ、ってことなんだろう。
URLリンク(www.amazon.co.jp)

というかnVIDIAはいつOGSLをサポートするんだろう?
個人的にはNV40を狙っているんだけれども。

168:デフォルトの名無しさん
03/12/03 18:33
>167
つーかその前に1.5も買わなきゃならんくなる

169:デフォルトの名無しさん
03/12/04 01:37
URLリンク(www.aw-bc.com)
待ち切れない・・・

170:デフォルトの名無しさん
03/12/04 04:53
>>145
こんなのもあるよと言うことで…
URLリンク(cal3d.sourceforge.net)

blender用のexporterもついてますです。

171:170
03/12/04 07:29
今思い出したんですが、↑は汎用のライブラリなのでOpenGL専用ってわけじゃないです。
ただサンプルデモがOpenGL+glutなので参考になると思います。
それとライブラリ自体がそれほど大きなものでは無いので、
ソースを読んでみて自分なりのモノに書き換えてシェイプアップしてみるのもいいと思いますです。

172:レプタリアン教授 ◆Sx0UvVQevE
03/12/04 11:52
1.4届いたけど、なんかボリュームが足りない気がした

173:デフォルトの名無しさん
03/12/04 19:14
だれかバンプマッピングを解説している良サイトしりませぬか?

174:デフォルトの名無しさん
03/12/04 19:21
>>173
ちゃんと検索したか?
俺、昔見たぞ。保存してないから今わからんけど。

175:デフォルトの名無しさん
03/12/05 13:54
>>172
確かに物足りないね。もっと突っ込んで欲しかった。
まあ、入門書籍だから仕方ないんだけれども・・・

OGSLに期待。

176:レプタリアン教授 ◆Sx0UvVQevE
03/12/05 18:25
青本読んでみたけど、所々全角アルファベットになってたり妙な事になってるのは仕様ですかぁ?

177:デフォルトの名無しさん
03/12/06 11:25
>>176
翻訳が変なのは仕様です。

178:デフォルトの名無しさん
03/12/06 11:51
翻訳本は訳わからんのが多いよな。なんとかならんかな。ならんよな。
なるべく原書読むようにしてるけどね。赤本は原書のほうがわかり易いと思う。

179:デフォルトの名無しさん
03/12/06 17:45
っていうか赤本1.4のサンプルコードが置いてないのは気のせいですか・・・?

180:デフォルトの名無しさん
03/12/06 17:59
>>179
無いね。さらには、errataページもrev.2向けのままだし。

181:デフォルトの名無しさん
03/12/06 18:10
>>180
気のせいじゃなかったか・・・。

まあ、発売されて間もないから仕方ないけど、ちょっと理不尽過ぎる。

182:デフォルトの名無しさん
03/12/06 23:04
よーしパパOpenGLでゲームつくっちゃうぞ!
LightWaveでモデル作ったんですがこれを座標の数値に変換する方法ないですかね?

183:デフォルトの名無しさん
03/12/06 23:38
>>182
lwoファイル読み込みライブラリでもつかえ
URLリンク(www.dstorm.co.jp)

184:デフォルトの名無しさん
03/12/06 23:57
>>183
ぅぅライブラリに頼るしかないのか…
できれば自分で作りたいんだけど3Dオブジェクトのファイルを自分で
作るのって難しいですよねぇ?

185:183
03/12/07 00:05
>>184
漏れはMetasequiaファイルの読み込みライブラリつくったけど
たらたらやってたが2週間くらいでできたぞ。
LightWaveのファイルは細かいデータがいっぱいあって、
読み込みライブラリがめんどくさそうなのでやめた。
(まぁその分高機能なんだろうが・・)

186:145
03/12/07 11:27
>>170-171
どうもありがとうございました!

187:デフォルトの名無しさん
03/12/07 12:36
>>185
じゃメタセコでやろうかな

188:デフォルトの名無しさん
03/12/07 17:56
glMap2fで同時に自由局面を2つ以上表示させたいのですが、
どこかにサンプルソースありませんか?

189:デフォルトの名無しさん
03/12/07 18:19
ていうか、いい加減SGIは赤本1.4のサンプルをアップしる!

190:デフォルトの名無しさん
03/12/08 23:11
昔自分で読み込み作ったけど183のと比べて3倍くらい遅くて凹んだ

191:デフォルトの名無しさん
03/12/10 22:43
アキュムレーションをハード処理出来るカードって有りますか?

192:デフォルトの名無しさん
03/12/11 01:37
>>191
wildcatの高いやつとかSGIのWSならできるはず。

193:レプタリアン教授 ◆Sx0UvVQevE
03/12/11 03:31
残像を作ると凄く重くなるんだけど、何かスマートな解決法はある?

194:デフォルトの名無しさん
03/12/11 04:46
ハードウェアの買い換え

195:デフォルトの名無しさん
03/12/11 06:54
全然解らん。

196:レプタリアン教授 ◆Sx0UvVQevE
03/12/11 15:11
ほら、GLExcessのデモで、ファンみたいなマークが残像残しながら回転するシーンがあるじゃん。
あれってメチャクチャ処理軽いんだけど、どうやったんだろ・・

197:デフォルトの名無しさん
03/12/11 17:23
>>196
How old are you?

198:レプタリアン教授 ◆Sx0UvVQevE
03/12/11 22:34
13歳だよ。

199:デフォルトの名無しさん
03/12/12 06:02
16進数の13歳って落ちでしょ。


200:デフォルトの名無しさん
03/12/12 15:37
まだ赤本4版のサンプルはアップされないのか・・・

201:デフォルトの名無しさん
03/12/12 18:41
どういう残像かで方法も全然違うと思うが…。
前フレームの結果を重ねるだけならglCopyTexImage2D使えば効率いいと思う。

202:あああ
03/12/13 01:37
サンプルコードを自分のプログラムに混入したら、
カラーだった出力画面がモノクロになってしまいました。
原因はなんでしょうか?

203:デフォルトの名無しさん
03/12/13 01:52
>>202
おまえ

204:あああ
03/12/13 02:04
そうですね。

205:デフォルトの名無しさん
03/12/13 02:53
>>202-204
コーヒー吹くとこだったw

206:デフォルトの名無しさん
03/12/13 08:56
むしろモノクロにしてみたいんで詳細きぼん

207:203
03/12/13 09:23
マジレスすると、ライティングがうまくいってないんじゃないかと。

俺も最近OpenGLを使い始めただけなんだけど、RGBに0〜255を
渡すべき所を全部1を渡していたというアフォなことしてた。


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

4799日前に更新/216 KB
担当:undef