5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

OpenGL vs Direct3D

1 :デフォルトの名無しさん:2001/05/03(木) 19:52
3Dのプログラムをするとき、
速度・書きやすさの面でどっちが良いのでしょうか?

35 :33:2001/05/29(火) 19:44
>>34
それって、OpenGLの行列演算飛ばせる? 飛ばせないと、余計遅くなってしまう。

36 :デフォルトの名無しさん:2001/05/29(火) 20:41
DirectXはね、バージョンによって仕様がコロコロ変わるから
OpenGLの方がいいんでない?

37 :デフォルトの名無しさん:2001/05/29(火) 21:31
最新の機能を使うのならDirect3Dしかないと思う。
みょうちきりんなgl_EXT_XXXXでハマりたいマゾ嗜好ならGLでもいいけどね。

38 :デフォルトの名無しさん:2001/05/29(火) 22:33
GeForceのHWT&Lをジオメトリエンジンと思わせる宣伝は詐欺

39 :デフォルトの名無しさん:2001/05/30(水) 00:54
>>37
NVの場合は逆にOpenGLがネイティブですよ。
D3Dだと仕様でかなりハードの機能が制限されます。
特にレジスタコンバイナは能力が半分くらいに。。。

>>35
>それって、OpenGLの行列演算飛ばせる?
昔ながらのやり方では無理ですよね。
今なら頂点シェーダ使えば可能かと。

40 :30:2001/05/30(水) 01:14
>>31

組むのが・・・ていう話だけど、
DXだとちょっとしたポリゴン出すにも、
頂点バッファを作らないといけなかったり
するのがねぇ・・・と思うんだけど、
これも、自作ライブラリでラップしたり
する?

GLだったら、数行で書けるし、ちょっとした
マクロを使えば、2回目以降はディスプレリスト
で描画するようにもできるしね。

41 :30:2001/05/30(水) 01:17
あ〜、でも、慣れたらそんなに苦にもならないかなぁ・・・

スマソ、気にしないで。

42 :デフォルトの名無しさん:2001/05/30(水) 02:11
DrawPrimitiveUPつかえばVertexBuffer作らなくても済みます

43 :デフォルトの名無しさん:2001/05/30(水) 02:13
OpenGLでは2つの行列を単位行列に設定すると
行列の積は行わない。

44 :デフォルトの名無しさん:2001/05/30(水) 10:37
プログラマがどうこう言おうが、ユーザーから見たらOpenGLは重いの一言なんだよなあ。
まともなドライバ配ってくれよ。えーん。

45 :33:2001/05/30(水) 14:01
>>43
がーん。そこまで良くできていたとは・・・
知らなかったからIMとVoodooで作ったよ。何年も昔の話だ(藁

46 :デフォルトの名無しさん:2001/05/30(水) 14:40
OpenGLが重いってことはQ3AもDirectX使っていたらもっと
高速に動作していたってこと?

47 :デフォルトの名無しさん:2001/05/30(水) 19:52
39>NVの場合は逆にOpenGLがネイティブですよ。

GLが?嘘はやめて・・・

48 :デフォルトの名無しさん:2001/05/30(水) 19:53
>>43
また嘘が・・・

49 :デフォルトの名無しさん:2001/05/30(水) 20:01
Q3Aとかはすでにビデオカードがボトルネックになっていると思われ

それはさておき、普通の人が普通にプログラムすると、GLのほうが遅くなりますね。
パフォーマンスを追求すればD3Dと同じになります。
ただしそのヒントとなる情報が想像以上に少ないので、苦労することでしょう。
っていうかそんなつまらんことに時間を費やすくらいなら、
最初からD3Dでやればいいんだけどね・・・

50 :デフォルトの名無しさん:2001/05/30(水) 23:08
>>47
#39じゃないんですけど、
NVなチップならGLのほうがよりネィティブな機能に触れられますよ。
NV_fenceを使えば、CPUとの非同期な頂点データのGPUへのセットアップ
も出来るし、ピクセルのブレンディングなんかはDirectXのピクセル
シェーダより(NVIDIAの)OpenGLのテクスチャシェーダ+レジスタコンビナ
の方がネィティブハードに近い。と思う。

>>43
それってOpenGLの規格で決まってるんですか?知らなかったヨ。

51 :30:2001/05/30(水) 23:08
>>42

サンクス。週末にでも試してみます。


>>48
mesaのソースを読んでみたんだけど、glLoadIdentity
を呼ばれた時は、IDENTITYなるフラグを立ててる・・・

RotateやMultが呼ばれると、DIRTYなるフラグを立てて
たりしてる・・・

あながちウソとも言えないっぽいよ。

52 :50:2001/05/30(水) 23:12
もっとも、NVな機能を使えば移植性はなくなるし、それをOpenGLと呼んで
いいのかどうか。
本当に、用途に合わせて使えばいいし、どっちでもいいときは好みの
方を使えばイインジャネーノ?

53 :デフォルトの名無しさん:2001/05/30(水) 23:20
仕様はOpenなんだろうけど、特許によりハードウェア実装不可能っていうオチ。

54 :デフォルトの名無しさん:2001/05/31(木) 00:27
俺は別に急いでないからGLでいいや。

55 :デフォルトの名無しさん:2001/05/31(木) 00:34
単位行列設定すると行列乗算しないのはFAQなので検索してみて。

56 :デフォルトの名無しさん:2001/05/31(木) 00:37
そういえば昔、DirectXとOpenGLを統合するって話なかったけ?

57 :デフォルトの名無しさん:2001/05/31(木) 00:37
カムバック、ファーーーーーーーーーレンハイト!!

58 :デフォルトの名無しさん:2001/05/31(木) 00:39
カーマックとキルガードの目の黒いうちはOpenGLは不滅です。

59 :デフォルトの名無しさん:2001/05/31(木) 01:08
>>55
http://www.opengl.org/developers/faqs/technical/transformations.htm#tran0040
の事ですか?
#シラナカッタヨ…。

60 :デフォルトの名無しさん:2001/05/31(木) 01:23
でもOpenGLってもうアップデートしてないでしょ?

61 :デフォルトの名無しさん:2001/05/31(木) 02:03
3年に0.1バージョンくらいずつ上がってますわ。
あまりにも慎重で遅すぎだけど、
アップデートは確実にされているよ。

>OpenGLのテクスチャシェーダ+レジスタコンビナ
>の方がネィティブハードに近い。と思う。

つかハードウェアの機能そのまんまです。
OpenGLでもD3Dでも使えないハードウェア機能なんて今じゃ無意味だしね。
現状、X-Boxを除けばD3DでNVハード機能を全て使うことはできません。

62 :デフォルトの名無しさん:2001/05/31(木) 02:57
少しはちゃんと使ってるやつが意見いえよ

さすが2chだな

63 :デフォルトの名無しさん:2001/05/31(木) 03:46
>>62
実際使ってるけど…使い出せばどっちも特殊な目的が無い限り
代わり映えしないと思うんですけどねぇ。
#つ〜か、これネタスレでしょ?

64 :デフォルトの名無しさん:2001/05/31(木) 10:34
OpenGLソフトはビデオカードによってレンダリング結果がかなり違ったりする。
市販ソフトには使えん。

65 :デフォルトの名無しさん:2001/05/31(木) 12:44
>>64
Lightwave, Softimage, MAYAなんかはOpenGL使ってますが?
もうどうでもいいじゃん。

66 :デフォルトの名無しさん:2001/05/31(木) 21:51
>>55
59が指していたURLには "typical OpenGL implementations ..."
と書いてあるね。
素人はどこで変な知識(しかも嘘)を刷り込まれているか分かったもんじゃないね。

67 :デフォルトの名無しさん:2001/05/31(木) 21:55
ハードが同じなら、いくらがんばっても差が出ない気がするんだけど...

>>64
ハードとセットで売るんです。そうやって儲けるんです。

68 :デフォルトの名無しさん:2001/06/01(金) 01:42
>>67
>ハードが同じなら、いくらがんばっても差が出ない気がするんだけど...

だから
>D3Dだと仕様でかなりハードの機能が制限されます。
>特にレジスタコンバイナは能力が半分くらいに。。。
なんでしょ?

NV_register_combiners を使いこなしたのと同じことしようとすると、
Direct3D ではテクスチャステージ倍は必要です。
使えない機能もありますし。

69 :デフォルトの名無しさん:2001/06/01(金) 03:20
>>66
どこがウソなの?
誰もそれが仕様だとは言ってないし。

70 :デフォルトの名無しさん:2001/06/02(土) 01:06
>>69
は?OpenGLは仕様でしかありませんが?
何を言いたいのかよくわかりません。

71 :デフォルトの名無しさん:2001/06/02(土) 01:14
>>68
それが必要になるほどのプログラムを作るオタク(藁 であれば、
D3DだろうがOpenGLだろうが同じように使えるでしょう。

そうでない人にとっては、それは些細な違いではないでしょうか。
いまここで、どっち使うかなあ、と考えている人が、
そこまで到達するのにどれくらいかかることやら・・・

もうすこし大局的に見られないものかなあ。必要とされているのは
ハードの限界を垣間見るようなオタッキーな使い方ではない、
と思うんだけどね。
機能とはそれだけじゃないんだし・・・

72 :デフォルトの名無しさん:2001/06/02(土) 01:44
>>71
>D3DだろうがOpenGLだろうが同じように使えるでしょう。
だから。。。
D3Dだとハードの機能がかなり制限される。
使えない機能があるって何度も言ってるんですが?

他は全くもって同感ですよ。
誰も普通に使うのに差が出るとは言ってませんて。

73 :デフォルトの名無しさん:2001/06/02(土) 05:51
>>72
ハードの機能を制限することが場合によっては長所にもなり、短所にも
なると思う。より広いターゲットで動かしたい場合はD3Dがいい妥協点に
なる場合もあるわけで。
#現時点ではD3D8もGeforce3しかネイティブには動かせないですが(汗

そもそもレジスタコンビナとかはNVIDIAのベンダ拡張による利点な
わけで、OpenGLそのものの長所でもありますまい。そういう拡張を
許すユルさが長所になるときもあるというだけで。

74 :デフォルトの名無しさん:2001/06/07(木) 21:52
なんでDirectXのサンプルってCばっかりなの?
ゲームプログラマはオブジェクト指向が理解できないドキュソばっかりなの?

75 :デフォルトの名無しさん:2001/06/07(木) 22:07
>>72
>D3Dだとハードの機能がかなり制限される。
>使えない機能があるって何度も言ってるんですが?

白痴ですか?
特定ハードの特定機能が使えないこともある、と言った方がいいですよ。

これだとOpenGLのほうが制限がきついですが、
それに利点があるかもしれないのは73さんのおっしゃるとおり。

76 :デフォルトの名無しさん:2001/06/07(木) 22:08
え?C++のほーがおーくなかったっけ?

77 :デフォルトの名無しさん:2001/06/07(木) 22:14
sampleディレクトリ以下の拡張子.cのファイル2つしかないぞ。

78 :デフォルトの名無しさん:2001/06/07(木) 22:23
>>75
>白痴ですか?
72じゃないのですが、それぐらいは文章から読み取れると思いますけど。
72さんの言っている事と、貴方が言っている事は同じだと思いますよ。

79 :デフォルトの名無しさん:2001/06/07(木) 23:23
CreateDeviceに失敗しちゃうのはなぜですか?
さっぱりわかりません。

LPDIRECT3D8 g_pd3d = NULL;
LPDIRECT3DDEVICE8 g_pd3dDev = NULL;
LPDIRECT3DVERTEXBUFFER8 g_pVB = NULL;

g_pd3d = Direct3DCreate8(D3D_SDK_VERSION);
if( g_pd3d == NULL ) return E_FAIL;

D3DDISPLAYMODE disp_mode;
HRESULT hr;

hr = g_pd3d->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&disp_mode);
if( FAILED(hr) )
return hr;

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp,sizeof(D3DPRESENT_PARAMETERS));
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = disp_mode.Format;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;


hr = g_pd3d->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp,
&g_pd3dDev);

80 :デフォルトの名無しさん:2001/06/08(金) 01:09
IDirect3D8::CheckDepthStencilMatch

81 :デフォルトの名無しさん:2001/06/08(金) 02:35
お遊びで3Dやりたい人はOpenGL。
仕事にしたい人はDirect3D。

82 :デフォルトの名無しさん:2001/06/08(金) 02:53
81に噛み付くのはご遠慮ください。

83 :デフォルトの名無しさん:2001/06/08(金) 02:53
81に噛み付くのはご遠慮ください。

84 :デフォルトの名無しさん:2001/06/08(金) 04:21
You idiot!!

20 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)