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

OpenGL

■ このスレッドは過去ログ倉庫に格納されています
000101/11/15 23:34ID:GvgJsycj
現在OpenGLを勉強してますが、OpenGLでは3Dゲームは作れないのでしょうか?無駄なのでしょうか?
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
0478名前は開発中のものです。2010/12/10(金) 13:39:10ID:5/5pUsYF
今現在見ているスクリーンを、そのまま水平移動、垂直移動する簡単な方法はありませんか。
ただしカメラ座標で平行移動するのはなしで。
ワールド座標系で視線ベクトルと垂直なベクトルを計算して……
という方法以外の簡単な方法を探しています。
0479名前は開発中のものです。2010/12/10(金) 22:34:20ID:HclmO53K
「スクリーンを」というのならglViewPortかな?
シーンを動かすなら2D,3Dでやり方が変わってくると思うよ。
0480名前は開発中のものです。2010/12/10(金) 23:17:50ID:5/5pUsYF
あきらめました
0481名前は開発中のものです。2010/12/11(土) 23:45:17ID:zC44+pOK
モデルビュー行列からベクトル取れるだろう。
0482 [―{}@{}@{}-] 名前は開発中のものです。2011/01/09(日) 06:26:43ID:+07MgtBc
OpenGLでインデックスカラーモードでテクスチャの表示をするとハードウェアアクセラレーションは得られないんでしょうか
0483名前は開発中のものです。2011/02/15(火) 23:44:31ID:lhGOZ74X
>>482
赤本になんかそれらしい記述があったような気がする。
適当ですまん。
0484名前は開発中のものです。2011/03/14(月) 02:32:09.54ID:jWhijRYx
OpenGLでFPSの固定のしかたがわからないんですが,
どなたか教えてもらえないでしょうか?

DirectXに慣れているので,
Idleのコールバックや描画のタイミングが制御できない点に手を焼いてしまっています.

参考になるサイトや書籍があれば教えていただけると助かります.

あと,板ポリゴンにテクスチャはった途端,描画に1秒近くかかり始めたのですが...
こっちはもうちょっと自分で追ってみます.
0485名前は開発中のものです。2011/03/14(月) 04:01:14.19ID:2rIai5Ga
>>484
glutTimerFunc
glutPostRedisplay
あたりかな?
0486 忍法帖【Lv=3,xxxP】 2011/03/14(月) 09:21:26.26ID:Pr9OBuxI
glut抜きでお願いします
04874842011/03/14(月) 20:21:19.59ID:jWhijRYx
>>485
ありがとうございます.試してみます.

ちなみに486は私じゃないです.

0488名前は開発中のものです。2011/03/15(火) 07:10:59.81ID:Ox5XPTt5
GLUTなんて使う人いるの?
0489名前は開発中のものです。2011/03/15(火) 19:58:30.32ID:ARr//KuJ
使ってるけど?
0490名前は開発中のものです。2011/03/15(火) 20:14:36.57ID:VIqB4cIa
土日スレで使ってる人いたね
俺も使ったことあるけど便利だったよ
glut使わない人は代わりにどうしてるの?
0491名前は開発中のものです。2011/03/16(水) 02:24:04.33ID:DmTZktkB
どうしてるって……
普通に自分で実装してますが。
0492名前は開発中のものです。2011/03/16(水) 10:32:34.74ID:aH2PdT+S
>>490
OpenSceneGraph イイヨー
0493名前は開発中のものです。2011/03/20(日) 17:58:57.20ID:ZQXRHqtc
GLUT使って無いなら描画タイミングに自分でウェイトいれられるよね
0494名前は開発中のものです。2011/03/20(日) 19:29:16.77ID:WUiplD3X
glutってループに勝手にウェイト入れてたっけ?
0495名前は開発中のものです。2011/04/03(日) 13:24:56.88ID:OFnDknpR
特になかったはず
0496名前は開発中のものです。2011/04/06(水) 19:31:50.86ID:lH9yhOfN
OpenGLのみ(glutとか無し)で勉強するのに
3Dに全く触れたことのない場合
どんな本がお勧めですか?
教えて頂ければ幸いです
0497名前は開発中のものです。2011/04/06(水) 20:55:22.84ID:c6d/JfS9
赤本NGならロクな本がないのがOpenGL
0498名前は開発中のものです。2011/04/06(水) 22:43:42.36ID:lH9yhOfN
つまり赤本を買っとけということですね
了解しました
また懐が寒くなる T T
0499名前は開発中のものです。2011/09/15(木) 11:04:09.92ID:/QNlSHfO
遅延シェーディングで教えてください。
1パス目:位置、法線、マテリアルの各種係数などをテクスチャーに出力
2パス目:画面全体を覆う板ポリを上記のテクスチャーを使って描画
でいいんでしょうか? 2パス目の画面全体を覆う板ポリが怪しいのですが、これであってますよね?
0500名前は開発中のものです。2011/09/16(金) 01:49:21.44ID:S97p5lIU
合ってる
05014992011/09/16(金) 08:01:36.28ID:/duHazH2
遅延シェーディングのメリットって何でしょうか?
結局計算量自体は1パスで計算するのと同じで、
マテリアル情報を出力する分コストが高い気がするのですが...

Zだけ先にレンダリングするのと比べて何がいいのでしょうか。
1パス目:Zだけレンダリング
2パス目:もう1回レンダリング
こっちの方が速い気がします。
0502名前は開発中のものです。2011/09/16(金) 21:28:39.03ID:3ZrwjYRf
ライト無制限
05034992011/09/17(土) 08:17:43.47ID:Nsy1iM/D
ライト無制限って最後の板ポリを書くとき1シェーダー1ライトで、
ライトのパラメーターを変えながらN枚の(同じ)板ポリを書いて加算合成するの?

結局遅延シェーディングの利点って速度よりも全体のパイプラインの見通しの良さと、シェーダーの分割にある気がする。
あと2Dのポストプロセスと相性がいい(なにせ最後は板ポリだ)。
プログラムにするとしたらこんな感じでしょうか。

class Material {
 setGeometryShader (); // for 1st pass, z
 setMaterialShader ();  // for 1st pass, diffuse, specular

class Light {
 setLightingShader ();  // for 2nd pass

clss Scene {
 setPostProcessShader (); // for 3rd pass

0504名前は開発中のものです。2011/09/17(土) 08:22:18.99ID:Nsy1iM/D
あとシェーディングに使うマテリアル情報が1st passで書き出したもの、
せいぜい位置、法線、Diffuse係数、Specular係数だけなので
本当にこれで2nd passでレンダリングするのに十分かどうか。
テクスチャーはDiffuse係数に叩き込んでおくとしても
その他の特殊パラメーターを渡したくならないか...
■ このスレッドは過去ログ倉庫に格納されています