トップページgamedev
1001コメント441KB

鬱だ氏のう DirectX (Part 8)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。03/03/03 16:25ID:bb2JYtGF
DirectXについてマターリと技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。
■ 過去スレ
Part 1 http://piza.2ch.net/tech/kako/966/966655286.html (プログラム板)
Part 2 http://pc3.2ch.net/test/read.cgi/tech/997101556/ (プログラム板)
Part 3 http://game.2ch.net/gamedev/kako/1005/10051/1005119775.html
Part 4 http://game.2ch.net/gamedev/kako/1016/10162/1016276254.html
Part 5 http://game.2ch.net/test/read.cgi/gamedev/1027351925/
Part 6 http://game.2ch.net/test/read.cgi/gamedev/1033920036/
Part 7 http://pc2.2ch.net/test/read.cgi/gamedev/1039509250/
0521名前は開発中のものです。03/04/12 00:31ID:KWDN8VMA
>>520
ちゃんと毎日歯磨きせなあかんよ
0522名前は開発中のものです。03/04/12 00:52ID:1jrqej0X
>>520
ロックするのがまんどくせーって奴以外にDrawPrimitiveUPの存在価値
なんて無いよ。
0523名前は開発中のものです。03/04/12 01:24ID:GDH6Rl74
C#どうっすか?

現在C#習得中。
C++>C#へ以降組みなのだが、
速度は、C++で作成したものと比較をすると、どんなもん?

情報を集めたところ、C++と比較をすると1割程度速度が落ちるらしいのだが、
コード量は3分の1程度になるらしい。
この情報だけを信じれば、C#かなって俺は思う。
そこで、実際に使ってる奴の意見聞きたいんだけど、どう?

ちなみに、作るのは3Dのゲーム。ポリゴンの描画は独自。
0524名前は開発中のものです。03/04/12 01:26ID:tw+SI5yy
>>522
ロックして動かすとオーバーヘッドが大きくならないんでしょうか。
頂点バッファは、あんまりロックして動かさない事が前提なのだと思ってました。
そういうのを差し引いても(また、頂点数が4つと少なくても)頂点バッファを使う
方がいいんですか?
0525名前は開発中のものです。03/04/12 03:11ID:1jrqej0X
UPは呼ぶたびに内部で頂点バッファ(相当のもの)を作成してんじゃないの?
いちいち毎回作成していないとしても、そこにコピーしてから使うから
結局遅くなるんだよ。

それと頂点バッファを使う場合は、一度に描画する頂点数が4つだけでも
もっと大きいサイズで確保してNOOVERWRITEでLockした方がいい。
NOOVERWRITEでLockすれば、GPUが描画中でもブロックしない。
もちろん上書きしないようにLockするたびに書き込む位置をずらす必要有り。

もっと言えば、ビルボードを1枚ずつ描画するのではなくて、同じテクスチャ
のものはできるだけまとめて一気に描画する方がいい。
0526名前は開発中のものです。03/04/12 15:24ID:tw+SI5yy
>>525
くわしく教えていただいてアルリガトウございますた。
頂点バッファのロック=昔のVRAMサーフェイスロックみたいなモノ=遅い
というイメージがあったのですが、理屈がよくわかりますた
0527名前は開発中のものです。03/04/12 16:21ID:nr73DVcF
同じテクスチャでも使うシェーダが違うときはどうしたらいいですか?
0528名前は開発中のものです。03/04/12 18:38ID:K9lELx/d
テクスチャそのままでシェーダだけ変えればいいだろ馬鹿
0529名前は開発中のものです。03/04/12 20:50ID:KWDN8VMA
喧嘩すんなよボケ死ねよ
0530名前は開発中のものです。03/04/13 02:28ID:jD8FOVCa

            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /   モララーより      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
0531名前は開発中のものです。03/04/13 09:49ID:r762EoA1
シェーダが変わるってことは頂点フォーマットも変わるんじゃない?
0532名前は開発中のものです。03/04/13 09:53ID:ExDJ6qNW
http://www2.leverage.jp/start/
0533名前は開発中のものです。03/04/13 12:36ID:tn/PkRgV
頂点フォーマット変わってもテクスチャは変わらんと言う罠。
0534名前は開発中のものです。03/04/13 12:44ID:phXEEnoK
>>527でなんとなく思い出したんだが

HLSLでテクニックを入れ替えたときにいまいちデバイスステートが見えないのが怖い。
テクスチャとか全部再設定すればいいんだろうが、なんか無駄なオーバーヘッドになってそうで。
0535名前は開発中のものです。03/04/13 13:14ID:udMIh/MB
どうせフラグの立て替えだけでしょ?
とか知らないのに逝ってみるテスト。
0536名前は開発中のものです。03/04/13 14:32ID:Bf9mAH+t
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
0537名前は開発中のものです。03/04/13 16:19ID:axhbUDjF
0538名前は開発中のものです。03/04/14 02:36ID:i2Ev7w+M
>520
数が増えたらそのやり方はまずいっしょ
どこのサンプル?
0539名前は開発中のものです。03/04/14 03:01ID:r9sHjQoA
           ∧_∧
          /⌒ヽ )
         i三 ∪
          |三 |
         (/~∪
        三三
       三三
      三三          〜糸冬〜
0540名前は開発中のものです。03/04/14 14:57ID:9HybNKPt
>>538
DirectX8だかのDonuts3Dがそんな感じだったかと。
0541名前は開発中のものです。03/04/14 15:53ID:uIwthIDY
   ∧ ∧ シュー
   (,,゚Д゚)  リョー
  〜(   )
   |||
   (__)_)  【糸冬】
0542_03/04/15 22:53ID:8NG3Sp39
>520
ひょっとして、D3DPOOL_SYSTEMMEMになっていませんか。
システムメモリにとるのならOKかも。
0543名前は開発中のものです。03/04/15 23:14ID:36WkzZ5w
結局頂点を直接操作する場合はドッチが正しいの?
0544名前は開発中のものです。03/04/16 01:16ID:Ype/A++o
>>543
MSのとこのFAQを嫁
0545名前は開発中のものです。03/04/16 08:42ID:ZpTPCT7C
お前らみたいな馬鹿には一生分からないよ
0546名前は開発中のものです。03/04/16 10:19ID:8J6KqkHH
      ,. --△-- 、
     /       ヽ
.     l   .完    l
    __iコ ⌒  ⌒ ヒi__     < これにて終了でございます
  i, ̄ j` "゚`,__,"゚` "i,  ̄,i
  l \`ーi、__ '=' ___,,i-" /l
   'y' `゙!、_>、.▽. ,<_ノ''" 'v'
 / o  ヽ`TーT"/   o \
(    //'''v'''\\    )
  ̄ ̄  ̄`''-'^'-''" ̄  ̄
0547名前は開発中のものです。03/04/16 19:44ID:RyUrdlLf
この終了スクリプトってどうやって作ってるの?
同じモノを張ってるわけじゃないし、なんかすごい気がする
0548名前は開発中のものです。03/04/16 20:15ID:FnwGTEzA
スクリプトではなく、so-net君と呼ばれてる人がが手動で
IP丸出しで頑張っているという噂です。
真相は謎ですが。
0549名前は開発中のものです。03/04/16 20:37ID:TtA9Qs8e

  ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           O 。
            , ─ 、
            / /ヾヽ    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ____    ( (´∀))  < というお話だったのサ
/__/_/ |    /"ヾヾ/ ̄ヽ \__________
|__|_| l ..|  ヽ ( i  !    |
|_|__|/.|  ヽ( ` 、二|つ /
|__|_||.....|    ||(___ヽ_/:\
|_|__||.ソ.|   ||===!i\|::::::::::\
|__|_||ソ..l/   ||  || 人.ヽ:::::::::)~)
|_|__|| /              ̄       = 完 =
      /
0550名前は開発中のものです。03/04/17 13:39ID:rhsCvLLn
>548
手動だったのか
ある意味すごいな
0551名前は開発中のものです。03/04/17 18:29ID:Y5Axsi6+



     ∧∧    / ̄ ̄ ̄ ̄ ̄
     ( ゚Д゚) < 終了ですが、何か?
     (  ⊃  \_____
     |  |
     ∪∪



                     完
                     FIN
0552名前は開発中のものです。03/04/18 23:00ID:lkesKxch
バックバッファに書き込んだ内容をテクスチャとして使いたいのですがどうやるのがいいのでしょうか。
とりあえず検索したかんじではCopyRectsでとってくるという方法と
もういちまいテクスチャを用意してそこにバックバッファと同じ内容を書き込むという方法でした。
ゲームでつかうにはどうやるのがいいのでしょうか。
0553名前は開発中のものです。03/04/18 23:13ID:Dwegxmck
多分、後者にあたると思うけど、SetRenderTargetを使うのが楽チン。
テクスチャをD3DUSAGE_RENDERTARGETを付けて生成するだけ。
ゲームで使うには、とありますがどう使いたいのかが不明なのでこれ以上は
ヘルプやサイトで調べてみてください。
ガンガレ。
0554名前は開発中のものです。03/04/18 23:54ID:jKpA2+WT
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
0555名前は開発中のものです。03/04/19 06:30ID:1KC1LSs8
>>553
レスありがとうございます。
実は光学迷彩をやりたいのです。
その場合、テクスチャに書き込む内容はバックバッファと同じ内容ということは
ゲームが動いている間はつねにバックバッファと光学迷彩用テクスチャに描画しつづけなければならないということでしょうか?
実はここがどうやっていいのかよくわかりません。
すべての物体を2回ずつ描画しなければいけないと思うのですがこれでは処理速度がおっつきません。
本当にこんなぐあいでいいのでしょうか?
0556名前は開発中のものです。03/04/19 06:54ID:LzHggOMm
MGSに影響され杉
0557名前は開発中のものです。03/04/19 07:16ID:66FCxaOt
>>555
お前みたいなチンピラのガキはみんな同じようだな
0558名前は開発中のものです。03/04/19 07:28ID:9Y/uvYBe
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /   モララーより      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
0559名前は開発中のものです。03/04/19 07:57ID:QmBtJ1sC
チンピラage
0560名前は開発中のものです。03/04/19 07:58ID:6fn4B44m
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
0561名前は開発中のものです。03/04/19 08:25ID:3MsE5dPu
>555
2回描画する必要があるか、もう一度よく考えてみようZ
0562名前は開発中のものです。03/04/19 13:08ID:y+zw3XQN
>>561
レスありがとうございます。
普段は光学迷彩用テクスチャに書き込んで
光学迷彩用テクスチャからバックバッファに書き込むというものでしょうか?
すると光学迷彩用テクスチャもかなりの解像度が必要になり、
この演出のためだけにフレームバッファのしくみまで変えなければならなくなるので、
本当にこんなんでいいの?とか考えてしまいます。
0563名前は開発中のものです。03/04/19 13:44ID:3MsE5dPu
 こんなんでイイのかどうかは、やってみてから考えてもいいと思うんだが。
そこから改良するなり、別の方法を考えるなりね。

あと、ここはsage進行なのでよろしく。
0564名前は開発中のものです。03/04/19 14:35ID:NRN/D/cJ
個人的には実用の面からいうとNoですね。
仕組みが複雑になる上に処理は重くなる、使うメモリも半端じゃない。
確かにこの演出に限らず何かに使えるかもしれませんが
そんな滅多にない演出にこれだけの仕組みをゲームに組み込むのはさすがにプロジェクトのみんなの同意は得にくいでしょう。
それこそ某会社のスタイリッシュなアクションゲームのように剣をふるたびに出るような演出ならいいのでしょうが。
さすがにこの辺はゲームによるといったところですか。
0565名前は開発中のものです。03/04/19 14:46ID:DwFjEE70
DX9ならStretchRectで全て解決するけどね。
0566名前は開発中のものです。03/04/19 14:49ID:do22y+d9
そうかーDX9だとできるのかー
0567名前は開発中のものです。03/04/19 15:19ID:rTXmExxi
StretchRectの制限が気になるな。
RTテクスチャて何かな。
0568名前は開発中のものです。03/04/19 15:48ID:WqwViPZg
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
0569名前は開発中のものです。03/04/19 19:41ID:DwFjEE70
>>567
RenderTargetTexture
0570名前は開発中のものです。03/04/19 20:17ID:GO2Mi5zr
   ____
  /      ヽ
  / __A___|〆
  ヽ(____>
   ノ从ハ)从〉   シュ シュ
   クノ ´∀`§へつ シュウリョウ〜♪
    √ ヽ@_X  .|
   /│    ヽ丿 ))
  /  \    |つ
/    ヽ__ノ
く        │
 ヾ=====┘
   し  し
                       〜完〜
0571名前は開発中のものです。03/04/19 22:10ID:1t+xp3Ez
D3DXCreateFontで"MS Pゴシック"の12ポイントのフォントオブジェクトを作成して、
char buf[] =" ∧_∧\n( ´∀`)\n(    )\n| | |\n(__)_)";
ID3DXFont DrawText(buf, -1, &r, DT_NOCLIP, col) でモナーが表示されるのだけど、行間が詰まってしまいます。
DT_NOCLIPの場所に、DT_INTERNAL(システムフォントを使ってテキストメトリクスを計算する。)を付け足すとオリジナルモナーと同じ行間になります。
わからないところは、D3DXCreateFontで24ポイントのフォントオブジェクトを作成してDrawTextを実行したときに、
システムフォント(おそらく12ポイント)のテキストメトリクスで描画されるみたいで、行の文字が重なって表示されてしまいます。
(DT_INTERNALを外すと文字は重なりませんが、行間が詰まります。)
おそらく、D3DXCreateFontで定義するフォントのテキストメトリクスの行間を計算して設定すれば良いのではと思っているのですが
方法がわかりません。どなたかID3DXFont DrawTextで改行入りの文字を描画するときの行間を解決する方法を教えてください。
0572名前は開発中のものです。03/04/19 23:14ID:aMUws4S6
DIBに出力してからテクスチャに転送
0573名前は開発中のものです。03/04/20 00:11ID:sQyuN3uy
>>569
ありがとうございます
0574名前は開発中のものです。03/04/20 00:25ID:fBUnkceZ
>>574
ありがとうございます。
0575名前は開発中のものです。03/04/20 02:37ID:aZBkzSSK
>>574
IDがウンコ
0576名前は開発中のものです。03/04/20 04:09ID:b/Dm4HJZ
.              __
                    ‖  ~"ー 、,,_
      |           ‖ 終 .了  ,>
   \ |  /      ‖   _,:-−'´
                ‖/~         ヽ | /
                    ‖     ,   ))
       ,、      ,、   /'ll__/ ヽ
      / ヽ__/ ヽ/ _‖   _  ヽ.    ∧___∧
    /       /  ´ ‖ー/  `   l ロ. / _    _
    / ´ 、__,  ` |.    ‖∨      ,! || | l--l `
   _l    ∨    ヽ/ ̄)( ̄ ̄`"::::ノ (⌒ヽ, ..ヽノ   ,
  ( ヽ_        /   /ll `'ー、....::ノ ∀\/ー- /`l  ヽ
   ヽ、       ,ヽ:..:ノ ‖   '::::|⊃  iー- l (_〕i__
     l          : :::Y  ‖     ::|   |"|ー-,|   |(
0577名前は開発中のものです。03/04/20 07:00ID:CCyMQ1Bs
>>564
たまにしか使わんというか、使う場所が限られるなら、そのときだけ全体をテクスチャにレンダリングしてから
普通の描画と組み合わせたら? 処理が重くなるならデータを軽くすればいいだけ。

0578名前は開発中のものです。03/04/20 10:25ID:PEF4R1FX
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
0579名前は開発中のものです。03/04/20 10:28ID:gi55t86D
>577
 常識的にはそうやって実装(テクスチャの大きさも環境で変更)し、
アプリがそれを意識しないで済むような中間層を作ると思うけどね。
とりあえずsageてね。
0580名前は開発中のものです。03/04/20 16:35ID:QJ8WCQrJ
>>572
ありがとうございます。
0581名前は開発中のものです。03/04/21 12:55ID:v2kjHbfs
D3DX の sse を無効にする方法はありませんか?
デバッガを起動してトレースしていると、いつも sse の命令のところで止まります。
( D3DXMatrixLookAtLH( ) でよく止まります )
VC 6.0 Pro 版なら
http://www.microsoft.com/japan/msdn/vstudio/downloads/ppack/
を使用できるのですが。

環境
コンパイラ: VC++ 6.0 Standard
CPU: Celeron 1.2 GHz
058253303/04/21 14:33ID:v2kjHbfs
追加
DirectX のバージョンは 8.1 です。
0583名前は開発中のものです。03/04/21 19:52ID:dGQMxYxS
心臓止めてみ?気にならなくなるよ
0584名前は開発中のものです。03/04/21 21:28ID:IvdBS2Ts
  _n
 ( l    _、_
  \ \ ( <_,` )
   ヽ___ ̄ ̄  )   GOOD END!!
     /    /
0585名前は開発中のものです。03/04/22 00:56ID:ugVKVxKb
>581
とりあえず、関数に渡しているパラメータを晒してみたら?
結構よく使われる関数のはずだし、簡単にハングるようなら
もっと報告があるはず。
0586名前は開発中のものです。03/04/22 01:42ID:nrWBlCDV
ところでお前らは Retail と Debug のどっち使ってる?
俺、Retail使ってんだけど…。
0587名前は開発中のものです。03/04/22 08:17ID:eZX257au
開発機にはDebug入れてるよ。
0588名前は開発中のものです。03/04/22 08:55ID:YLPDEkhf
質問良いですか?


DirectX8.1SDKで、
ひとつのテクスチャ(256*256)に
パーツ(32*32)を数種類置いて、
それをTRIANGLELISTでRPGのマップの様に
升目上に表示させているのですが、
視点によって、升目の境目のテクスチャがずれて
微妙に隣のテクスチャ領域が見えてしまいます。

これを補正する方法はありませんか?

tu = (x*32)/256.0f;
tv = (y*32)/256.0f;

D3DTSS_MAGFILTER,D3DTSS_MINFILTERの値も変えてみましたが、
意図した表示ができる設定がありませんでした。


補正が無理そうなら、

マップ配置に応じてテクスチャに全部の絵を描き込んでおく、
(テクスチャが巨大になる)

パーツ毎に別テクスチャに持って、CLAMPして表示。
(DrawPrimitiveの回数が増える)

という方法も考えましたが、
一般的にはどの方法で表示しているのでしょうか?
0589名前は開発中のものです。03/04/22 10:58ID:ZRz+g5yb
xy表示座標を-0.5ずらす
0590名前は開発中のものです。03/04/22 12:22ID:GMTONYN9

                o.
                /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
               /   このスレは無事に .  /
               /  終了いたしました    /
              / ありがとうございました  /
              /                /
             /   ペイピッニダより     /
             / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            /
          . /
   __<`∀´>./
  /__ \ /
  | |   |  |
  (_) (__)
059158103/04/22 15:55ID:jONC6HwC
>>585
レスありがとうございます。
一応パラメータです。
D3DXMATRIX matView;
D3DXVECTOR3 vFromPt = D3DXVECTOR3( 0.0f, 0.0f, 5.0f );
D3DXVECTOR3 vLookatPt = D3DXVECTOR3( 0.0f, 0.0f, 0.0f );
D3DXVECTOR3 vUpVec = D3DXVECTOR3( 0.0f, 1.0f, 0.0f );
D3DXMatrixLookAtLH( &matView, &vFromPt, &vLookatPt, &vUpVec );
これを
D3DXVECTOR3 vFromPt = D3DXVECTOR3( 0.0f, 0.0f, 0.0f );
に変更したら、ここの部分は回避できましたが、
D3DLIGHT8 light;
D3DUtil_InitLight( light, D3DLIGHT_DIRECTIONAL, -1.0f, -1.0f, 2.0f );
という関数をLookAtLHの下で呼び出すと関数内部の
ZeroMemory( &light, sizeof(D3DLIGHT8) );
でハングします。しかし、
D3DUtil_InitLight( light, D3DLIGHT_DIRECTIONAL, 0.0f, 0.0f, 0.0f );
にするとうまくいくようです。

ほかに原因が考えられるとしたら、
Poweleap社の PL-iP3/T(Rev 2.0) という製品を使っているからだと思います。
使っているチップセットは Intel 440 BX です。
マイ コンピュータのプロパティで Celeron ではなく Pentium2 と認識しているので、
BIOS 関連を調べてきます。
0592名前は開発中のものです。03/04/22 22:49ID:YLPDEkhf
>>589

射影変換をDirectX側で行った場合、
スクリーン座標系で-0.5ずらすんですか?
それともワールド座標系?

後者を行った場合でも隙間ができるので
前者だと思うのですが、
この場合どうやって行うのでしょうか?
0593名前は開発中のものです。03/04/23 02:26ID:30oo3my0
Direct3Dのラスタライズルールとバイリニア補間の原理的に
色が漏れてるんじゃないすか。
0594名前は開発中のものです。03/04/23 03:49ID:ZRQabq0M
フィルタをPOINTにして色が漏れるのはヘンっしょ。BILINEARなら漏れるけど。
あとこの場合ずらすのはテクスチャアドレスだと思うが、試したことはないや。
0595(´д`;)ハァハァ 03/04/23 06:54ID:9QVJNMHa
http://www.k-514.com/
0596名前は開発中のものです。03/04/23 07:39ID:wDz4wQ1w
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
0597名前は開発中のものです。03/04/23 08:42ID:6QptbjAr
>>594
テクスチャ座標の0.5ずつ内側に狭める事で
見た目上手くいきました。
1ドット減ってないのが変な気がするんだが、
こんなもんで良いのかな…。
059858503/04/23 10:45ID:GNvDRHws
>591
 いわゆる下駄ってやつを使ってるのかな?その辺が怪しいのは確かだね。
こういうこと(それからOSも)は最初に書いといた方がいい。ハングする
プログラムを他の環境で実行してみることを勧めるよ(他のことはせず、
その関数を実行して終わるようなプログラムが望ましい)。
 視点・注視点・UPペクトルから行列を出す方法はネットで検索すれば
すぐ出てくるはずだから、その環境でやっていくならD3DXを使わない
方がいいかもね。
0599名前は開発中のものです。03/04/23 11:46ID:10QNqlCX
オイラもテクスチャの張り方で悩んだことがある。っていうかまだ完全に解決してない。
例えば256*256pixelのテクスチャで0.5pixelずらすときはuvを0.5/256ずらすわけだが
ミップマップを使ってる場合にはテクスチャのサイズが変わるから
0.5/256だと0.5pixel以下になってしまう場合がある...
結局今はマップチップを画像が繋がるようにテクスチャ上に配置してお茶を濁してるのだが
なんかイイ方法ないですか?
0600名前は開発中のものです。03/04/23 12:23ID:VVkkYrKA
  /|/|  ( )
  / _、_|  ( )
/ゝ,_ノ`|y━・ 糸冬
0601名前は開発中のものです。03/04/23 12:53ID:Vv0M8Kwf
>>599
というか、ずらすのはスクリーン座標じゃないの?
X8のヘルプに出てなかったけ?
自分は、
D3DXVec3Transform(&pst[0],&ps[0],&sp->mat);
(略)
D3DXVec3Transform(&pst[3],&ps[3],&sp->mat);
for( long cnt=0;cnt<4;cnt++ )
  pst[cnt].x -= 0.5f,
  pst[cnt].y -= 0.5f;
こんな感じで変換後座標から引く事でボケ防止。一応、正常に動作しています。
DirectXに任せてる場合はシェーダー使うしかないのかな?
知らんけど。

uvもスクリーン座標も1.0ピクセル未満の指定をするとフィルタが掛かりぼやけます。
ボケないスプライトを出したい場合はスクリーン座標の少数点部を丸めて整数化し-0.5f。

マップチップを・・という下りから勝手に2D描画と決めつけちゃったけど、3D?
060259903/04/23 15:18ID:10QNqlCX
>>601
3D描画の話でつ...説明不足でスミマセン
0603名前は開発中のものです。03/04/23 17:22ID:Ek8uMhmZ

  ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           O 。
            , ─ 、
            / /ヾヽ    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ____    ( (´∀))  < というお話だったのサ
/__/_/ |    /"ヾヾ/ ̄ヽ \__________
|__|_| l ..|  ヽ ( i  !    |
|_|__|/.|  ヽ( ` 、二|つ /
|__|_||.....|    ||(___ヽ_/:\
|_|__||.ソ.|   ||===!i\|::::::::::\
|__|_||ソ..l/   ||  || 人.ヽ:::::::::)~)
|_|__|| /              ̄       = 完 =
      /
0604名前は開発中のものです。03/04/23 20:23ID:6QptbjAr
>>601
2Dや自前座標変換の時はそれでやってますが、
DirectX側に座標変換させた時の処理に困って、
>>597に落ち着きました。
シェーダ使えるようなボード対象じゃないし…。
060558103/04/23 23:40ID:uubux2MP
>> 598
すみません、情報が少なかったようです。
Gateway のマシンを使っていて、サイトをチェックしましたが、
BIOS は最新版だったみたいです。

環境追加:
os: windows 98
ビデオカード: GeForce4 MX 440

DirectX AppWizard で作成したのをそのままデバッグにかけると
  D3DX: (INFO) Using SSE Instructions
  例外処理 (初回) は aaa.exe にあります: 0xC000001D: Illegal Instruction。
というエラーが出る。

以前通っていた学校に、windows 98 を積んだ、Dellの OptiPlex シリーズの
TNT2 とオンボードビデオ(Intel 810?)をつんだマシンを使用すると似たような現象が起こった。
しかし、windows 2000 に変更されると、TNT2(D3Dの機能)を使用できなくなるという
制約を背負ったが、上記のエラーは、出なくなったと思う。
VC Professional だが、SSE を実行できるパッチが当っているかはわからない。
別の IBM の Pentium4 のマシンを VC Standard をインストールしても、特に問題は無かったと思う。

サンプルの Tut05_Textures で実験した場合ハングしなかった。
main に LookAtLH() のみを実行するとハングしなかった(パラメータは前のレスのまま)。
Pentium2 の時は、このようなエラーは出なかった。

以上がこれまでのいきさつです。

D3DXの魅力は大きいので、可能な限りて使ってきたいです。
幸いデバッグ以外では、無事に動きますので、なんとかなるのではと思っています。
そこで、デバッグ用のルーチンを作るか、
Windows 2000 はちょっと高いので、 Windows Xp Home Edition でも買おうかと思います。
0606名前は開発中のものです。03/04/24 08:02ID:9g3jPARF
その環境では使えませんよ。騙されてますよ。
0607名前は開発中のものです。03/04/24 09:42ID:b0Sfm9nY
一般3Dで微妙にスレ違いなのかもしれませんが

ラグナロクオンラインのような画面のゲームを作ろうとしているのですが
どうしてもキャラ絵のビルボードの傾け方がラグナロクのようにきれいに決まらなくて
画面の端とかのキャラが不自然に傾いて表示されてしまいます。

こいつは多分ビルボード特有の問題であって、傾け方を選択できるゲームなんかも
みかけることがありましたが、ラグナロクみたいに完璧にするにはなんかコツがあったり
するんでしょうか?
0608名前は開発中のものです。03/04/24 12:14ID:OGCLKkuQ
”問題”かぁ? 完璧つーより、むしろつまんねえ画面だと思うが。

もしD3DXMatrixLookAtの代わりにD3DXMatrixOrthoをつかうなんてオチだったらこのスレage荒らす



0609名前は開発中のものです。03/04/24 14:00ID:YUg64c0W
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃    ∧ ∧___    今 日 で                    ┃
┃   /(*゚ー゚) /\                             ┃
┃ /| ̄∪∪ ̄|\/  こ の ス レ は 終 了           ┃
┃   |        |/                              ┃
┃     ̄ ̄ ̄ ̄     し ま し た       2ちゃんねる  ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛
0610名前は開発中のものです。03/04/24 14:51ID:+IuUOG5j
>>597
UV座標をズラすと、自分の環境ではうまくいった場合でも、
他の環境の場合、ビデオボードの種類によっては、また同じ様な事が起きるかも。
スクリーン座標を-0.5するのでは?
自分はスクリーン座標を-0.5ズラしてうまくいったけど。 違ったらすいません。
061158103/04/24 17:29ID:sWYeFDrQ
WinXp にしたらエラーが出なくなりました。
ありがとうございました。
0612名前は開発中のものです。03/04/24 20:44ID:haUshdwD
>>610

DirectX側でトランスフォームさせて3D画像出してるので、
スクリーン側を-0.5ができません…。(シェーダ無いし)
それとも、何か方法有るんでしょうか?

一応、GeforceとRadeonではちゃんと表示されてたので、
今はこれで妥協してます。
フリーウェアで全部のボードに対応してられないし(汗)
0613名前は開発中のものです。03/04/24 20:51ID:1w4zWwxr
頂点シェーダーってハードが無くてもそこそこ動くんじゃない?
ウチのビデオカード、HWT&Lすら無いけどピクセルシェーダ系意外は割と動いてる
ような気がしますが。
3Dのゲームなら動かそうとする人もそれなりのハードがあるだろうから、
使ってみてもいいのでは?

って、俺は使ったこと無いから無責任に言ってみる。
0614名前は開発中のものです。03/04/24 21:18ID:haUshdwD
ハードが対応してないのを全部の3Dモデルの表示に
使用しても速度落ちない?
シェーダ使った事ないからそもそも可能なんだろうか…。
0615名前は開発中のものです。03/04/24 22:15ID:NolVeBIQ
 頂点シェーダ1.1なら、CPUのエミュレーションでも十分な速度だと
思う。まあ、やることによるだろうけどね。2.0は使ったこと無いから
知らない。
>614
 動くかどうかなら特に問題ないと思うけど?
0616名前は開発中のものです。03/04/25 03:04ID:OSgOYdrb
>>607
ビルボードを視点方向に向けているのではない?
ビルボードは視線に垂直(ニア/ファープレーンに平行)にする必要があると思われ
0617名前は開発中のものです。03/04/25 03:24ID:MiwURu0I
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
0618名前は開発中のものです。03/04/25 07:51ID:ONzX6+tC
視錐台の勉強をしよう。
0619あげ03/04/25 08:48ID:wj02ylkx
>>618
終了するから無駄
0620名前は開発中のものです。03/04/25 09:14ID:iSJyloql
http://homepage3.nifty.com/coco-nut/
■ このスレッドは過去ログ倉庫に格納されています