DirectX総合スレ (Part2)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/09/22 23:30:32ID:anobjZYP基礎的な質問+高度な質問も簡潔かつ簡単に答えることをモットーにして頂き
このスレの回転を早めて常にアクティブなスレにしたいと思っております。
このスレに質問等を書かれる方はまず最初に自分でしっかりと調べたのちに聞かれることをお願いします。
質問に対する答えも簡潔に出来る限りわかりやすくお願い致します。
テンプレは >>2以降で
0201名前は開発中のものです。
04/10/22 20:00:31ID:oY6D88HE> 0,1,2,3,4,...と順並びでも
我が意を得たりというか、コンバートするとまさにこの状態なんですよ。それで疑問に思いまして…。
いや良かったです、速い場合があるんですね。その辺もう少し勉強してみます。
回答ありがとうございました!
0202名前は開発中のものです。
04/10/23 01:14:18ID:y/5D5f1B何やらかんやらありますがテクスチャ1枚を貼り付けたCUBEを100個
表示させるのならどれが一番速いですかね?
and
それぞれはどういった特徴があるのでしょうか?
0203名前は開発中のものです。
04/10/23 01:19:21ID:bO77c3Y/ホンダのエンジンとブリジストンのタイヤと日本石油のガソリンがありますが
100kmを走るにはどれが一番速いですか?って聞いてるようなもんだぞ
0204名前は開発中のものです。
04/10/23 01:33:21ID:IHYlkrYRプログラマブルシェーダって要するにシェーダをプログラムで組む奴ですよ。
つまり頂点シェーダとピクセルシェーダを包括するものだと思っとけw
頂点シェーダはモデルの頂点のシェーダ。(なんつーの?点1つ1つにほどこす計算みたいな?)
ピクセルシェーダはモデルのピクセルのシェーダ。(ポリゴンの色塗りに施す仕掛けだな)
つまり頂点シェーダとピクセルシェーダは同時に使える(使う)別々の処理を行うもので比べてもしゃーないのですよ。
0205名前は開発中のものです。
04/10/23 02:04:18ID:2vLRGGWt0206名前は開発中のものです。
04/10/23 02:25:04ID:IHYlkrYR測ったこと無いけど固定パイプラインって色々やってるじゃん。
ライトを5つも6つも付けても、バンプや環境マップが設定できるでしょ(たしかw)
遅いと思うよ。(処理によると思うけど)
0207名前は開発中のものです。
04/10/23 03:33:36ID:oxnV01SwUVマッピングで1枚のテクスチャを貼る方法と面一枚一枚に複数貼る方法とでは
どちらが速度が速いのでしょうか?
0208名前は開発中のものです。
04/10/23 04:19:16ID:IHYlkrYR一枚のテクスチャを貼るほうが速いとされているけど
俺が測った感じだと数と場合による。
普通のモデルだったら一枚のテクスチャの方がはやいよ。多分。
でも、一画面にどう考えても入らないモデルをぎっちりまとめておくと
テクスチャ云々の問題よりモデルを分割して描画(つまり画面に入らない部分のモデルの計算からしない)
をすることができないから、それはそれでおそいんじゃねぇかなと予想してみる。
どうだろ。(ちなみに勘)
0209名前は開発中のものです。
04/10/23 15:08:06ID:/MuH3fkP0210名前は開発中のものです。
04/10/23 17:28:27ID:SfTHYw6Tそれはそうなんだけど。
一画面におさまる程度の大きさを超えた場合ってどうなるんだろうね。
つまり広大な地形の類とかさ。
真ん中に立って北を向いたとすると、そのときの描画自体は南のデータなんかいらないわけじゃん。
でもテクスチャやモデルは北と南の両方のデータがまとまってるわけじゃん。
こういう問題を含めると単純にまとめておくと速いって認識もどうよと思うわけよ。
スカイボックスの類なんてやったとすると一枚一枚別にした方がはやいんじゃねーかと考えてみたりして(もちろん勘)
0211名前は開発中のものです。
04/10/23 17:37:00ID:sMo4Qn/60212名前は開発中のものです。
04/10/23 20:27:44ID:YmVB4Iw2テクスチャは一つでもいいと思う
モデルは分割して見えない部分は描画しないってのも手だと思うけど
スカイボックスっていうぐらいだから頂点数は少ないでしょ
だったら分割してできるコストの方が大きい気がする
スカイボックスを軽く描画したいんだったら、できるだけ最後に描画したほうがパフォーマンスは稼げる
半透明(アルファ値を持つ)のものがあるとそっちの方を後に描画しないといけないけど
基本は手前から描いていく
>202はもうすこし理解してから質問しましょう
>頂点シェーダやらピクセルシェーダやらプログラマブルシェーダ
この時点で理解不足です
いや、煽りじゃなくてある程度理解がないと適切な質問もできないし、
返答を理解することもできないだろうから非効率だと思うんで
0213名前は開発中のものです。
04/10/24 00:42:31ID:fL1Fp2Br方法がよく分からないです。頂点カラーを操作しているのでしょうか?
0214名前は開発中のものです。
04/10/24 01:48:44ID:cDjg2sjK0215名前は開発中のものです。
04/10/24 13:47:50ID:y2umnsNYスコアなどをテクスチャを貼り付けたポリゴンで表示したいのですが、
常に画面の同じ位置に表示させる方法が分かりません。
どうかこんな俺に救いの手をお願いします。
0216名前は開発中のものです。
04/10/24 14:14:03ID:+00SYBin0217名前は開発中のものです。
04/10/24 15:34:27ID:fL1Fp2Brそこで方法として
胴体x1 足x6 目x2 ハサミx2 計11個のポリゴンモデルすべてに同じボーン構造をもたせた
Xファイルを出力し、プログラム側で親子関係を持たせて結合、連動させるというのを思いついたのですが
この方法は正しいでしょうか?もっと他に良い方法など無いでしょうか?
0218名前は開発中のものです。
04/10/24 16:07:17ID:/wWlJ+Yzありがとうございます。こんなに簡単な方法だったんですね。
かなり勘違いしてました。
ビルボードとかの技術を使わないといけないのかと思っていました・・・。 orz =3
0219名前は開発中のものです。
04/10/24 19:34:17ID:bVUqYsQlCreateA()してからA()、Aの戻り値が1ならCreateB()してB()という関数を呼び出してます。
A.cppのcreateA()という関数の中で
externでvbを外部呼出しして
CreateVertexBuffer命令・Lock・書き込み・unlockのあと
A.cppのA()という関数で
その頂点データを使用して描画しています。
B.cppのcreateB()という関数の中で
externでvbを外部呼出しして
CreateVertexBuffer命令・Lock・書き込み・unlockのあと
B.cppのB()という関数で
その頂点データを使用して描画しています。
B()関数を呼び出して描画しようとしてるのですができません。
原因わかりますでしょうか?
説明が下手で申し訳ありませんがよろしくお願いします。
0220名前は開発中のものです。
04/10/24 19:37:54ID:OZox6TUuエラーコードが帰ってきたりするならそれも教えて欲しいんだが
0221名前は開発中のものです。
04/10/24 19:50:05ID:bVUqYsQl0222名前は開発中のものです。
04/10/24 21:06:51ID:ttvwl10O0223名前は開発中のものです。
04/10/24 23:53:00ID:xMz+4qg0HRESULT hr;
hr = pD3DDevice->SetTexture( 0, pTexture );
if( FAILED( hr ) )
return FALSE;
こんなんとか
hr = pD3DDevice->SetStreamSource( 0, pVB, 0, sizeof(頂点データ) );
if( FAILED( hr ) )
return FALSE;
とかやってみては?
CreateVertexBufferも DrawPrimitiveも
失敗すれば hr にエラーが返ってくるから
どの設定が悪かったのか分かるかも。
張られて無いならエラーだしてるんでは?
もし俺なら、AのプログラムをBに
コピー&ペーストして動かしてみる(w
0224名前は開発中のものです。
04/10/25 00:53:04ID:Z4xgve5pCrate〜ってのが頂点データとか設定とかだけやっててすぐにTRUE返して。
A関数で描画を行なってるんですけどA関数はキーボードに反応させて1を
押したらTRUE返してCreateBに移ってこれもまたデータの設定とかで
B関数に飛んでまわしてるんですけど。
CreateA→Aでは欲しい結果は返ってきててそのあと返り値でCreateB→B
にいくとおかしくってるんですよね。
これでCreatA→Aを通さず、CreatB→Bだけだと成功するんですよね。
CreateVertexBufferのLock→書き込み→unlockって別に何度というか
2回しても大丈夫ですよね。
0225名前は開発中のものです。
04/10/25 01:39:10ID:jOnQwe7Zswitch(mode)
{
value1:
CreateA();
break;
value2:
if( A() == TRUE )
CreateB();
break;
}
////////////////////
BOOL A()
{
描画
if( キー操作 )
return TRUE;
return FALSE;
}
void CreateB()
{
B();
}
void B()
{
描画
}
こういうこつ?
0226名前は開発中のものです。
04/10/25 02:01:03ID:jOnQwe7Z(自分のプログラムはしょっちゅうやっている いいか悪いかは知らねw)
処理の順番に問題があるような、そんな貴方に
『出来るだけシンプルに。しかしシンプル過ぎず。』
225を元にしてだけど、Aという関数が仕事し過ぎのような。
0227名前は開発中のものです。
04/10/25 03:27:46ID:bQhV/SKL多分一発で解決だと思う。
コーディングミスってオチでね。
0228名前は開発中のものです。
04/10/25 15:44:08ID:x6+SjO3Oそういうことです。
0229名前は開発中のものです。
04/10/25 21:01:54ID:CESlfaTkAという関数が仕事し過ぎのようなとはどういうことですか?
0230名前は開発中のものです。
04/10/26 18:31:24ID:sbftx/e5一つの関数で多くの処理をやりすぎているってことだろ
つーか、225氏も言うとおりだが、プログラムがかなり怪しい動き方をしてると思うよ。
やりたい作業の手順の書き下し方がよくないんだろうと思うけれどなぁ。
0231名前は開発中のものです。
04/10/26 19:24:05ID:Vz62+Yvuwhile (!end){
if (PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
TranslateMessage(&msg); DispatchMessage(&msg);
}else{
Main();
}
}
ーーーーー
void Main(){
switch(Mode){
case 0:
if( CreateA() )
Mode=1;
break;
case 1:
if( A() ){
if( CreateB() ){
Mode=2;
break;
}
}
default:
end=1;
}
}
こんな感じでCreate〜で頂点データの作成とか設定を書き込んで
〜関数で描画って感じでしてるんですがアクロバティックですかね。
オーソドックスなスタイルを教えていただけませんでしょうか?
ちなみに欲しい結果はえられましたのでだいじょうび。
0232名前は開発中のものです。
04/10/26 19:51:17ID:/HMietuq0233名前は開発中のものです。
04/10/26 20:09:39ID:/b5gpP3qタイトルロゴもボスシーンもエンディングもメニュー画面もすべて同じゲーム中のイベントとして考えればよい。
プログラムが始まってシステムの初期化が終わればメインループを抜けることは(ゲーム終了時をのぞき)無い。
0234名前は開発中のものです。
04/10/26 20:30:31ID:E7UXsOTFあちこちで見かけるが、最悪のコーディングなんだが。
0235名前は開発中のものです。
04/10/26 20:31:16ID:E7UXsOTF0236名前は開発中のものです。
04/10/26 20:53:00ID:tYFSXHVIべつにいいんじゃねぇ?
DirectXのフリップ関数はいってるんだろどうせ。
なら大丈夫じゃね。
0237名前は開発中のものです。
04/10/26 20:57:49ID:sbftx/e5モードが増えてもメインループのコードには手を付けなくて済むように書く
この手のプログラムは「状態の時間進行」と「現在状態の描画」の繰り返しなわけよ。
その2つの作業をする関数を定義しといたModeBase抽象クラスでも作っておいて
メインループはそいつを駆動させるように書く。
んでモード変更があったらポインタを入れ替えるだけで済む、と大体こんな感じ
>>236
余談だがPresentはCPUパワーを開放しないから
やっぱSleepをどっかで入れないと駄目らしい
0238名前は開発中のものです。
04/10/26 21:06:11ID:tYFSXHVIそれってモードいくつ作ることが前提なシステムなんだよ。
話聞いてると3〜4こで済みそうなのに、
なんでそんなアホみたいに量産しないと元がとれないような設計勧めるんだ?
おそらくな、>>231はな、
タイトル画面→ゲーム画面→エンディング画面
でいいんだよ。
だったらcase文が一番シンプルで綺麗にかけるじゃねぇか。
>余談だがPresentはCPUパワーを開放しないから
俺のプログラム、Sleep入れて無いけどタスクマネージャで見てもCPU100%いかないよ。
0239名前は開発中のものです。
04/10/26 21:11:09ID:E7UXsOTF今度は同期待ちの間、メッセージが処理されなくなる。
素直にイベントとスレッドを分けるべき。
0240名前は開発中のものです。
04/10/26 21:13:58ID:tYFSXHVIその結論はもちろんビデオカードの対応状況を調べた上での結論と思っていいんだろうね。
0241名前は開発中のものです。
04/10/26 21:28:05ID:E7UXsOTF確認したのはGeForce2/4、Radeon9600で、全て対応していたが、
市場の出回っているビデオカードを一つ残らず調べろと言うことなのか?
0242名前は開発中のものです。
04/10/26 21:37:32ID:sbftx/e5それと>>239に対して>>240は全く見当はずれの回答をしているように思えるわけで
ついでにswitchと関数ポインタ系のやり方ってどっちがシンプルかって
それは人によって評価違うだろうしなんとも言えんけれど
俺はオーソドックスなのはやっぱ関数ポインタな気がするけどどうだろう
0243名前は開発中のものです。
04/10/26 21:47:01ID:E7UXsOTF確認してもらいたいんだが、
DX9cSDKサンプルからOptimizedMesh.exe(負荷の軽いサンプルなら何でも)を実行して、
デバイス設定をINTERVAL_DEFAULTに変更してCPU使用率を見てくれ。
最近のビデオカードなら普通は対応しているはずなんだが。
0244名前は開発中のものです。
04/10/26 22:09:02ID:sbftx/e5すまん確認したら負荷なしだった…。
つい先日まで同カードで負荷100%いってたゲームがあったから駄目なもんだと思ってた。
相当駄目なやり方してたのかなw
0245名前は開発中のものです。
04/10/26 22:54:58ID:UwgETfqyA()とCreateB()が何かはしらないが漏れならこうする
てかcase 1のbreakおかしいぞ
てか直値よりenum使って変更したときのミスを減らせ
enum {GAME_TITLE=0,GAME_A, GAME_B,GAME_END};
void Main(){
switch(Mode){
case GAME_TITLE:
if( CreateA() )
Mode=GAME_A;
break;
case GAME_A:
if( A() ){
Mode=GAME_B;
}
break;
case GAME_B:
if( CreateB() ){
Mode=GAME_END;
}
break;
default:
end=1;
break;
}
}
0246245
04/10/26 23:02:35ID:UwgETfqyもしCretateB()に対応するB()があったらこの方がシンプルじゃないか?
switch(Mode){
case GAME_TITLE:
if( CreateA() ){
A();
Mode=GAME_B;
}
break;
case GAME_B::
if( CreateB() ){
B();
Mode=GAME_END;
}
break;
default:
end=1;
break;
}
}
でもenumは使え
0247名前は開発中のものです。
04/10/26 23:03:32ID:KLw6ecBODirectXのフリップ関数は各〜関数で使ってその一つの関数が
タイトル画面やらゲーム画面でやってます。
たしかにこれで作っててどんどんcase文が増えてます。
皆様のご意見を拝見させて頂いた結果としては書いたやり方は駄目ですかね?
いっそのことMain()の中をwhile(0)でその中でシーンごとフェーズごとに
したほうがよろしいですかね?
とりあえずDirectXに関しては本ばっかり読んでまして実践向きの
プログラムを打ててないのが現状ですので皆様のご意見お伺いしたいと思っております。
よろしくお願い致します。
0248名前は開発中のものです。
04/10/26 23:42:19ID:tYFSXHVI30個以下でおさまるんなら気にすることないよ。
caseでやっちゃえ。
別にcaseが30個以上ならんでたって俺は汚いソースだとは思わないよ。
0249名前は開発中のものです。
04/10/27 02:03:18ID:UtCyRkAqいまどきswitchは遅いから使うななんて時代じゃないよ。
0250名前は開発中のものです。
04/10/27 06:32:21ID:+29GhM1T0251名前は開発中のものです。
04/10/27 07:54:41ID:nbK8e9UI0252名前は開発中のものです。
04/10/27 08:39:28ID:FMveXgoq0253名前は開発中のものです。
04/10/27 10:06:58ID:PWqJpoL40254名前は開発中のものです。
04/10/27 13:27:57ID:5HRuPo5E0255名前は開発中のものです。
04/10/27 16:33:53ID:9oFtDTE0そういった画面を2分割・4分割でする方法ありましたらご教授お願いします。
0256名前は開発中のものです。
04/10/27 16:41:36ID:JuUZ9DIGいったい何が聞きたいのかわからん。
0257名前は開発中のものです。
04/10/27 16:59:01ID:+3bc/5KM0258名前は開発中のものです。
04/10/27 21:26:48ID:0i+Z0zwNClear→ビューポート設定→カメラ設定→箱描画→
ビューポート設定→カメラ設定→箱描画→
ビューポート設定→カメラ設定→箱描画→
ビューポート設定→カメラ設定→箱描画→Present
でOK?ってことですかね?
試したんですけどなんか画面がちかちかする。
0259名前は開発中のものです。
04/10/27 21:45:49ID:a4bSXtIv勘だけど
Clear→ビューポート設定→カメラ設定→箱描画→
ZBufferClear→ビューポート設定→カメラ設定→箱描画→
ZBufferClear→ビューポート設定→カメラ設定→箱描画→
ZBufferClear→ビューポート設定→カメラ設定→箱描画→Present
で上手くいっちゃったりして・・・?
0260名前は開発中のものです。
04/10/27 21:58:34ID:+3bc/5KMクリアの前に画面全体をビューポートに指定してる?
0261名前は開発中のものです。
04/10/28 01:24:59ID:OT5JwdIVClear→ビューポート設定→カメラ設定→箱描画→ Present
ビューポート設定→カメラ設定→箱描画→ Present
ビューポート設定→カメラ設定→箱描画→ Present
ビューポート設定→カメラ設定→箱描画→Present
になってないか?
0262名前は開発中のものです。
04/10/28 09:51:31ID:tuc1m51Kノートっつても最低スペックは決めれるだろ
比較的最近のノートを対象にするならDirectX7の3Dうごくだろ
少し古くてもDirectX6くらいは動くはず
そのあたりのDirectXのバージョンのアルファブレンド機能を使うのはOKだろ
じゃなきゃGDI+
でも、GDI+がどのWindowsまでサポートしてるかはしらないなぁ
アセンブラでごりごりやるなら全画面でやらなければ結構高速なんじゃないか?
紙芝居ゲーなら背景とアルファブレンド途中の画像をレンダリングしておいて、
それを張り付けるだけならマシンに負荷かけずに見た目上クロスフェードできるし、高速にできる
ファイルサイズがでかくなるけど
まぁクライアントも幅広いPCを対象にいれたいってのに必死なんだろ
でもDirectX6くらい動くだろ...
0263名前は開発中のものです。
04/10/28 16:32:29ID:PbnH20+pD3DXLoadMeshFromX・D3DXCreateTextureFromFileEx
データが大きくて読み込み時間が長いのでロード画面をつくりたいので
すが関数よんでも上の関数は処理は帰ってこないですよね。
ってことはロード画面はどうやって作ればいいんですかね?
0264名前は開発中のものです。
04/10/28 16:40:35ID:zVW7O6Cyながしはできますが一枚とるプログラムが完成しません。ビルドまではできるん
ですがActive movie windowを表示して5秒後くらいにwindowが真っ白になってフリーズ
します。回りにdirectX扱える人いなくてほんと困っています(担当の先生すら扱えないT_T)。誰か教えてください。
プログラムの流れは
ピンの列挙→main(本文)→フィルタグラフマネージャの作成→システムデバイス列挙子作成
→モニカの列挙→モニカをフィルタオブジェクトにバインド→フィルタを追加
→キャプチャビルドの作成→ファイルライタフィルタの設定→サンプルグラバの生成
→メディアタイプの設定→フィルタグラフの追加→サンプルグラバの接続
→グラバのモードを適切に設定→ファイルへ出力→キャプチャ開始→
→サイズの取得→一枚キャプチャ→バッファ取得→解放
どこが間違っているのかが分かりません。分かる人教えてくれませんか?
0265名前は開発中のものです。
04/10/28 17:07:19ID:OT5JwdIV別スレッドにする。
>>264
どこでフリーズするか調べたら解決しないか?
0266名前は開発中のものです。
04/10/28 19:57:49ID:UOWgg6zsマルチうぜー
0267名前は開発中のものです。
04/10/28 21:53:28ID:twiyxQZy手を抜きたきゃ、ロード画面描画>表示されてからロード開始。
0268名前は開発中のものです。
04/10/29 00:12:11ID:kuEKx5nXαブレンディングを有効にしても変化しません。
誰か助けて
0269名前は開発中のものです。
04/10/29 02:01:48ID:IZmyQy1+0270264
04/10/29 12:40:33ID:MjPIaTHgdo{
pSGrab->GetCurrentBuffer(&bufsize, NULL);
}while(bufsize <= 0);
なぜここが無限ループしているか分かりません。bufsizeは
long *buffer = NULL;
long bufsize = 0;
て宣言しています。なぜ無限ループするかよろしければ教えてください。
0271名前は開発中のものです。
04/10/29 12:48:36ID:fDNToCNYマルチとは良い度胸だ
0272名前は開発中のものです。
04/10/29 13:04:05ID:4Rug73gKまたのこのこ出てきて
謝るわけでもなければ悪びれた様子もなく
当然のごとく再び質問を投げるというナメた態度が気にいらない。
0273名前は開発中のものです。
04/10/29 13:36:34ID:WuNn580y構う方が悪い
動物相手するときと同じ
0274名前は開発中のものです。
04/10/29 16:02:05ID:VQCXStAA戻り値のチェックくらいしてから来てください
0275名前は開発中のものです。
04/10/29 16:20:19ID:JcCKnjdk卒論ってどこの大学だよ?
何勉強してんだ?
0276名前は開発中のものです。
04/10/29 16:29:31ID:4Rug73gK0277名前は開発中のものです。
04/10/29 19:05:56ID:SQEkFlVgあれはどうやってるんですかね?Xファイルで試したいんですが。
0278名前は開発中のものです。
04/10/29 19:33:51ID:VQCXStAA法線と光源から頂点の明るさを求めるんだけど
最後の出力を明るさじゃなくてテクスチャ座標にしてやるだけ
シェーダかじればすぐできる
0279名前は開発中のものです。
04/10/29 19:44:02ID:qQ8ZbLd9DQ8の影響かなw
0280名前は開発中のものです。
04/10/29 19:55:27ID:QE0citKb0281名前は開発中のものです。
04/10/29 20:06:13ID:VQCXStAAもう新しい技術ではないんだけどな
もう2年以上前から初心者向けDirectX書籍で取り扱ってた気がする
0282名前は開発中のものです。
04/10/29 21:01:40ID:DDs92TJb自分LightWaveからXFile作ってるけど
そのままじゃ、Diffuse設定されてなかったから
半透明に出来なかった。
XFileの内容は分からないけど
Diffuseが設定されているか見てみては?
"ちゃんと確認した"なら
1,CloneMeshFVFでD3DFVF_DIFFUSE追加
2,GetVertexBuffer
3,lock
4,Diffuse設定
5,Unlock
6,Release
と、これで自分の奴は問題なく半透明
0283名前は開発中のものです。
04/10/29 21:50:19ID:TXJdGA09D3DCOLOR color = D3DCOLOR_ARGB( 128, 0, 0, 0 );
GetD3D()->SetRenderState( D3DRS_TEXTUREFACTOR, color );
GetD3D()->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TFACTOR );
GetD3D()->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
// (描画)
GetD3D()->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
GetD3D()->SetRenderState( D3DRS_ALPHABLENDENABLE, FALSE );
0284名前は開発中のものです。
04/10/29 23:14:48ID:ND0SckE90285名前は開発中のものです。
04/10/29 23:25:44ID:5GE6K9fHたしかにそんな存在しないものが使えるのは馬鹿くらいだろう。
>>284みたいな。
0286名前は開発中のものです。
04/10/29 23:30:00ID:JuSlatAL0287名前は開発中のものです。
04/10/29 23:31:58ID:UD9l+DIN0288名前は開発中のものです。
04/10/29 23:36:19ID:ND0SckE9自作自演ご苦労w
でもね、絶対後悔するから素直にシェーダ組んだ方がいいよw
テクスチャ貼って、適当に色が付けれて、αが効いてりゃいいなら絶対にそっちの方がいい。
0289名前は開発中のものです。
04/10/29 23:42:56ID:UD9l+DIN0290283
04/10/29 23:47:05ID:TXJdGA09トラブルの元だからね。
…公で固定機能に言及するときは「シェーダの方がベター」
みたいな予防線が必須みたいだね。
0291名前は開発中のものです。
04/10/30 01:08:11ID:L54vnZuk環境も考えずにシェーダシェーダ言っている方が愚かしい
0292名前は開発中のものです。
04/10/30 02:07:55ID:rvAsQg5zはぁ?
実は、よくわかってないだろw
0293名前は開発中のものです。
04/10/30 02:08:53ID:jSY+AD13固定機能のみ、の環境なんて方が愚かしいと思えるけど…
環境を考えて…固定機能!となる環境が愚かしいw
今時固定機能が貧弱でも
頂点シェーダーVer1.1をソフトウェアで動かした方がマシな場合が多いでしょ。
0294名前は開発中のものです。
04/10/30 03:24:45ID:KepR6urKそれ未満の環境だとシェーダなんぞめんどくさくて使いたくもないなぁ
というのが俺的な感想
0295名前は開発中のものです。
04/10/30 03:33:24ID:mUcV7xYnハードウェア処理よりCPUでやるソフトウェアバーテクスシェーダのが速かったと言う話はちょっと聞いたことあるが。
0296名前は開発中のものです。
04/10/30 03:43:37ID:rvAsQg5zサポートしてなくたってそれなりに動くし。
問題は固定パイプ独特のくせだよ。
あの腐った構造見てると、ホント、イライラする。
固定パイプ特有の動き覚えなきゃいけないし、なんのためにもならない。
触っても今後に生きてこない。
0297名前は開発中のものです。
04/10/30 03:56:46ID:KepR6urKシェーダ使ったほうが直感的に作れるのは間違いないが。
固定パイプだって見事にできてると思うよ。
まあ294でも書いたが頂点シェーダなんぞどーでもいいから
とりあえずピクセルシェーダ2を使わせろと言いたいんだが
流石にPS2は対応環境が限られてくるから趣味プログラミングでしか使えないのが寂しい。
0298名前は開発中のものです。
04/10/30 09:09:36ID:L54vnZuk> サポートしてなくたってそれなりに動くし。
羨ましい発言だな
0299名前は開発中のものです。
04/10/30 11:16:33ID:t2ydOg4Q0300名前は開発中のものです。
04/10/30 11:46:48ID:Rvfypwzy固定かどうかはわからないはずだけど。
どうやって調べたの?
つか、もし俺が作るなら、
スキニング使う時点でシェーダ使った方が楽ではあるね。
0301名前は開発中のものです。
04/10/30 12:10:13ID:0mtjTHL8アリかもしれないけど(スキニングとか)、ほとんどの場合、
主役はピクセルシェーダだからねぇ。
頂点シェーダだけでは半透明化すら困難っぽいし。
頂点シェーダをソフト処理しようと思ったら、デバイス生成時に
D3DCREATE_SOFTWARE_VERTEXPROCESSING とか指定しないといけないと思うけど、
例えばスキニングをする描画の時だけこれを効かせる(他の描画はハードで処理)
みたいなことは無理なのかな。
■ このスレッドは過去ログ倉庫に格納されています