1read 100read
2011年10月1期ゲ製作技術OpenGL
TOP カテ一覧 スレ一覧 削除依頼 ▼
・ 次のスレ
ピクミンの水の表現はどうやってるの?
正直、コミックメーカーって、どうよ?
Javaアプレットのゲームの限界は!
★ゲーム製作期待の星! HSP Part 9 ★
OpenGL
- 1 :01/11/15 〜 最終レス :11/11/30
- 現在OpenGLを勉強してますが、OpenGLでは3Dゲームは作れないのでしょうか?無駄なのでしょうか?
- 2 :
- 作れるよ
- 3 :
- やはりWinAPIとかも使えないとダメなんでしょうか。
- 4 :
- Quake
さげ
- 5 :
- >>3
ほどほどで大丈夫。
ダイアログとか自前でつくったほうがカコイイしね
- 6 :
- 衝突検出はどうやるんでしょうか。ax+by+cz+d=0でdの符号から判断する、面の交差を判断する方法でいいんでしょうか。
- 7 :
- OpenGLスレ@ム板
http://pc.2ch.net/test/read.cgi/tech/981044659/
ゲーム系の話題の方がスレが伸びるか…?
- 8 :
- ラッパーライブラリは知らないけれど、OpenGLもDirect3Dも
基本的には表示のみのAPI群でしょう。
衝突とかキャラ管理とか、そーいったものはCなりC++なりで書くもんだろう。
- 9 :
- この板できてからム板は見るのやめた。
3D系は全部この板に移行して欲しいね。
- 10 :
- OpenGLで人間を作るのは不可能に近いと思う・・・
- 11 :
- はやくにんげんになりたーい
- 12 :
- >>10
どんな理由からですか?
OpenGLで無理なら何なら可能??
世の中ワカランことばかりだ。
- 13 :
- glutのコールバックって割り込みじゃなくてポーリングタイプだよね。
アクションゲームみたいなリアルタイム処理って大丈夫かな。
- 14 :
- OpenGLもDirect3Dも同じだろ?
ただ、昔はOpenGLは遅くて使い物にならないってだけだったのよね。
今はハードの性能が上がったし、OpenGLだってハードウェアアクセラレーション効くし
全然問題ないと思われ。
- 15 :
- >13
まったく問題なし。つうかQuakeとか見たことある?
OpenGLで作ってますよ。
- 16 :
- 入門
ttp://www.sys.wakayama-u.ac.jp/~tokoi/opengl/libglut.html
ttp://miso.ice.ous.ac.jp/~oka/opengl/index.html
ttp://www-nishilab.sys.es.osaka-u.ac.jp/~sonson/gl/opengltop.htm
ttp://www.butaman.ne.jp/~nobuyuki/3DDemo/index.html
ttp://www.nk-exa.co.jp/mmtech/OpenGLEdu/
ゲーム
ttp://nehe.gamedev.net/
あとは赤本見ながらここでわからないことを質問するぐらいで
何も困らないと思います。
- 17 :
- >>16
俺も殆どそこで学んだけど、最後のリンクのチュートリアルは興味深いなぁ。
http://www.nk-exa.co.jp/mmtech/OpenGLEdu/ ここお勧め。
- 18 :
- >17
NeHeはいいですね。
このレベルになるとOpenGLの場合海外サイトばかりになるんですよね。
DirectXに比べて日本語資料が少ないのはどうしたものか・・・。
- 19 :
- DirectXも日本語資料が少ないのは同じと思われ。
海外のDirectX資料も意外に少ない。
OpenGLの資料を参考にしている。
- 20 :
- OpenGLでゲーム作ってる人ってサウンドはどうしてるのかな。
サウンドだけDirectXってのも変だし。
- 21 :
- QuakeもサウンドではDirectX使ってるはず。
- 22 :
- OpenGLは互換性最強だから、大学のFreeBSDで学術モデル用にも使えるから便利★
- 23 :
- >>22
Linuxでも動きます?
- 24 :
- もちろんそうよ
- 25 :
- >まったく問題なし。つうかQuakeとか見たことある?
glutを使っているの?
ソース見たことないけど、使っていないような気がするけど。
- 26 :
- 単にラスタライザとして使ってるだけだよ
- 27 :
- 1日にどれくらいGLを勉強しました?どれくらいの期間勉強して、まともなプログラム組めるレベルにこぎつけました?
- 28 :
- >>27
勉強なんてつもりじゃなにも身につかねぇな。
- 29 :
- すまん、上みてなかった。
教育上のデータとして聞いたのか?
まともなってのが曖昧だが、
GLだけなら1日。
3Dからなら1週間。
数学からなら1.5週間。
- 30 :
- >>29
熱心な方なんですね。1日に何時間くらいなのかもお答え頂けると嬉しいです。
確かに、GLUTなら初日でちょっとしたものくらいは作れますね。
数学も、線形数学の初歩的な知識があれば最初のうちは事足りますしね。
まともな、っていうのは、まぁ、ウォークスルーやテキスト出力を用いたプログラム・・・じゃ初歩的過ぎますか。
- 31 :
- 数学ってのも曖昧だったか。1+1からなら5、6年かかりそう。
ウォークスルーができればまともとはいえると思う。
ちゃんと座標変換の意味を理解できてればの話。
あと、クォータニオン使用。
1日に何時間ってのは、そりゃぁ寝る時間と食う時間以外。
学生なら、自由に取れるすべての時間。
基礎のうちはすべての時間をそれにつぎ込むべき。
- 32 :
- まとも=Quake並とか言い出したら、おそらく自分は
あと何年もかかるんだろうなぁ・・・(笑)。あるいは永遠に?
OpenGLに限らず、3Dって表示するだけと応用するのとでは
天と地ほどの差があるような。日々是勉強。怠け者にはきつい。
- 33 :
- SDLで頑張ろうと思ってますが何か?
- 34 :
- ttp://www.rimath.saitama-u.ac.jp/lab.jp/tsakurai/opengl/index.html ここのプログラムとかもいいですねぇ。個人的にはGLCLOCKが一番気に入ってますが・・
- 35 :
- >>32
OpenGLを応用するわけじゃない。
結局、OpenGLとかは道具にすぎないからね。
- 36 :
- >>33
そういえばSDLスレ下がっちゃったね。
- 37 :
- >>31
クオータニオンを噛み砕いて、説明して下さい。
使ってはいるけど、理解してないです。
- 38 :
- 3次元じゃめんどくさいんで、2次元で。
それも、原点回りの回転に限定する。
これは俺なりの理解の仕方だから、証明じゃないんでよろしく。
クォータニオンは極座標と関係がある。(みたい)
原点からの距離と角度で座標を表現するやつだ。
p = r(cosA + i*sinA);
q = r'(cosB + i*sinB); なら、p*q は rr'(cos(A+B) + i*sin(A+B))となり
q をAだけ回転させて長さに r を掛けたものになる。
これは次のように考えることもできる。
q(x, y) とすると q = x*i + y*j とベクトル表記できる。
このとき極座標系ってのは実はもう1つの軸 k を用いた表記であって
p = r(cosA + k*sinA);
q = r'(cosB + k*sinB);
となり、複素数に外積の振る舞いを追加して
i*j = -j*i = k;
j*k = -k*j = i;
k*i = -i*j = j;とすると、p*qは
r(cosA + k*sinA) * (x*i + y*j)で、これを展開してくと
r(xcosA-ysinA)*i + r(xsinA+ycosA)*j となる。
x = r' *(x/r') = r'cosB だから、加法定理を用いて
rr'(cos(A+B)*i + sin(A+B)*j) となり最初と同じ結果になる。
だが、厳密にはおなじではない。後の方は交換法則が成り立たない。まあ、外積を用いてるからあたりまえだ。
交換すると-A の回転になる。
ここで分かるのは p にベクトルを掛ければ k 回りに A だけ回転したベクトルが得られるということ。
ただ、ここで1つ問題があって、長さが r 掛けられてしまうということ。
いま、回転だけを扱いたいので、この r を打ち消す必要がある。
そこで、今の結果に p の共役な値 (1/r)*(cosA - k*sinA) を今度は
逆から掛ける。
= (1/r)*(cos(-A) + k*sin(-A)) で、かつ逆から掛けて逆回転ってことで
さっきの結果をさらに A だけ回転させることになる。
さらに回転しちゃうが、r はなくなった。これでOK。
ってことで、この p がクォータニオンだ。任意の軸 v 回りのクォータニオンは
cos(A/2) + sin(A/2) * v になるのはご存知の通り。
なんで、素直に r で割らないんだ!
って話になると思うが、おそらく、任意軸に拡張すると
r で割るだけではうまくいかないのではないかと。
まあ、専門書読んだことないんで、適当な理解の仕方だ。
31 では、クォータニオンは'使用'って書いただろ?
- 39 :
- すまん、途中間違えた
k*i = -i*k = j;
- 40 :
- >>38
この前それ大学で習った(w
- 41 :
- すまん、OpenGLの話じゃないんだが1つだけ聞かせて欲しい。
>>40
ってことはだいたいあってるてことか?
それじゃなんでクォータニオンの回転は
p*q*p' じゃないといけないのか教えて欲しい。これがわからん。
ってか、この辺が載ってるお勧めの本とか。
- 42 :
- なはは。学ぶのと教えるのは別次元ですよ。力不足でスミマセン。
- 43 :
- SO(3)とSU(2)が同じとかって話はクォータニオンに関係ある?
- 44 :
- >>43
その辺は何学なんだ?高卒なんで分からん。
- 45 :
- テクスチャーってBMPダメなんでしょ?ならどうやってテクスチャー用の画像を作るの?
- 46 :
- >>45
OpenGLなら、
どんな画像でもテクスチャーに出来るよ。
- 47 :
- え・・glTexImage2D()でしょ。 海外サイトでも、OpenGLではjpg、Gif、BMPなどの形式は一切サポートしてません、って書いてあったし。
どうやってBMP読み取れるの?
- 48 :
- >>47
OpenGL自体には特定のビットマップフォーマットを読み込む機能はないので、
指定したピクセルフォーマットのベタデータにコンバートするコードを書くか、
その手のイメージ処理を行うライブラリを使ってベタなイメージデータを作る必要があります。
#GL_RGB なら RGBRGBRGBRGB .... という具合に並べておかないといけないって事ね。
ベタデータ(photoshopで.raw形式で出力されるファイル)であれば直に読み込む
事ができますけれど。
- 49 :
- >>47
BMPぐらいなら自力でDIBで読んで適当にできるよ。まぁ、自己満足かもしれないが。
詳しくはこのへん参照。
ttp://www.sm.rim.or.jp/~shishido/windows.html
JPGやPNGは… ライブラリに頼る、か。
自力で読めるんならやってみたいが、難しそう。つか、これは自己満足やね。
- 50 :
- >>38
すいません。やっぱわかんないやw
取り敢えず、他の資料と照らし合わせて眺めときます。THX!
- 51 :
- >>47
簡単に読み込みたきゃglaux使えば?
- 52 :
- そこで蕎麦屋のSDLサンが「おう!それなら俺の出番だね」と顔を出すわけだ。
- 53 :
- >>44
行列と変換郡って本で読んだんだけど、
覚えている内容は↓の感じ。
2次元の回転はY軸を虚数でおいた複素平面では、
EXP(iθ)=cos(θ)+i*sin(θ)で回転を表せる。
座標は(x,y)=x+iyね。
Y軸が実数なら行列
cos(θ) -sin(θ)
sin(θ) cos(θ)
で回転できる。
これらの関係をSpecialUnitary(1)=SpecialOrthogonal(2)っていうらしい。
Specialは行列式が+1になるって意味とのこと。
他に、i*i=-1だけど、
行列Aを
0 1
-1 0
と置くと、
A*A=−E(Eは単位行列)
になって、
行列Aが虚数iに見えるよなぁって話もでてた。
- 54 :
- DirectXに比べてOpenGLのほうが優れているのは何でしょうか?
高価なOpenGLボードを使えばGeForce3より速くなるのでしょうか?
ハイエンド用途ならOpenGLなのでしょうか?
- 55 :
- >>54
DirectX と OpenGL をDQN的に単純比較することで
その優劣を評価しようと試みた人間は過去に大勢いましたが
これといった成果を残すことなくログの藻屑と消えてゆきました。
- 56 :
- 変換郡に住みたい。。。
- 57 :
- LightWaveで作ったモデルってプログラムに使える?
- 58 :
- >>57
ほい。
http://www.dstorm.co.jp/dev/docs/lwsdk65/docsj/filefmts/lwo2.html
- 59 :
- >>55
C魔我でもやってたね。
- 60 :
- >54
と関係するかもしれませんが。Softimage,Mayaなどのハイエンドツールで
OpenGLが使われているのはなぜでしょうか?
まあこれからはDirectXに変わっていくのかもしれませんが。
Softimage|XSIのシェーダーなんかはどうやってDirectX→OpenGL変換して
いるのでしょうか?
- 61 :
- >60
Softimage,Mayaなどのハイエンドツールは
他のOSにも移植する事を考えて、
OpenGLを使ってるのだと思うョ。
DirectXはWindowsだけのAPIだからね。
- 62 :
- >>61
Fahrenheitが実現すればよかったんだろうけどネ
- 63 :
- OpenGLとD3Dの場合、僕のPCでは D3DこけるとPC死ぬけど
OpenGLならPC死ななくて 再起動できるから好き。
- 64 :
- >63
そうそう、それ重要です。
- 65 :
- レンダラ作りたいんですが参考になりそうなOpenGLのソース
とかないでしょうか?
- 66 :
- ない。
- 67 :
- glutでは、キーを離したときのイベントが無いようなのですが、
キーボードの同時押しは判定できないのでしょうか?
- 68 :
- >>67
できないと思うのです。キーのリピートで繰り返し呼ばれてるような気がするのです。
GLUT API
http://www.sccs.chukyo-u.ac.jp/~miyazaki/glut_man/
ここ見た感じだと (Shift Ctrl Alt) + key ならできる… かも。
つか、素直にWindows で GetAsyncKeyState とか。
- 69 :
- glutKeyboardUpFuncこれはちがぅ?
- 70 :
- >>68-69
ありがとうございました。
glutKeyboardUpFuncですが、
ヘッダファイルを見たところ、
#if (GLUT_API_VERSION >= 4 ...)
GLUTAPI void GLUTAPIENTRY glutKeyboardUpFunc(...);
...
#endif
ということで、将来サポート予定の機能のようです。
今のところ、glutは諦めた方が良いみたいですね。
- 71 :
- >>70
自力で作るべし。
俺もつくるぜぇ〜(;´Д`)
- 72 :
- >>67
正直、そこまでくると NeHe の Lesson2 を見て
wgl (って言うんだっけ?) とか glx 使ったほうがラクそうな気がします。
- 73 :
- OpenGLを2D描画に使ってる人いますか?
- 74 :
- >73
これ気になる。3DベースのAPIで2Dの処理もしないといけない時
って結構あるもんだ。
- 75 :
- age!
NVSDKのサンプルでもみんなで読みましょう。
- 76 :
- DIRECTXの頂点ブレンドに位置する機能を
OpenGL上でもアクセラレーション対応させたいんですけど
(今までソフトエミュレーションだったので・・・)。
その辺詳しい方、おられますか?
- 77 :
- http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_blend.txt
http://oss.sgi.com/projects/ogl-sample/registry/EXT/vertex_weighting.txt
- 78 :
- どうもありがとう。
NVやATIも、好き勝手やってるようですが、
これが本流という事ですね?
とりあえず、組み込んで見ます。
- 79 :
- ATIはvertex_weightingだけサポート
NVはvertex_blendだけサポート
本流も2流あるね
- 80 :
- >>79
ATiとnVが逆だよ。
それにしても、ほんと好き勝手やってるなぁ>ATiとnV
- 81 :
- ちょっとクォータニオンについて素朴な疑問なんだけど、
結局あれって行列では誤差があるからこっちのほうが良いよ、ってことで使うんですか?
あと、姿勢の補間と。
この2つの理由のみからですよね?
- 82 :
- >>81
オイラー角の致命傷を防ぐ。
IKの問題解決には、AXISかクォータニオンしかないね。
- 83 :
- 姿勢補完
- 84 :
- WGL_ARB_render_textureが面白そうなんだけど、
WGL系拡張なのが気に入らないなあ。
GLUTと併用してうまくいった人いる?
ていうかRADEON欲しい。
- 85 :
- >>82
>オイラー角の致命傷
ってどんなんですか?ジンバル六区とか?
いまいちクオータニオン使うメリットがわからんです
- 86 :
- >ジンバル六区とか?
まさに。
まあ、だからといってクオタニオンにする必要もないんだけどね。
とりあえずオイラー角はやばい、と。
- 87 :
- >>とりあえずオイラー角はやばい、と。
なすて?
- 88 :
- >なすて?
ジンバル六区とか
(以下、無限ループ)
- 89 :
- 絶対角で管理すればクォータニオンを使う必要はないんじゃ?
ゲームの場合基本的に地面がある場合が多いので
ベクトルは事実上二次元(極座標)で扱えば計算量はぐっとへる。
- 90 :
- 現状ハードに対応しているかどうかということではOpenGLはDirectX8.1に負けているように思うけれど
CPUだって高性能なんだからなんでもかんでもGPU任せで
結局はフェイクシェーディングのATIやNVの方針はどうかと思う。
ところで音楽関係だけどでもとか商用でない場合はFMOD、BASS、MIDPlugを使うのが
OpenGLの基本だと思う。
おれはWinだけだけどDirectDrawの画像変換とDirectInputとDirectSound、DirectShowを使う
あとOpenGLトゥーンシェーディングとかはラインを併用すれば
古いマシンでもアンチエイリアスがそこそこの速度でじっそうできるのがよい。
- 91 :
- ttp://romka.demonews.com/opengl/demos/zip/particles.zip
パーティクルたくさん。楽しいねえ。
ソースもあるよ。
ttp://romka.demonews.com/index_eng.htm
- 92 :
- ヘボい質問ですまぬが、
アキュムレーションバッファを使った処理(モーションブラー等)
が異様に遅いのは俺だけ?
ちなみにビデオカードはGeForceMXと3dfx Voodoo3の2種類。
- 93 :
- みんな遅い。安心しろ。
- 94 :
- age
- 95 :
- glBindTextureでテクスチャを切り替えて貼ってるんですけど、表示されないで生ポリゴンになっちゃうテクスチャがあります。
そのテクスチャだけ表示だと正常に表示されるのに、違うテクスチャと切り替えてると表示されません。
4枚テクスチャがあってそのうちの2枚は正常
異常な2枚だけを表示させるとそのうちの1枚だけ正常
1枚だけだと正常
- 96 :
- とりあえずソースを見せないことにはどうにもならないのでわ
- 97 :
- とりあえず、glGetError()でどうなってるとか見てるというのは?
- 98 :
- ×見てる
○見てみる
表示付近が完璧と思うなら、glGenTextures付近で失敗してるとかは?
- 99 :
- それがエラー出てないんですよ。
- 100read 1read
1read 100read
TOP カテ一覧 スレ一覧 削除依頼 ▲
・ 次のスレ
ピクミンの水の表現はどうやってるの?
正直、コミックメーカーって、どうよ?
Javaアプレットのゲームの限界は!
★ゲーム製作期待の星! HSP Part 9 ★
-