トップページgamedev
516コメント149KB

OpenGL

■ このスレッドは過去ログ倉庫に格納されています
000101/11/15 23:34ID:GvgJsycj
現在OpenGLを勉強してますが、OpenGLでは3Dゲームは作れないのでしょうか?無駄なのでしょうか?
0378名前は開発中のものです。2008/02/18(月) 21:46:39ID:p7mvNw22
>>377
あぁぁぁ目から鱗
ありがとうございます
そうすね〜
0379名前は開発中のものです。2008/02/23(土) 14:50:45ID:Q19BsS/Y
スタティックリンクできるGLUTなかったっけ?
0380名前は開発中のものです。2008/02/25(月) 23:18:15ID:PaorSTL+
>>379
探してみます。ありがとうございます〜

もうひとつ初心者の質問ですみませんが、
VisualC++2008で、Win32アプリを作るプロジェクトで
Windowsフォーム画面にOpenGLで作図するにはどうすればいいでしょうか???

コンソールからOpenGL用のウィンドウを作成する方法しか見つからず、
VC++の応用力もなくて、困りました。
0381名前は開発中のものです。2008/02/25(月) 23:54:10ID:KXGuSfXv
>>380
ChoosePixelFormat
SetPixelFormat
wglCreateContext
wglMakeCurrent
SwapBuffers
このあたりをぐぐってみ
0382名前は開発中のものです。2008/02/26(火) 22:58:10ID:inpRoAtJ
>>382
ありがとう。

Opengl32.libが見つからずてこずってしまってる自分が情けない。
0383名前は開発中のものです。2008/02/27(水) 03:08:49ID:83OQ1rIe
>>382
スタートメニューから検索すればいいんじゃないか
うちは C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib に入ってる
0384名前は開発中のものです。2008/02/28(木) 00:01:17ID:HoQH/UY3
>>383
すいません。スレ汚しました。

>>381
まずは、OpenGLによるグラフィック描画のサンプルがうまくできましたw
0385名前は開発中のものです。2008/02/29(金) 11:32:47ID:c9GK8w6V
ここはGLUIの質問しても大丈夫ですか?

GLUIのウインドウを破棄するclose()というのがあるんですが、
これを使うと「無効な操作」というエラーがでます。
デバッグをかけなければ問題なく動作します。
原因がわかる方いらっしゃいますか?

0386名前は開発中のものです。2008/08/26(火) 12:34:21ID:tcYS2pRq
保守
0387名前は開発中のものです。2008/10/19(日) 14:44:12ID:C/KjVJUA
OpenGLってインデックスカラーのままテクスチャーにする事が可能ですか?
glColorTableというパレット操作関数を見つけたんですが
この関数は1.2のオプションらしくハードを選ぶみたいで自分の環境だと動作しませんでした。
0388名前は開発中のものです。2008/10/21(火) 19:38:45ID:JudUV5+B
シェーダーとか使えるの?
0389名前は開発中のものです。2008/10/21(火) 19:41:57ID:L41SJSru
使えるかどうかはお使いのグラボとドライバによる
0390名前は開発中のものです。2008/10/24(金) 07:37:50ID:nHSCG/Df
  ∧⊂ヽ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (゚Д゚)ノ <  シェーダ
  | ⊃|   \__________
  |  |
  ⊂ノ〜
  ∪
0391名前は開発中のものです。2009/03/16(月) 17:15:56ID:sLpJJ+Lf
ほっしゅ
0392名前は開発中のものです。2009/04/08(水) 07:02:19ID:4FJDhh2M
gluLookAtで指定するパラメタからビルボードオブジェクトの回転角度を計算する事ってできませんか?
0393名前は開発中のものです。2009/04/17(金) 23:00:55ID:9jYVdRjj
>>392
ターゲットから視線へ向かうベクトルを取得。
そのベクトルが視点座標系のZ軸方向になるので、ビルボードオブジェクトの同次行列をmとして、m[8],m[9],m[10]に代入。
gluLookAtで取得した視線上方向のベクトルを取得し、それとさっき取得したZ軸との外積を取る。
これがX軸方向になるのでm[0],m[1],m[2]に代入。
Y軸はZ軸とX軸の外積で作り、m[3],m[4],m[5]に代入。

これでビルボード座標系のXY平面が視線ベクトルと正対すると思う。
実際にコードを組んで確認したわけじゃないので、間違ってたらごめん。
0394名前は開発中のものです。2009/04/24(金) 14:57:07ID:nIOvt2Ic
素人でスマンが

ダブルバッファリングで
描写用画面から表示用画面に転送する方法と
描写用画面と表示用画面を交互に切り替える方法

どっちが軽い?
0395名前は開発中のものです。2009/04/25(土) 01:56:01ID:lIWbBzbQ
>>394
自分で実装するよりGLUTとかに任せちゃったほうが効率よくない?
0396名前は開発中のものです。2009/05/17(日) 16:01:39ID:DK/T3Mrl
bcc5.5でgult3.7.6使おうとすると
GL/glut.h 146: オーバーロード関数群の中の 1 つだけしか "C" にできない
って出るんだけどこれってなんで?対応してないの?
0397名前は開発中のものです。2009/05/17(日) 17:03:14ID:n1mP9XcL
じーえるばーてっくすすりーえふ
0398名前は開発中のものです。2009/05/19(火) 19:33:36ID:93hoLt8k
大量のオブジェクトを描画しようと思っています。
具体的にいうと、10万程度の粒子を、単純な四角形で同じアルファテクスチャを使い、色を変えて沢山描画するつもりです。
glBegin〜…で作ってみたのですが速度が出ません。
速度を出すにはどのような方法をとるとよいでしょうか?
0399名前は開発中のものです。2009/05/19(火) 21:44:52ID:XXyOM18A
>>398
パーティクルでも作るの?
0400名前は開発中のものです。2009/05/19(火) 22:37:21ID:93hoLt8k
>>399
はい
とにかく沢山飛ばしてみたい衝動にかられました
0401名前は開発中のものです。2009/06/18(木) 16:54:43ID:rCol3BeX
文字列を繁華街の看板のように光らせたいんですが、
基本はライティングのやり方で工夫するのでしょうか?

円形のパーティクルみたいな単純な形なら、外に行くほど透明度を上げたテクスチャを
重ねるだけで光ってるように見えるんですが…。
文字列の描画にはFTGLを使っています。
0402名前は開発中のものです。2009/06/18(木) 21:08:29ID:R02fKlcs
HDR, bloom, glareあたりで
04034012009/06/19(金) 19:57:58ID:d9xVu7dw
>>402
簡単じゃなさそうですね…。
0404名前は開発中のものです。2009/06/19(金) 23:34:29ID:C/OneIvi
真っ当にいろいろ考え出すと奥深いが
すごく単純化していうとだけど
・光らせたい部分だけ抜き出してぼかして加算合成
・光らせたい部分にきらきらなビルボードを加算合成
ってだけ
0405名前は開発中のものです。2009/06/20(土) 02:16:10ID:Ho5HM3vk
OpenALってどうなのよ
04064012009/06/23(火) 14:48:31ID:vaGvZlJ8
>>404
ありがとう。
0407名前は開発中のものです。2009/06/23(火) 15:58:28ID:o1CBJyeE
EAXの利点はハードウェアサポート
0408名前は開発中のものです。2009/06/23(火) 23:12:15ID:X9GPUy21
ES用の参考図書とか、何かいい資料ないですかね?
0409名前は開発中のものです。2009/06/24(水) 03:43:32ID:i/MORKiL
んなことは初心者スレで聞けよ素人
0410名前は開発中のものです。2009/07/23(木) 19:08:41ID:62GhMPv1
これってGLUTか何か?
http://www.nicovideo.jp/watch/sm7713045
0411名前は開発中のものです。2009/07/30(木) 19:40:34ID:jUrHw3fh

>>409

藻前がそういう風にかっこつけることができるのは
2chの中だでだなw

逝ってヨシ。
0412名前は開発中のものです。2009/07/31(金) 09:13:53ID:Am5sq6bL
>逝ってよし
既に死語になりつつあり、最近見なくなって逆に新鮮に思えるw
0413名前は開発中のものです。2009/08/02(日) 01:09:54ID:a44K6WSz
藻前とか、逆に新しいよな。
0414名前は開発中のものです。2009/08/29(土) 10:59:03ID:+EVKg2FF
なんかおっさんがかじりたての単語を
必死で使いこなそうとしている風景が頭に浮かんだ
0415名無しさん@そうだ選挙に行こう2009/08/30(日) 18:10:27ID:NFkGE/XJ
どうでもいいからOpenGLの事話せよ
例えばSIGGRAPHで発表されたOpenGL3.2とかどうだ?
0416名前は開発中のものです。2009/12/08(火) 11:47:54ID:L4vZ8+0U
さぁ
0417名前は開発中のものです。2009/12/21(月) 00:09:58ID:wXL8lMBU
知らないなぁ
0418名前は開発中のものです。2009/12/21(月) 21:48:36ID:fZWe9bF2
ブッ、知らないの?
0419マサヒロ2009/12/22(火) 23:41:24ID:D8xCbc8A

  サ
 ヒ
   ロ
   参
    上
0420名前は開発中のものです。2009/12/23(水) 07:12:28ID:YRzN0Vub
何がしたいんだお前は!
0421名前は開発中のものです。2010/01/11(月) 22:28:33ID:Erl8xU2p
OpenGL+Glutでウインドウモード、フルスクリーンモードを何度も切り替えする
プログラムを教えて下さい。
0422名前は開発中のものです。2010/01/13(水) 20:52:02ID:WLv44/Lz
僕にも教えて下さい
0423名前は開発中のものです。2010/06/11(金) 00:07:19ID:M6b9MnkJ

0424名前は開発中のものです。2010/06/16(水) 21:39:40ID:4WAS2eu5
すごい初歩的な質問だけどこれってどうやって使うの?
ttp://www.jpct.net/jpct-ae/
Eclipseとa-sdkははいってるんだけどそこからわからん
教えてエロい人><
0425名前は開発中のものです。2010/09/25(土) 08:36:20ID:kQ6VdT85
ほsh
0426名前は開発中のものです。2010/10/19(火) 00:29:39ID:bYPOdN96
リアルタイムに動くミラーハウスを実装できる人はいますか?

0427名前は開発中のものです。2010/10/19(火) 01:25:52ID:oaFptFkS
たぶん
0428名前は開発中のものです。2010/10/19(火) 01:27:59ID:btVvg1A/
俺だよオレオレ
0429名前は開発中のものです。2010/10/19(火) 01:35:45ID:bYPOdN96
では実装してみてください

Youtubeで公開してくれたら尊敬いたします
0430名前は開発中のものです。2010/10/19(火) 01:46:31ID:oaFptFkS
え? もしかしてタダで? なんで?
0431名前は開発中のものです。2010/10/19(火) 02:23:13ID:bYPOdN96
リアルタイムミラーハウスは相当高度な技術です

実現できたらノウハウで稼げるでしょう
0432名前は開発中のものです。2010/10/19(火) 02:39:13ID:bYPOdN96
おそらくSIGGRAPHにも出展できるくらいの技術です

できるのであれば作って欲しい
0433名前は開発中のものです。2010/10/19(火) 02:49:49ID:btVvg1A/
ヘーソーナンダー
0434名前は開発中のものです。2010/10/20(水) 21:13:22ID:ZbIayp1d
ミラーハウスって何?w

鏡面反射のこと?w
0435名前は開発中のものです。2010/10/20(水) 21:34:12ID:TppCkdud
ミラーハウスと聞いて、その実装がどれほど難しいのか
理解できないカスは、まさかいないよな?
0436名前は開発中のものです。2010/10/20(水) 22:12:21ID:ZbIayp1d
MirrorHouseの概念が固定じゃないから定義してくれないと。
それによって難しさも変わる。
外側が鏡張りの家もミラーハウスだし
鏡をいっぱい置いてある家もミラーハウスって呼ぶよ?

抽象的な名称じゃなく具体的な仕組みを提示してほしい。
自分の中の言葉の持つ意味が世界中で通用するはずだとか思ってないよね?w
0437名前は開発中のものです。2010/10/20(水) 22:36:07ID:6/9F7sRd
おもってんだろ
0438名前は開発中のものです。2010/10/20(水) 22:49:13ID:TppCkdud
カスの難癖は笑えるww

全部壁が鏡でできた3Dダンジョンと考えろ珍滓君

0439名前は開発中のものです。2010/10/20(水) 23:55:44ID:tkC0BrWQ
リアルタイムレイトレース!!!
0440名前は開発中のものです。2010/10/21(木) 00:05:39ID:06kWh39F
>全部壁が鏡でできた3Dダンジョンと考えろ珍滓君
また難癖()笑の付けやすい稚拙な文を書くww
0441名前は開発中のものです。2010/10/21(木) 00:46:14ID:SvJvabf1
単純に鏡面反射を繰り返すだけのことじゃないか
実装なんて難しくもなんともない。

実用的な処理速度になるかどうかは別問題。
0442名前は開発中のものです。2010/10/21(木) 01:04:09ID:zHYDOwSO
シェーダで組めば問題ないだろ
0443名前は開発中のものです。2010/10/21(木) 01:25:56ID:RUyYzJpp
>単純に鏡面反射を繰り返すだけのことじゃないか
>実装なんて難しくもなんともない。

ならやってみせたら?
0444名前は開発中のものです。2010/10/21(木) 03:54:22ID:SvJvabf1
必要もないのに出来るとわかってることをやる意味が見出せないよ。
>>430 と同じ疑問が沸くw
よほど暇で、気が向いたらやるかもしらんが。
0445名前は開発中のものです。2010/10/21(木) 04:21:28ID:RUyYzJpp
鏡面反射の方法だけでも言ってやったら?

0446名前は開発中のものです。2010/10/21(木) 05:18:53ID:SvJvabf1
検索すればすぐ見つかると思うんだがw

うちは反射面に視点を移動させてから
適当なバッファにシーンを書き出す>それをテクスチャに取り込む>必要に応じて反転させて反射面に貼り付け
という流れでやってるよ。

その他の反射材質(100%反射ではないもの)の場合は
虚実空間を作ってステンシルなんかで切り抜く手法をとるね。
上に出てるミラーハウスや合わせ鏡なんかもこの方法でやる。

単純な面じゃない鏡面(たとえば湾曲した鉄板とか磨かれた車のボディ)の場合はもう一工夫必要だけど
基本的に上の二つを何度も組み合わせてそれらしく見せるかな。
なので複雑な空間を構築するほどにレンダリング速度は下がるよ。

>>442
ぜひやり方を聞きたいw
0447名前は開発中のものです。2010/10/21(木) 05:39:03ID:d26spTi4
>>446
ミラーハウスは万華鏡のように無限に多重反射を繰り返すところが肝だから、
その古典的な手法で「何度も組み合わせてそれらしく見せる」のはかなり困難だと思うなあ。
0448名前は開発中のものです。2010/10/21(木) 06:34:20ID:RUyYzJpp
俺の考え方は、ミラーの面に対して逆側にモデルを反転して描画して、
その映像のミラーの部分をテクスチャとして使う

で出来るんじゃないかと

>>446と同じかな?

0449名前は開発中のものです。2010/10/21(木) 06:35:57ID:RUyYzJpp
多重になるとその繰り返しだから・・
限界あるよね

確かにシェーダーてどうやるんだ?
0450名前は開発中のものです。2010/10/21(木) 08:32:31ID:SvJvabf1
うんにゃ、困難じゃないよ。
仮に鏡の中の虚空間が無限だったとしても人間の視力は無限じゃないからね
「無限に反射を繰り返す」と思い込みが、いかにもすごそうだと勘違いさせるだけで
実際に構築する虚空間は5回程度で十分それらしくみえるよ。
0451名前は開発中のものです。2010/10/21(木) 08:51:34ID:Tb90fLMG
映画見てないの?
0452名前は開発中のものです。2010/10/21(木) 12:31:10ID:ztPOzFWh
5回程度、で、すむのだろうか...
2回反射としても、2 * 4回くらいバッファ作ることになるんじゃないかと思うんだけど...
3回反射なら、さらに * 10くらい?
狭い室内だからってことで視野を広角にするとさらに大変に...
0453名前は開発中のものです。2010/10/22(金) 05:11:54ID:d+rUZ45V
メガデモスレに依頼したら?
0454名前は開発中のものです。2010/10/23(土) 13:46:21ID:xgtuB2ri
オブジェクトが「点」になるまで収縮するのに、たかだか5回じゃ、
できあがるのは全くの別物過ぎるだろ。消失点とか完全に逸脱するし。

結論、無理。
0455名前は開発中のものです。2010/10/23(土) 14:37:37ID:MFcab25H
GPGPUによる高速レイトレースに頼るしかないね
鏡のモデルが単純だから解像度が低ければ数十回反射をトレースしてもそれなりに速度出るかも
0456名前は開発中のものです。2010/10/23(土) 22:34:14ID:1FVe8j8v
上で簡単にできるって言ってた奴は結局口だけってこと?

0457名前は開発中のものです。2010/10/23(土) 23:45:57ID:8OT+k5jH
え?この板口だけがデフェでしょ?
0458名前は開発中のものです。2010/10/23(土) 23:48:55ID:1FVe8j8v
それって板の存在意味ないじゃんねー

0459名前は開発中のものです。2010/11/06(土) 21:33:39ID:zrF4soKu
すみません。
フラグメントシェーダやっていて、どうしても理解できない現象が出てこまっています。
シェーダプログラムは↓みたいな感じなのですが、どうも自分の視点と向かい合っている面が
明るくなってしまうのです…。
(一応、ライトを動かすことでも陰影の様子は変わりますが、ライトは動かさずに視点だけがが
動いてもフラグメントの色が変わってしまう状態です。)

宜しくお願いします。


varying vec3 position;
varying vec3 normal;

void main (void)
{
vec4 color;

// アンビエントは強制的に反映
color = gl_FrontMaterial.ambient * gl_LightSource[0].ambient;

// 法線とライトベクトルとのcosθの度合いだけディフューズが反映される。
vec3 fnormal = normalize(normal);
vec3 light = normalize(gl_LightSource[0].position.xyz - position);
float diffuse = dot(light, fnormal);

if( diffuse > 0.0 ){
color += gl_FrontMaterial.diffuse * gl_LightSource[0].diffuse * diffuse;
}
gl_FragColor = color;
}
0460名前は開発中のものです。2010/11/06(土) 21:41:21ID:zrF4soKu
あと、バーテックスシェーダプログラムです。↓

varying vec3 position;
varying vec3 normal;

void main(void)
{
position = vec3(gl_ModelViewMatrix * gl_Vertex);
normal = normalize(gl_NormalMatrix * gl_Normal);

gl_Position = ftransform();
}
0461名前は開発中のものです。2010/11/10(水) 23:33:41ID:ly9oB2cY
>>460
gl_NormalMatrixがビュー行列×モデル行列の逆転置行列になってない?

gl_Normalにモデル行列の逆転置行列を掛けて
フラグメントシェーダではワールド座標系でライティングを計算する
もしくは
gl_Normalにビュー行列×モデル行列の逆転置行列を掛けて
フラグメントシェーダではカメラ座標系でライティングを計算する

でうまくいくと思う。
0462名前は開発中のものです。2010/11/16(火) 20:04:42ID:XHelgg19
>>461
当人ではないけど、言っている意味がわからない。
positionおよびnormalはカメラ座標になってる。
元プログラムの何が問題なの?

0463名前は開発中のものです。2010/11/17(水) 00:35:22ID:uq4sIxC5
>>459
glLightでライトの位置を指定されたときにmodel-view matrixが掛けられるけど
毎回model-view matrixを変更した後にちゃんとライトの位置を設定している?
ライトの位置を設定するときにwに1を設定している?

>>426
ミラーハウスのプログラムと解説がプログラム板のメガデモスレッドにあるよ。
0464名前は開発中のものです。2010/11/24(水) 05:01:50ID:rjbJ1VZw
フラグメントシェーダってなんだ?
ピクセルシェーダ-で統一しろ
0465名前は開発中のものです。2010/11/24(水) 10:04:43ID:+MRqLLLo
↑まず末尾を伸ばすのか伸ばさないのか、ーなのか-なのか統一しろw

それはともかく、計算対象がピクセルじゃなくフラグメントなんだから、フラグメントシェーダだろjk
0466名前は開発中のものです。2010/11/24(水) 11:50:25ID:OsIDwll6
フラグメントが良いよな。
まだピクセルじゃねーし。
0467名前は開発中のものです。2010/11/24(水) 15:48:11ID:Lk7YwvPN
*.objファイルの読み込みで
使い勝手が良いライブラリなどありますでしょうか?
glutのサンプルがコンパイルエラーで使えなかったのですが・・
0468名前は開発中のものです。2010/11/24(水) 23:23:41ID:OsIDwll6
個人的にはTriMesh2(http://www.cs.princeton.edu/gfx/proj/trimesh2/)を使ってるが、
どうせ座標と法線程度が読めれば良いので参考にはならないかも。
0469名前は開発中のものです。2010/11/25(木) 15:54:59ID:qyJvSo4Z
C#で作ったフォームからOpenGLの関数類を含んだC++コードを呼ぼうと思っているんですが、
どうも上手くいきません。
どなたか原因をご存知の方はいらっしゃいませんか?

1.CLRのDLLとしてglVertex3d()などの呼び出しを含んだdllを作成
2.CLRのDLL側に glu32.lib と opengl32.lib を追加の依存ファイルとしている
3.C#側で参照設定
4.C#側でこのクラスを構築。すると、
「アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。[続行]をクリック…。
ファイルまたはアセンブリ 'cppGL, Version=1.0.…, Culture=neutral, PublicKeyTOken=null' または
その依存関係の1つが読み込めませんでした。
間違ったフォーマットのプログラムを読み込もうとしました。」
というアプリケーションエラーが発生します。

宜しくお願いします。
0470名前は開発中のものです。2010/11/25(木) 17:50:45ID:qyJvSo4Z
自己完結しました。
ひな形にしていたプロジェクトが古すぎてアセンブリのバージョンみたいなものが
食い違っていたようでした。
スレ汚しすんません
0471名前は開発中のものです。2010/11/25(木) 23:09:51ID:f33OZCUl
>>464
フラグメントシェーダはOpenGLの用語で
ピクセルシェーダはDirect3Dの用語。
結局どちらも同じものだけど。

こんなOpenGLとDirect3Dで同じ機能が違う用語で呼ばれているのがいろいろあるみたいだね。
Stream outputとtransform feedback
primary surfaceとframe buffer
とか。
0472名前は開発中のものです。2010/12/02(木) 08:00:26ID:xAmMDOPK
DirectXのConvertToIndexedBlendedMeshように、
行列パレットの数を指定してメッシュを分割してくれるような
便利なヘルパー関数は、OpenGLのなにかのライブラリに
存在してますか?
自前で実装すると遅すぎて話にならないので困ります。
0473名前は開発中のものです。2010/12/02(木) 09:28:45ID:zrxXra4t
>>472
そんな便利な機能がOpenGLにあるわけなかろう
0474名前は開発中のものです。2010/12/05(日) 10:47:45ID:gmW1u/Sd
じゃあいまどきの多ボーンスキンメッシュを動かしてる人は
全部自前で実装してるって事か。

ってスキニングの段階で事前に分割しておけばいいのか。ワンスキンに
こだわることなかったな。
0475名前は開発中のものです。2010/12/06(月) 18:43:40ID:o/iC03E/
そんなバカな他にオプションのライブラリ使うだろ普通。
0476名前は開発中のものです。2010/12/06(月) 23:08:33ID:Uk5Oqzic
え、普通どうなのかは知らないけど、自分は普通に自作してるよ。
ライブラリとか導入するの面倒くさいんだもんw

Win/Linux/MacOS(iOS)で使えて、導入が楽なライブラリがあるといいんだけど。
フレームワークに依存しないようなやつが欲しいなぁ。
0477名前は開発中のものです。2010/12/09(木) 00:47:25ID:QsEvkvp9
あるけど公開はされていない。
名付けてCloseGL
■ このスレッドは過去ログ倉庫に格納されています