OpenGLゲーム作成初心者スレ
■ このスレッドは過去ログ倉庫に格納されています
0001こども社長
2010/03/19(金) 20:53:280002デフォルトの名無しさん
2010/03/19(金) 20:57:00糞 ス レ 終 了
0003こども社長
2010/03/19(金) 21:01:14#include <stdlib.h>
#include <GL/glew.h>
#include <GL/glut.h>
0004デフォルトの名無しさん
2010/03/19(金) 21:02:350005デフォルトの名無しさん
2010/03/19(金) 21:50:340006こども社長
2010/03/19(金) 21:58:350007デフォルトの名無しさん
2010/03/19(金) 21:59:160008デフォルトの名無しさん
2010/03/20(土) 00:19:44なるほど
0009デフォルトの名無しさん
2010/03/20(土) 11:43:55けど、なんでゲ製作板で立てられなかったのだろか...
0010デフォルトの名無しさん
2010/03/20(土) 13:02:37OpenGL
http://pc11.2ch.net/test/read.cgi/gamedev/1005834875/
0012デフォルトの名無しさん
2010/03/20(土) 18:52:14●持ちの俺がゲ製板に立て直してやるから、削除依頼出して死ね。
0013デフォルトの名無しさん
2010/03/20(土) 20:16:570014こども社長
2010/03/20(土) 20:53:15さあ盛り上がりましょう。
0015こども社長
2010/03/20(土) 21:18:040016デフォルトの名無しさん
2010/03/21(日) 17:06:32言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0017デフォルトの名無しさん
2010/03/22(月) 09:43:240018デフォルトの名無しさん
2010/03/22(月) 10:21:540019デフォルトの名無しさん
2010/03/22(月) 17:16:16つーか板違い。
0020デフォルトの名無しさん
2010/03/22(月) 21:46:570021デフォルトの名無しさん
2010/05/06(木) 10:33:360022デフォルトの名無しさん
2010/05/06(木) 17:45:210023デフォルトの名無しさん
2010/06/28(月) 13:37:592ヶ月ほど前にJavaScriptでパックマンを作ったことなら・・・
0024デフォルトの名無しさん
2010/06/28(月) 20:00:57遅いの?
0025デフォルトの名無しさん
2010/10/09(土) 23:29:43毎回
glBegin(GL_TRIANGLE_STRIP);
glVertex() * 4
glEnd()
glBegin(GL_LINE_STRIP)
glVertex() * 5
glEnd()
で書くのと
あらかじめ1X1の大きさで登録したディスプレイリストに
glPushMatrix
glTranslatef 画面座標
glScalef サイズ
glCallList(FILL_BOX); <- それぞれ色つけるため分けてる
glCallList(LINE_BOX);
glPopMatrix
で書く場合とどっちが早い??
0026デフォルトの名無しさん
2010/10/10(日) 09:43:250027デフォルトの名無しさん
2010/10/10(日) 18:09:29それかVBOを使った方がいいと思う。
0028デフォルトの名無しさん
2011/03/13(日) 20:28:18.800029デフォルトの名無しさん
2011/03/14(月) 05:29:42.670030デフォルトの名無しさん
2011/03/18(金) 03:34:26.49あとはglut32.libをどこかから拾ってくればいい
0031デフォルトの名無しさん
2011/03/18(金) 17:33:10.930032天使 ◆uL5esZLBSE
2011/07/01(金) 18:12:17.61変数に$ついてる言語触ってるって事だよね
いちいちSHIFT+4キーおして $ 打ちまくってる感触はどう?
0033デフォルトの名無しさん
2011/07/01(金) 20:38:50.25一概にそう言われてもメンブレンかメカニカルかだけでも
感触って違ってくるし。
自分の言っている事がいかにあいまいだか気づかない人って
バカだよね。
0034デフォルトの名無しさん
2011/07/01(金) 21:42:30.100035デフォルトの名無しさん
2011/07/01(金) 21:46:10.240036デフォルトの名無しさん
2011/07/01(金) 22:59:35.22もう全部シェーダみたいに文字列にしてくれんかね。
そうなるとC以外の言語からOpenGL使うのすごく便利になると思うんだけど
そういう流れってないの?w
0037デフォルトの名無しさん
2011/07/01(金) 23:44:46.380038デフォルトの名無しさん
2011/07/02(土) 15:13:27.21面白い発想だねw
文字列ってわけじゃないけど、Plan9のグラフィックスAPIがそんな感じじゃなかったっけ。
0039デフォルトの名無しさん
2011/07/03(日) 02:25:31.22とか、そのシェーダー文字列がどう処理されてるか仕組みを理解してからだね
ぶっちゃけ、どの言語のコンパイラだろうが
コンパイルして実行ってバッチレベルで
ソースコード文字列渡して同じ事できると思うよ
0040デフォルトの名無しさん
2011/07/27(水) 00:26:01.72http://akita-nct.jp/take/appendix/glsl/glsl_setting.html
をもとに、Microsoft Visual Studio 9.0を10.0に読み替えてライブラリを置きました。
コンパイルはできるけど実行するとアクセスバイオレーションになります。
windows Vista Visual Studio 2010
0041デフォルトの名無しさん
2011/07/27(水) 00:46:18.10シェーダソースをファイルから読めてないとか、そんなとこじゃないかと予想。
0042デフォルトの名無しさん
2011/07/27(水) 20:42:33.73デバッガで追うと、やはり、GLSLを使おうとしようとするところで、
エラーになりました。
グラフィックカードが対応していないんでしょうか?
ちなみに
Intel G33/G31 Express Chipset Family
メモリ合計 286MBです。
0043デフォルトの名無しさん
2011/07/27(水) 20:57:55.460044デフォルトの名無しさん
2011/07/27(水) 23:11:48.74//シェーダーオブジェクトの作成
vertexShader = glCreateShader(GL_VERTEX_SHADER);
0045デフォルトの名無しさん
2011/07/28(木) 00:07:50.910046デフォルトの名無しさん
2011/07/28(木) 00:49:48.34どうやったら調べられますかね?
サンプルプログラムをそのまま実行しているだけなんで…
0047デフォルトの名無しさん
2011/07/28(木) 01:05:54.720048デフォルトの名無しさん
2011/07/28(木) 22:53:35.84新しいの買うとしたら、
GLSLに対応しているかって、調べられますか?
0049デフォルトの名無しさん
2011/07/28(木) 23:06:31.87新しいGPUを買うのなら、お店に行って「OpenGL3.0以上に対応したGPU下さい!」って言うんだ。
0051デフォルトの名無しさん
2011/07/31(日) 11:13:44.130052デフォルトの名無しさん
2011/07/31(日) 22:05:10.09GPUの対応バージョンまでチェックしてる店員は一部だろうなあ
0053デフォルトの名無しさん
2011/08/01(月) 00:03:22.830054デフォルトの名無しさん
2011/08/04(木) 14:38:41.13パラメータの表示など、どんなにカメラを動かしても(画面に対して)同じ場所に描かれる物体って
上手い描き方はありますか?
愚直にカメラ座標に近い、視線の正面にある座標を中心に描くしかないですか?
0055デフォルトの名無しさん
2011/08/04(木) 14:46:15.220056デフォルトの名無しさん
2011/08/04(木) 15:58:49.76何となくその辺かなあとは思ったのですが
3D描画と組み合わせるときの手順がよくイメージできないのです
glViewport(...);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(...);
glMatrixMode(GL_MODELVIEW);
ループとかイベントとか {
glClear(...);
glLoadIdentity();
gluLookAt(...);
//以下、glTranslate系とかglRotate系とか描画とか
}
…とあったとして、Ortho2Dやその描画の処理はどのタイミングでやるのでしょうか?
むしろこの順番自体を崩さないとダメなのかなぁとかよく解らないのです
色々試そうにも、ちょっと弄ると真っ白になってしまったりしてる状況で…
0057デフォルトの名無しさん
2011/08/04(木) 16:09:41.95glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(...);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(...);
適当に物体描写
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(...);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(...);
適当にHUD描写
glFlush();
}
0058デフォルトの名無しさん
2011/08/04(木) 16:21:53.80ありがとうございます、参考にしてやってみます
0059デフォルトの名無しさん
2011/08/04(木) 18:43:54.19>>57
改めて、ありがとうございました!
0060デフォルトの名無しさん
2011/10/22(土) 23:04:58.78HUD描画前に深度バッファはクリアしておいたほうがいいぞ
0061デフォルトの名無しさん
2011/11/09(水) 07:38:51.79それぞれひとつひとつをレンダリングする毎に
glPushAttrib や glPushClientAttrib で情報を待避させ、
glPopAttrib や glPopClientAttrib で戻しているのでしょうか
それとも、属性が同じもの同士、似たもの同士をまとめ、
可能な限り push と pop の回数を減らすように努力するものなのでしょうか
0062デフォルトの名無しさん
2011/11/09(水) 12:47:22.48どのみちほとんどのキャラやオブジェクトは、
色など以外は共通の属性を持ってて、それらもキャラ毎に指定するので、
行列と違って属性をキャラ毎に pop push する意味が無いですね
0063デフォルトの名無しさん
2011/11/09(水) 19:49:22.96描画ツリー作るのが一番正しいんだろうけど面倒臭いです
0064デフォルトの名無しさん
2011/11/10(木) 02:22:24.63描画するにはどうするのが良いんでしょうか?
テセレーション?を行うのでしょうか?
0065デフォルトの名無しさん
2011/11/10(木) 02:51:12.740066デフォルトの名無しさん
2011/11/10(木) 13:35:56.190067デフォルトの名無しさん
2011/11/10(木) 16:09:35.16>>66
なるほど。ありがとうございます。
ちなみに、シェーダーを使うと別のやり方があるのでしょうか?
0068デフォルトの名無しさん
2011/11/10(木) 17:40:11.76透過ポリゴンの描画はみんな苦労しているところなのでググった方がわかりやすい解説がでてくるよ。
0069デフォルトの名無しさん
2011/11/10(木) 20:11:43.960070デフォルトの名無しさん
2011/11/10(木) 22:53:25.41ありがとうございます。
ググろうにも単語がわからないレベルだったのですが、助かりました・・・
0071デフォルトの名無しさん
2011/11/11(金) 01:27:53.14正しく描画する手法も無いではないけど・・・重いんだよねぇ。
興味があるなら depth peeling でぐぐってみるといいかも。
0072デフォルトの名無しさん
2011/11/12(土) 15:56:54.40複数ある場合、キャラクターのxz座標で位置が一致するポリゴンを調べ、そのポリゴン
の高さに合わせると考えています。
ポリゴンとの当たり判定を考える場合、常にどのポリゴンに当たるかを調べてポリゴンを特定
してから処理を行うのでしょうか?
0073デフォルトの名無しさん
2011/11/12(土) 17:29:12.06「ポリゴンの高さにキャラクターを立たせる処理」をしているのなら、
常にどのポリゴンに当たるかを調べる必要がある
ただ、常に「全ての」ポリゴンと当たり判定をする必要は無い
キャラクターの近隣にあるポリゴンのみと当たり判定すればいい
0074デフォルトの名無しさん
2011/11/12(土) 17:33:42.31ついでに言うと、キャラクターの足部分の「一点のみ」と、
地面の「一点のみ」との当たり判定によってキャラクターを立たせる処理をすると、
キャラクターや地面の凹凸の細かさや高低差の激しさによっては
キャラクターが地面にめり込んだように見えてしまうかも知れん
0075デフォルトの名無しさん
2011/11/12(土) 18:06:32.01他の衝突判定も同じ考え方でやってみます。
判定は一点じゃなくて複数点でした方が正確に出せるってことですかね…
色々試してみます。
ありがとうございました。
0076デフォルトの名無しさん
2011/11/12(土) 18:44:25.75> 判定は一点じゃなくて複数点でした方が正確に出せるってことですかね…
ちょっと違う
「正確」の意味がちょっと曖昧だけど、
一点で判定しようが複数点で判定しようが、面と直方体で判定しようが、
判定自体は正確に計算すれば正確にできる(端折れば端折った分だけ不正確になる)
私が言いたかったのは、例えばキャラクターの踵の一点と地面の一点だけで判定した場合、
その判定に基づいてキャラクターを地面に立たせると、つま先が地面にめり込む姿が
プレイヤーに丸見えになる場合もあるよ、ということ
まぁこれらは一点判定の応用で解決できる可能性の高い問題だから、
まずは一点判定をがんばって実装してください
たぶん、いずれは自然と上記の問題に向き合わなくちゃならなくなるし
0077デフォルトの名無しさん
2011/11/14(月) 00:13:15.49今使用しているモデルは単純なものですが、後で複雑な形のモデルも使用すると思うので
上の問題が発生することを覚えておきます。
ありがとうございました。
0078デフォルトの名無しさん
2011/11/20(日) 10:59:19.250079デフォルトの名無しさん
2012/08/24(金) 12:46:19.570080デフォルトの名無しさん
2012/10/14(日) 13:37:01.990081停止しました。。。
NGNG■ このスレッドは過去ログ倉庫に格納されています