X



OpenGL 2.0 専用スレ
0102デフォルトの名無しさん
垢版 |
2005/11/04(金) 02:24:36
DirectXから比べると遅いねぇ。
Effectファイルみたいなシェーダ管理機構もないからシェーダファイルの数も膨れ上がるし。
シェーダコードをバイナリ化しとけないのも×。
言っちゃなんだけど製品に使うには粗がありすぎだと思うけどどうか?

実際にGLSL使われてる製品ってあんの?
0104デフォルトの名無しさん
垢版 |
2005/11/04(金) 16:07:15
っていうか、ゲームってGLばっかだと思ってたけど。
昔カーマックがDX使わないって言ってたのを聞いた事がある。
0105デフォルトの名無しさん
垢版 |
2005/11/04(金) 17:04:04
ゲームはほぼdirectxのみ。
多くの開発者にとって神であるカーマックがopengl支持だったから、辛うじて残ってたくらい。
そのカーマックすらxbox360でdirectx陣営に回りそうって話で、ゲーム分野での死滅は免れそうに無い。
0107デフォルトの名無しさん
垢版 |
2005/11/04(金) 17:11:22
はっきり言っちゃうと、個人的にはゲームなんてどうでもいい。
ゲームのおかげでGPUが安く高性能になったのには助けられているが。
0109デフォルトの名無しさん
垢版 |
2005/11/04(金) 23:30:20
ウンコリアルエンジン見たくドライバメーカと蜜月な関係に
でもならんとGLで製品作るのは相当辛いと思われるが。
0110デフォルトの名無しさん
垢版 |
2005/11/04(金) 23:59:01
なもんで、NVIDIAがライブラリを豊富に用意した

かつOpenGLなので面白い関数は速攻ライブラリ行きにできる
ましてコンソールだから承認を待つ必要もなく、
作ったところが自由に入れ込める

もし優秀ならばSDKアップデートとして他メーカーにも提供していけるという話
権利がどうなるのかは知らないが
0112デフォルトの名無しさん
垢版 |
2005/11/05(土) 01:00:35
PS3の話と他の話の区別ができないバカも出るわけだわ
0113デフォルトの名無しさん
垢版 |
2005/11/05(土) 01:20:18
ケータイゲーム業界(というよりキャリア(というよりチップメーカー))が
OpenGL/ESを選んだから
OpenGLのゲーム業界進出はこれからが本番だよ
0116デフォルトの名無しさん
垢版 |
2005/11/05(土) 08:56:13
OpenGL毛嫌いすんのはアレでしょ、要するにアホ。

某自称社長なんか知ったかコイて「Xbox360のほうが性能がいい」とか言っていたが
ジョン・カーマックが「PS3のほうが性能はいい」


ああいう誰かも分からないアホよりもカーマックのいうことのほうが説得力がある
よくよく見れば単なるDXファンボーイ

そういうバカの集まりだよDXファンボーイは
0117デフォルトの名無しさん
垢版 |
2005/11/05(土) 09:36:47
HEYユー
DXファンボーイを侮るんじゃあないぜ。やつらは大勢だ
そこんとこユーはアンダスタン?
0120デフォルトの名無しさん
垢版 |
2005/11/05(土) 11:22:20
情報がすくねーな。あとドライバのGL実装がバグバグ。
というかGLマンセーな人はATIやNVのドライバの糞実装で泣いた事は無いのか?
あいつら、明らかにやる気ないぞ。
0123デフォルトの名無しさん
垢版 |
2005/11/05(土) 11:56:03
人間楽な道に行くとバカなことしか言わなくなるし
ロクなこともできない
0128デフォルトの名無しさん
垢版 |
2005/11/07(月) 21:50:15
こっちのスレまで不毛な論争が入ってきたな。
どうなろうがここはOpenGL関連のスレなんだからOpenGLの価値否定ばっかしてもしょうがないだろ。
実際の2.0関連の話を粛々とすればいいんじゃないの?
0131デフォルトの名無しさん
垢版 |
2005/11/08(火) 12:56:34
でも、DirectXの話ははっきり言ってうざいだけ。
どうしてもやるならOpenGL vs DirectXみたいなスレでも立てて
そちらへ隔離してほしい。
0133デフォルトの名無しさん
垢版 |
2005/11/09(水) 01:35:15
OpenGL2.0の達人の方々に質問です。
FBOに対してFSAAをかける方法解る人いますか?
拡張命令を目を皿にして眺めてもよくわかんなかったれす。
0135デフォルトの名無しさん
垢版 |
2005/11/09(水) 15:13:48
久しぶりに来てみたら。なんだ。お前らまだOpenGLなんかやってやがる。

ダメじゃん。全然未来が見えてないジャン。

やっていることは。種子島の鉄砲伝来以来。変わってないジャン。

ま。そういう民族ってことなんだろうけど。

お前らには悪いが。私は一足お先に未来へと行かせてもらうよ。
0148デフォルトの名無しさん
垢版 |
2005/11/10(木) 00:42:30
>>134
Issues41は読みました…。う〜良くわからん。
まだ実装されてないって事?実装する予定が無いって事?
またpbufferに逆戻りか…。


0150デフォルトの名無しさん
垢版 |
2005/11/10(木) 01:18:58
>>149
 マジカ!折角pbufferの呪縛から逃れて新たにFBOで仕切りなおしかと思いきや
FSAAで拡張地獄に付き合わなきゃあかんのか。DX Boyがシャカリキになるのも
うなづけるってもんだ。

 ってか、GLスレでちゃんとレス貰えると思わなかった。サンクス。
0152デフォルトの名無しさん
垢版 |
2005/11/25(金) 16:45:49
GLSLでマルチテクスチャができねぇ
フラグメントシェーダで二つ目のテクスチャがサンプリングされない

つーか全てのレンダリングステートを意識するのが疲れる
glActiveTextureARB( GL_TEXTURE0_ARB ) / glActiveTextureARB( GL_TEXTURE1_ARB )とか
glEnable( GL_TEXTURE_2D ) / glDisable( GL_TEXTURE_2D )とか
BindTextureとか
とかいつどの順番でどう呼べばいいのかわからんボケ(`')
0153デフォルトの名無しさん
垢版 |
2005/11/25(金) 22:11:27
GLSL
uniform sampler2D tex0, tex1;

glUniform1i(glGetUniformLocation(prog, "tex"), 1); // GL_TEXTURE1

glActiveTexture( GL_TEXTURE1)の後、glBindTexture
GLSLの時、glEnable/glDisableいらない(かも

寝る
0154152
垢版 |
2005/11/25(金) 23:46:18
くそっできねー

>>153
寝ないでくれ。

そんな感じでやってるのだがやっぱりダメできない。
テクスチャの読み込み時にもglActiveTextureARBは必要なのだろうか。どっちにしろできなかったけど。
VBO使ってるのは関係あるんかな。
今環境マッピングやってて、一つ目のテクスチャUVはVBOで、二つ目のテクスチャUVはフラグメントシェーダ中で計算してるのだけど。

今から非VBOでやってみる。

GLSL+マルチテクスチャできた人でつまづいたところとかあったら教えてくで。
0156デフォルトの名無しさん
垢版 |
2005/11/25(金) 23:59:32
>>154
テクスチャ読み込むときもバインド必要だよ。

読み込み
glBindTexture(...
gluBulid2DMipmaps(...

描画
glActiveTexture(...
glBindTexture(...
0157デフォルトの名無しさん
垢版 |
2005/11/26(土) 00:17:45
まず152はテクスチャフェッチとテクスチャユニットの関係から勉強するべき。

ていうか実際にシェーダ書く前にシェーダパイプラインの構造を勉強するべき。

そんなんやってらんねーよ、とか言うなら素直にDirectXに行くべき。
0158152
垢版 |
2005/11/26(土) 00:29:27
非VBO(glMultiTexCoord2fARB)でもダメだった。一つ目のテクスチャしか表示されねぇ。
gl_FragColor = texture2DProj( tex1, gl_TexCoord[0] ) * texture2DProj( tex2, gl_TexCoord[1] );

>>155
そこは既に見ている、のだけど・・・

>>156
読み込み
glActiveTexture ←不要?
glGenTextures
glBindTexture
glTexImage2D

描画
glActiveTexture
glBindTexture
glTexParameteri
//ここで描画

>>157
了解、勉強してくる。たぶん中途半端な理解だから。
0159デフォルトの名無しさん
垢版 |
2005/11/26(土) 01:25:48
UVがおかしいのかテクスチャがおかしいのかをはっきりさせろ。
ためしに、
gl_FragColor = texture2DProj( tex2, gl_TexCoord[0] );
とか、
gl_FragColor = texture2DProj( tex1, gl_TexCoord[1] );
とか、やってみろ。
0160デフォルトの名無しさん
垢版 |
2005/11/26(土) 01:32:46
マジレスすると、

シェーダはテクスチャユニットからテクスチャをフェッチしてくるので
テクスチャユニットにテクスチャが何もバインドされていなければ
シェーダはテクスチャユニットからテクスチャをフェッチできない。
したがってシェーダでテクスチャをフェッチする場合は必ず
テクスチャユニットにテクスチャをバインドしてテクスチャユニットを
アクティブにしなければならない。
0161デフォルトの名無しさん
垢版 |
2005/11/26(土) 01:40:28
マジレスすると、

シェーダはテクスチャをバインドしてテクスチャユニットから
テクスチャをテクスチャユニットにテクスチャがフェッチしてくるので
テクスチャユニットにテクスチャがテクスチャユニットをアクティブに
何もバインドされていなければテクスチャユニットからテクスチャをフェッチ
シェーダはテクスチャユニットからテクスチャをフェッチできない。
したがってテクスチャユニットにシェーダでテクスチャをフェッチする場合は必ず
テクスチャユニットにテクスチャユニットをアクティブにテクスチャをバインドして
テクスチャユニットをテクスチャユニットからテクスチャをテクスチャユニットに
テクスチャアクティブにしなければならない。
0163デフォルトの名無しさん
垢版 |
2005/11/26(土) 01:56:02
正直こんなところでつまづくならDirectXのほうが理解が早いぞ。
DirectX10でまた色々強化されるし乗り換えておいたほうがいいんじゃね?
0166152
垢版 |
2005/11/26(土) 04:01:43
やっとできた!

glUseProgramObjectARBでハンドルを指定する前にglUniform1iARBしていたのが原因だったようだ。
読み込み時にglActiveTextureする必要はなかった。

同じUV値で>>159の方法で悩んだり、なんかどんどん小さいエンバグしていって、もうn

レスしてくれた人、一緒に考えてくれた人、ありがとう。
アホだけど、やっぱり好きです。
0174デフォルトの名無しさん
垢版 |
2005/11/27(日) 18:15:13
Xbox360大盛況でどうみてもDirectXの圧勝です。

OpenGLは終了致しました。

ご声援ありがとうございました。

今後はDirectXをお使いください。
0176デフォルトの名無しさん
垢版 |
2005/11/27(日) 23:30:15
フリーズしまくる
0177デフォルトの名無しさん
垢版 |
2005/11/27(日) 23:34:55
まだだ! まだ我々にはOpenGL2.1がある!!
0178デフォルトの名無しさん
垢版 |
2005/11/30(水) 01:34:52
glUniform1iARBって言えば、俺もハマッた記憶あるな。1時間ぐらい悩んだ。
つか、DX-Boyの俺にはサンプラ変数にシェーダ内に値が持てないのがまず理解できない。
cgでもつかえって事か。
0179デフォルトの名無しさん
垢版 |
2005/12/01(木) 06:58:22
CgはCgで色々ある
コンパイラに任せとくと実行速度が1/2になることも
0180デフォルトの名無しさん
垢版 |
2005/12/03(土) 02:18:43
Cgは遅いから気をつけろよ。
無駄な変数を定義せず無駄なセットをしないこと。
シェーダーが切り替わると共有変数とか関係なしに
全変数(未使用も含む)が再セットされるのでコストがでかい。
0183デフォルトの名無しさん
垢版 |
2005/12/04(日) 13:45:30
>>179
>>180
まじで? CgがそうだってことはHLSLも?
GLSLはどうなんだろう・・・。
0184デフォルトの名無しさん
垢版 |
2005/12/04(日) 14:26:42
GLSLはよく知らないけど、CgやHLSLはアセンブラの知識が必須。
特にピクセルシェーダ1.x系列の場合は。

シェーダを書くときは一度コンパイル結果をアセンブラに落として
中身を確認した方がいい。特に従属テクスチャ命令なんかは命令の
制限が解ってないと、きちんとアセンブラの命令に落ちてくれない。

まあ、ピクセルシェーダ2.x以降は適当に書いててもコンパイル
できちゃうんだけどね。それはそれでまずいんだけど。
0185デフォルトの名無しさん
垢版 |
2005/12/04(日) 15:25:47
GLSLはループ回してる時に動的分岐入れるとまずコンパイルできない。
いや、コンパイルはできるんだがリンクできない。
「ループ時にブランチするな」とはどこにも書いてないので、恐らくコンパイラのバグなんだろう。
(ちなみにnVIDIAのCgコンパイラ経由)

かと言ってARB_vertex/fragment_programはループもブランチも実装されてないから
アセンブラでチマチマ書こうにも書けない。

結局、ベンダがコンパイラの質を上げてくれるのを待つしかない。
0186デフォルトの名無しさん
垢版 |
2005/12/04(日) 16:14:40
川瀬氏が今Cgいろいろやってるが、苦労してるようだ
0187デフォルトの名無しさん
垢版 |
2005/12/04(日) 16:17:14
投稿日 11月22日(火)04時29分 投稿者 Masa 削除

参照しているプログラムどころか、
使っている/いないに全く関係無しに、
エフェクト内の全ての uniform 変数は
エフェクト内の全てのプログラムに
連結されているみたいです。

結果、全く使われない無駄な連結が何百とあったので、
それを cgDisconnectParameter するだけでも
テストプログラム全体の速度が倍以上速くなりました。



ありえない…。
0188デフォルトの名無しさん
垢版 |
2005/12/04(日) 16:33:31
>>180はCgFXの話だよね?
>>185 GLSLじゃないけど、CgのFP40プロファイルとかはどうだろう。一応ループはコンパイル通って動いたよ。
NVIDIAのボードじゃないと動かないかもしれないけど
0189デフォルトの名無しさん
垢版 |
2005/12/04(日) 17:01:45
つーかPCもビデオカードなんて捨ててGPUコアをCPUみたく直接M/Bに乗せるアーキテクチャにするべき。
で、広帯域のメモリをCPU/GPUで共有。勿論、各種バッファ(頂点、フレーム、ステンシルetc)にCPU側からアクセス可能、と。

正直RTVBなんかやってられないわけですよ。
0190デフォルトの名無しさん
垢版 |
2005/12/04(日) 17:04:54
まぁ、Shader1.x世代のコードを書いてた人にはHLSLはちょっとアレかも
知れないが実際には意外と予想した通りのコードを吐き出してくれる。
どのみちペアリング実行とかテクスチャレイテンシーは仕様制定されて
ないから中間コードをドライバが最適化してくれるのを期待するしかないしね。

つか同じボードで同じ処理をしてもGLSLの方が2〜3割減ぐらいでパフォーマンス
出ない。特に動的/静的分岐周りは意味不明なパフォーマンスになる。
FBOのバインドにはms単位でコストかかるし、本当にこれでゲーム作れるのか…
と疑問に思うよ。

セガのアーケードボードはLinux+OpenGL2.0なんだっけ?バーチャ5とか凄い映像
なんだけどやっぱドライバとか専用にカスタマイズしてもらってるんだろうね。いいなぁ。
0191デフォルトの名無しさん
垢版 |
2005/12/04(日) 17:21:56
>>190
>GLSLの方が2〜3割減ぐらいでパフォーマンス出ない

頂点の描画方法に問題があるかと
OpenGLはIMだとドライバのオーバーヘッドありまくりで激遅
DLも結局ドライバ内部で命令のスイッチが起こるのでVBOが最適
0192デフォルトの名無しさん
垢版 |
2005/12/04(日) 17:27:06
うはwいつのまにかOpenGL2.0専用スレらしくなってるw
0193デフォルトの名無しさん
垢版 |
2005/12/04(日) 19:39:45
なんでもそうだが、コンパイラ任せでそのまんま
ってのはダメだ
0194デフォルトの名無しさん
垢版 |
2005/12/04(日) 20:02:41
う〜ん、でもコンパイラトリッキーなコードはそれはそれで問題だからなぁ。

>>191

 OpenGL(というかNVIDIAドライバ)はOpenGLになると急に頂点能力落ちるね。
ハードで効率よく扱える頂点ストリームに特定の法則があるっぽいんだが意味不明。
0196デフォルトの名無しさん
垢版 |
2005/12/04(日) 20:32:05
uniform変数の連結ポリシーもそうなんだけど、
そこら辺何も言わないしどこにも書いてないから困る

書かれてあれば、自分でディスパッチしたり切断したりできるのに
0197デフォルトの名無しさん
垢版 |
2005/12/04(日) 22:05:38
>>194
VBO使えば、1つのバッファ・1つのデータ配列で頂点も法線もUVもカラーもマルチUVも一挙に流し込めるからマジお奨め。
しかもそのデータ配列の構造も自由に構成できるから(例えばGL_FLOATの頂点3/UV2/法線2)柔軟性が非常に高い。

まぁ、DirectXは知らんが。
0198197
垢版 |
2005/12/04(日) 22:06:53
法線3ですた。
0199デフォルトの名無しさん
垢版 |
2005/12/04(日) 22:17:23
ていうか商用のOpenGLゲームでアニメーションをどのように描画しているのか
激しく謎なんだけど誰かknow-how知りませんかね?

やっぱglDrawElementsでバッチしてるんだろうか。
しかし頂点座標はボーンの計算後に生成されるわけだしなぁ…。
レスを投稿する