不思議な波々を無くすには?
不思議な波々を無くすには?
テントの柱を貫通して布が張られてます。(元データ.pngの黄色い面)
それが、ゲーム画面では「実際.png」のようにガタガタに見えます。何故でしょうか?また、どうしたらいいか教えてください。
ついでに、もうひとつ。無題.pngのようにモデルを作ったのですが(メタセコイアでの画面)、ゲーム画面では、たまにこのモデルの外側から見ると柱で遮られてるはずのところで中のテントが見えることがあります。こちらに関しても何故か、どうしたらいいかを教えていただけるとうれしいです。
それが、ゲーム画面では「実際.png」のようにガタガタに見えます。何故でしょうか?また、どうしたらいいか教えてください。
ついでに、もうひとつ。無題.pngのようにモデルを作ったのですが(メタセコイアでの画面)、ゲーム画面では、たまにこのモデルの外側から見ると柱で遮られてるはずのところで中のテントが見えることがあります。こちらに関しても何故か、どうしたらいいかを教えていただけるとうれしいです。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 不思議な波々を無くすには?
モデルのスケールやZバッファの指定次第で陰のものが見えることはあります。
あと布のマテリアルがどうなっているかわらないので、モデルを添付してもらうと助かります。
【追記】
ソースコードとモデルを圧縮で全部添付してもらうと速いです。
あと布のマテリアルがどうなっているかわらないので、モデルを添付してもらうと助かります。
【追記】
ソースコードとモデルを圧縮で全部添付してもらうと速いです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 不思議な波々を無くすには?
C++的に正しい使い方をしてるかどうか・・・・・
少し恥ずかしいですが全ソースコードを添付します。
良かったらここをこうしたほうがいいとかありましたら教えてください
該当モデルに関しては柵に囲まれてるのがmodel¥¥build¥¥build.0.0.mqo、テントのみがmodel¥¥build¥¥build.0.0.mqoにあります
少し恥ずかしいですが全ソースコードを添付します。
良かったらここをこうしたほうがいいとかありましたら教えてください
該当モデルに関しては柵に囲まれてるのがmodel¥¥build¥¥build.0.0.mqo、テントのみがmodel¥¥build¥¥build.0.0.mqoにあります
- 添付ファイル
-
- SAO-Client.zip
- よろしくお願いします
- (47.02 MiB) ダウンロード数: 254 回
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 不思議な波々を無くすには?
動かして見ました。
1.「それが、ゲーム画面では「実際.png」のようにガタガタに見えます」
は再現できませんでした。
ただ、色が変なので、これについては調べてみます。
こちらで確認したテント。 C:\DxLib_VC\Tool\DxLibModelViewer\DxLibModelViewer.exeで確認したテント。こちらが正しい色だと思います。 2.「たまにこのモデルの外側から見ると柱で遮られてるはずのところで中のテントが見えることがあります。」の詳細な位置や角度を教えて下さい。
これも状況が再現できませんでした。
1.「それが、ゲーム画面では「実際.png」のようにガタガタに見えます」
は再現できませんでした。
ただ、色が変なので、これについては調べてみます。
こちらで確認したテント。 C:\DxLib_VC\Tool\DxLibModelViewer\DxLibModelViewer.exeで確認したテント。こちらが正しい色だと思います。 2.「たまにこのモデルの外側から見ると柱で遮られてるはずのところで中のテントが見えることがあります。」の詳細な位置や角度を教えて下さい。
これも状況が再現できませんでした。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 不思議な波々を無くすには?
[気になる事]
ソースコードですがいくつか気になる点があります。
(1)ヘッダにクラスの実体を書くのはinlineやテンプレート時だけにされた方が良いと思います。
ヘッダはクラスの宣言に止め実体はcppに書いてして、ちゃんとリンクすることをお勧めします。
(2)ヘッダに構造体の実体が書かれていますが、これはグローバル変数と言うお行儀の悪い書き方です。
クラスのカプセル化を徹底して、クラスがクラスで使うデータを保持して外部に公開しないようにしてください。
構造体.hの中身など。ローカル変数.hもヘッダにする意味が無いです。
例としてsPC, sNPC, sMap, sCamとかはクラス内で保持すべき情報です。
(3)P_Flagなど変数名で名前が省略しすぎていて機能が分かりづらいです。逆にクラスのメソッドは助長だと思います。
C_Camera::CameraMoveはC_Camera::Moveで十分です。
(4)その他というクラスは避けてください。
幾つかの機能の集合体になってしまっています。
(5)ヘッダやソースはclass単位で分けてください。
C_PC/C_NPC/C_MAPが1つのファイルにいると分かりづらいだけです。
ソースコードですがいくつか気になる点があります。
(1)ヘッダにクラスの実体を書くのはinlineやテンプレート時だけにされた方が良いと思います。
ヘッダはクラスの宣言に止め実体はcppに書いてして、ちゃんとリンクすることをお勧めします。
(2)ヘッダに構造体の実体が書かれていますが、これはグローバル変数と言うお行儀の悪い書き方です。
クラスのカプセル化を徹底して、クラスがクラスで使うデータを保持して外部に公開しないようにしてください。
構造体.hの中身など。ローカル変数.hもヘッダにする意味が無いです。
例としてsPC, sNPC, sMap, sCamとかはクラス内で保持すべき情報です。
(3)P_Flagなど変数名で名前が省略しすぎていて機能が分かりづらいです。逆にクラスのメソッドは助長だと思います。
C_Camera::CameraMoveはC_Camera::Moveで十分です。
(4)その他というクラスは避けてください。
幾つかの機能の集合体になってしまっています。
(5)ヘッダやソースはclass単位で分けてください。
C_PC/C_NPC/C_MAPが1つのファイルにいると分かりづらいだけです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 不思議な波々を無くすには?
ガタガタに関してはこちらのGPUの問題ですかね?
http://www.dell.com/jp/p/inspiron-15r-n5110/pdを使ってるのですが・・・・・
テントの柱の色に関しては、ゲーム画面で問題ありません。
テントのみのモデルをコピーしてbuild.0.0.mqoのモデルで色調整をしており、ゲーム画面ではbuild.0.0.mqoのみを表示しているので。
柵の向こう側にあるはずのテントが透けて見える場所に関しては例として
(x、y、z)=(-390,25,-840)、(800,30,770)
↑これは四捨五入して5の倍数に揃えた大まかな値です。
一つ目の座標は3つしかない方のテント郡の真ん中のテントをまっすぐ突き抜けて進んでいったあたりです
二つ目の座標は1番大きなテントをまっすぐ突き抜けて進んでいったあたりです
テントや柵に対して当たり判定をつけてないので普通に突き抜けていって下さい。
教えていただいたプログラムの仕方ですが、
実際にはよくクラスとか変数とか分かってないのです。カプセル化なんて名前は聞いたことあるけど何それ?みたいなレベルですし!
一応調べたりはしてるのですが簡単すぎるか難しすぎるかの両極端なので・・・・・・
グローバル変数に関してもそれをしないほうがいいというのは重々承知しておりますが、かといって例えばキャラのポジションをカメラのターゲットにする場合どうやって変数を渡すかの代替法が思いつかないのでとりあえずその形に・・・・・・←まあ、クラス・カプセル化がしっかり分かれば問題ない気が。
もっと頑張ってみます。
命令や変数名はとりあえず今使ってるもののみ変更しました。
http://www.dell.com/jp/p/inspiron-15r-n5110/pdを使ってるのですが・・・・・
テントの柱の色に関しては、ゲーム画面で問題ありません。
テントのみのモデルをコピーしてbuild.0.0.mqoのモデルで色調整をしており、ゲーム画面ではbuild.0.0.mqoのみを表示しているので。
柵の向こう側にあるはずのテントが透けて見える場所に関しては例として
(x、y、z)=(-390,25,-840)、(800,30,770)
↑これは四捨五入して5の倍数に揃えた大まかな値です。
一つ目の座標は3つしかない方のテント郡の真ん中のテントをまっすぐ突き抜けて進んでいったあたりです
二つ目の座標は1番大きなテントをまっすぐ突き抜けて進んでいったあたりです
テントや柵に対して当たり判定をつけてないので普通に突き抜けていって下さい。
教えていただいたプログラムの仕方ですが、
実際にはよくクラスとか変数とか分かってないのです。カプセル化なんて名前は聞いたことあるけど何それ?みたいなレベルですし!
一応調べたりはしてるのですが簡単すぎるか難しすぎるかの両極端なので・・・・・・
グローバル変数に関してもそれをしないほうがいいというのは重々承知しておりますが、かといって例えばキャラのポジションをカメラのターゲットにする場合どうやって変数を渡すかの代替法が思いつかないのでとりあえずその形に・・・・・・←まあ、クラス・カプセル化がしっかり分かれば問題ない気が。
もっと頑張ってみます。
命令や変数名はとりあえず今使ってるもののみ変更しました。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 不思議な波々を無くすには?
こちらでは、再現しませんでした。私のGPUはNVIDIA GTS250です。史上最悪のデスペナ さんが書きました: ガタガタに関してはこちらのGPUの問題ですかね?
http://www.dell.com/jp/p/inspiron-15r-n5110/pdを使ってるのですが・・・・・
柵の向こう側にあるはずのテントが透けて見える場所に関しては例として
(x、y、z)=(-390,25,-840)、(800,30,770)
↑これは四捨五入して5の倍数に揃えた大まかな値です。
一つ目の座標は3つしかない方のテント郡の真ん中のテントをまっすぐ突き抜けて進んでいったあたりです
二つ目の座標は1番大きなテントをまっすぐ突き抜けて進んでいったあたりです
テントや柵に対して当たり判定をつけてないので普通に突き抜けていって下さい。
DXLIBのバージョンを変えてみるとか、GPUのドライバを最新にしてみるとかで変わるかも知れません。
【追記】
そういえばDXLIB付属のDxLibModelViewer.exeでmodel¥¥build¥¥build.0.0.mqoを確認しても同じ問題がありますか?
基本的なソースコードの書き方は、史上最悪のデスペナ さんが書きました:教えていただいたプログラムの仕方ですが、
実際にはよくクラスとか変数とか分かってないのです。カプセル化なんて名前は聞いたことあるけど何それ?みたいなレベルですし!
一応調べたりはしてるのですが簡単すぎるか難しすぎるかの両極端なので・・・・・・
グローバル変数に関してもそれをしないほうがいいというのは重々承知しておりますが、かといって例えばキャラのポジションをカメラのターゲットにする場合どうやって変数を渡すかの代替法が思いつかないのでとりあえずその形に・・・・・・←まあ、クラス・カプセル化がしっかり分かれば問題ない気が。
もっと頑張ってみます。
「C++編(言語解説) 第7章 コンストラクタとデストラクタ」
http://www.geocities.jp/ky_webid/cpp/language/007.html
「C++ class」
http://www.asahi-net.or.jp/~wv7y-kmr/me ... p_cls.html
にある様にヘッダに定義だけ、cppにクラスの実体です。まず、このルールを導入してください。
これを取り入れるだけでもファイル分割に慣れていないとかなり苦労すると思います。
カプセル化は、こちらとか。
「Codelogy: オブジェクト指向のメリット (カプセル化編)」
http://www.codelogy.org/quillpen/?entry=43
データの変更を制限して異常な変更からガードするのが1つとクラスの外に内部の動作を極力意識させない事が大事です。
キャラの位置をカメラに反映させるには、自キャラクラスにはキャラの位置を返す関数、カメラ関数にはキャラの位置を設定する関数を用意してください。
これで構造体をグローバルにする必要性はなくなるはずです。
【追記の追記】
申し訳ないですが、午後から出かけるので午後は返事できません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 不思議な波々を無くすには?
SSのようになりました。ゲーム画面よりはましですが、角度によって多少なるようです。softya(ソフト屋) さんが書きました: 【追記】
そういえばDXLIB付属のDxLibModelViewer.exeでmodel¥¥build¥¥build.0.0.mqoを確認しても同じ問題がありますか?
早速ページを保存してじっくり眺めてるとこです。当時はコンストラクタとかぜんぜん分からず飛ばした記憶があります。softya(ソフト屋) さんが書きました: 基本的なソースコードの書き方は、
「C++編(言語解説) 第7章 コンストラクタとデストラクタ」
http://www.geocities.jp/ky_webid/cpp/language/007.html
「C++ class」
http://www.asahi-net.or.jp/~wv7y-kmr/me ... p_cls.html
にある様にヘッダに定義だけ、cppにクラスの実体です。まず、このルールを導入してください。
これを取り入れるだけでもファイル分割に慣れていないとかなり苦労すると思います。
カプセル化は、こちらとか。
「Codelogy: オブジェクト指向のメリット (カプセル化編)」
http://www.codelogy.org/quillpen/?entry=43
データの変更を制限して異常な変更からガードするのが1つとクラスの外に内部の動作を極力意識させない事が大事です。
今でもちょっと難しいですが、何とかなるような気がします。わざわざリンクを貼っていただきありがとうございます。
ぜんぜん急いでおりませんし、教えていただけるだけでありがたいです。お気遣いいただきありがとうございます。softya(ソフト屋) さんが書きました: 【追記の追記】
申し訳ないですが、午後から出かけるので午後は返事できません。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 不思議な波々を無くすには?
そういえば、私のRPG講座は読まれましたか?
「マイ 日記 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/blog.php?u=114&sd=a&c=2
C言語で書いたものですが徹底して隠蔽してありますし、オブジェクトと言う擬似クラス(と言う程でもないですが)のようなこともしています。
たとえ3Dでも基本構造は参考になるかと思います。
あとガタガタの件ですが、パッと思いつく問題点が思い当たりません。
ただ、私もDirectXでの開発に慣れているわけではないので見落としがあるかも知れません。
他のPCの3Dゲームでも同じような問題は起きないでしょうか?
「マイ 日記 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/blog.php?u=114&sd=a&c=2
C言語で書いたものですが徹底して隠蔽してありますし、オブジェクトと言う擬似クラス(と言う程でもないですが)のようなこともしています。
たとえ3Dでも基本構造は参考になるかと思います。
あとガタガタの件ですが、パッと思いつく問題点が思い当たりません。
ただ、私もDirectXでの開発に慣れているわけではないので見落としがあるかも知れません。
他のPCの3Dゲームでも同じような問題は起きないでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 不思議な波々を無くすには?
さっそくコミュニティに登録させていただきました。
PCがFRONTIERさんのXP(GeForce8200だったと思います)でも同じ現象が起きました。
XPも、このDellの7も、3DMMORPG(Aila、FW、TERA、SOR、C9、MWBなど)、FPS(CSOしかやりませんが)ではそんな現象起こらないんですが・・・・・・
あと、UnityやCryEngine3のようなゲームエンジンでも大丈夫です。
モデルサイズを変更(100倍大きくしたり0.01倍小さくしたり)しても見え方は変わりません。
mqo形式ではなく、Xファイルにメタセコイア(.mqo)→RokDeBone2(.x)ルートで変換してみましたが、今度はエラー(アクセス違反がどうこう)が出て表示されませんでした
自キャラ(Sculptris(.obj)→メタセコイア(.mqo)→RokDeBone2(.x)ルートで変換)はちゃんと表示されるのにです。
PCがFRONTIERさんのXP(GeForce8200だったと思います)でも同じ現象が起きました。
XPも、このDellの7も、3DMMORPG(Aila、FW、TERA、SOR、C9、MWBなど)、FPS(CSOしかやりませんが)ではそんな現象起こらないんですが・・・・・・
あと、UnityやCryEngine3のようなゲームエンジンでも大丈夫です。
モデルサイズを変更(100倍大きくしたり0.01倍小さくしたり)しても見え方は変わりません。
mqo形式ではなく、Xファイルにメタセコイア(.mqo)→RokDeBone2(.x)ルートで変換してみましたが、今度はエラー(アクセス違反がどうこう)が出て表示されませんでした
自キャラ(Sculptris(.obj)→メタセコイア(.mqo)→RokDeBone2(.x)ルートで変換)はちゃんと表示されるのにです。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 不思議な波々を無くすには?
エッジはこちらのほうが綺麗ですね。
ちなみにDxLibModelViewerのDXLIBのバージョンはVer 3.05fです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 不思議な波々を無くすには?
同じく3.05を使っているんですけどね・・・・・・
3.06にアップデートしても結果は変わりませんでした。
3.06にアップデートしても結果は変わりませんでした。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 不思議な波々を無くすには?
これは、DXライブラリの作者の方に質問すべき問題かも知れませんね。
GPUである「インテル® HD グラフィックス3000」のクセの問題の可能性があります。
そういえばGPUのドライバは最新ですか?
それとDxLibModelViewer.exeのLog.txtでDirectX周りの初期化はどんな感じでしょうか?
私のはこんなですが。
844:DirectDraw オブジェクトの取得を行います.... 成功
929:引き続き初期化処理... 初期化に成功しました
1144:IDirect3D9Ex オブジェクトを取得します.... 成功
1201:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
1583:成功
1584:Driver:nvd3dum.dll Description:NVIDIA GeForce GTS 250
1586:画面のフォーマットは D3DFMT_X8R8G8B8 です
1587:Zバッファのフォーマットは D3DFMT_D16 です
1588:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
1590:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
1591:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です
1593:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
1594:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です
1596:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
1598:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です
1599:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です
1601:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です
1602:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です
1604:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です
1615:描画用 16bit カラーフォーマットは D_D3DFMT_R5G5B5 です
1616:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
1618:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
1619:描画用ABGR浮動小数点16ビット型カラーフォーマットは D_D3DFMT_A16B16G16R16F です
1621:描画用ABGR浮動小数点32ビット型カラーフォーマットは D_D3DFMT_A32B32G32R32F です
1622:最大テクスチャサイズ 幅:8192 高さ:8192
1624:テクスチャステージテンポラリレジスタ:使用可
1625:減算合成のハードウェア対応:ネイティブ
1626:頂点シェーダーバージョンコード:300
1627:ピクセルシェーダーバージョンコード:300
1651:バックバッファロック転送の時間:2569nsec 一時的な描画可能バッファを使用した転送の時間:661nsec
1652:バックバッファロックを使用しません
1654:Zバッファを作成します.... 成功
1672:プログラマブルシェーダーを使用します
GPUである「インテル® HD グラフィックス3000」のクセの問題の可能性があります。
そういえばGPUのドライバは最新ですか?
それとDxLibModelViewer.exeのLog.txtでDirectX周りの初期化はどんな感じでしょうか?
私のはこんなですが。
844:DirectDraw オブジェクトの取得を行います.... 成功
929:引き続き初期化処理... 初期化に成功しました
1144:IDirect3D9Ex オブジェクトを取得します.... 成功
1201:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
1583:成功
1584:Driver:nvd3dum.dll Description:NVIDIA GeForce GTS 250
1586:画面のフォーマットは D3DFMT_X8R8G8B8 です
1587:Zバッファのフォーマットは D3DFMT_D16 です
1588:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
1590:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
1591:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です
1593:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
1594:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です
1596:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
1598:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です
1599:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です
1601:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です
1602:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です
1604:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です
1615:描画用 16bit カラーフォーマットは D_D3DFMT_R5G5B5 です
1616:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
1618:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
1619:描画用ABGR浮動小数点16ビット型カラーフォーマットは D_D3DFMT_A16B16G16R16F です
1621:描画用ABGR浮動小数点32ビット型カラーフォーマットは D_D3DFMT_A32B32G32R32F です
1622:最大テクスチャサイズ 幅:8192 高さ:8192
1624:テクスチャステージテンポラリレジスタ:使用可
1625:減算合成のハードウェア対応:ネイティブ
1626:頂点シェーダーバージョンコード:300
1627:ピクセルシェーダーバージョンコード:300
1651:バックバッファロック転送の時間:2569nsec 一時的な描画可能バッファを使用した転送の時間:661nsec
1652:バックバッファロックを使用しません
1654:Zバッファを作成します.... 成功
1672:プログラマブルシェーダーを使用します
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 不思議な波々を無くすには?
インテルのところで最新にアップデートしてもやはりだめです。
Logに関してはこうなりました
306:DirectDraw オブジェクトの取得を行います.... 成功
308:引き続き初期化処理... 初期化に成功しました
322:IDirect3D9Ex オブジェクトを取得します.... 成功
324:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
571:成功
571:Driver:igdumdx32.dll Description:Intel(R) HD Graphics
571:画面のフォーマットは D3DFMT_X8R8G8B8 です
572:Zバッファのフォーマットは D3DFMT_D16 です
572:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
572:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
572:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です
572:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
572:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です
572:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
572:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です
573:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です
573:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です
573:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です
573:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です
573:描画用 16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
573:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
573:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
573:描画用ABGR浮動小数点16ビット型カラーフォーマットは D_D3DFMT_A16B16G16R16F です
574:描画用ABGR浮動小数点32ビット型カラーフォーマットは D_D3DFMT_A32B32G32R32F です
574:最大テクスチャサイズ 幅:4096 高さ:4096
574:テクスチャステージテンポラリレジスタ:使用可
574:減算合成のハードウェア対応:ネイティブ
574:頂点シェーダーバージョンコード:300
574:ピクセルシェーダーバージョンコード:300
618:バックバッファロック転送の時間:8484nsec 一時的な描画可能バッファを使用した転送の時間:1060nsec
619:バックバッファロックを使用しません
619:Zバッファを作成します.... 成功
627:プログラマブルシェーダーを使用します
704:フォントの初期化を行います
706:フォントの初期化は正常に終了しました
707:文字コードバッファの初期化を行います... 完了しました
713:ウインドウスタイルをウインドウモード用に変更します... 完了
714:ウインドウスタイルをウインドウモード用に変更します... 完了
17176:ウインドウを閉じようとしています
17188:ウインドウが破棄されようとしています
17188:ソフトを終了する準備が整いました
17199:フォントの初期化を行います
17200:フォントの初期化は正常に終了しました
17202:Direct3DDevice9 の解放 3
17227:Direct3D9 DLL の解放 4
17230:DirectInput 関連の終了処理... 完了
17245:DirectSound の終了処理は正常に終了しました
17246:ウインドウスタイルをウインドウモード用に変更します... 完了
17246:
17247:Alloc memory dump
17247: Total size:0(0.000kb) Alloc num:0
17247:
Logに関してはこうなりました
306:DirectDraw オブジェクトの取得を行います.... 成功
308:引き続き初期化処理... 初期化に成功しました
322:IDirect3D9Ex オブジェクトを取得します.... 成功
324:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
571:成功
571:Driver:igdumdx32.dll Description:Intel(R) HD Graphics
571:画面のフォーマットは D3DFMT_X8R8G8B8 です
572:Zバッファのフォーマットは D3DFMT_D16 です
572:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
572:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
572:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です
572:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
572:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です
572:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
572:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です
573:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です
573:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です
573:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です
573:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です
573:描画用 16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
573:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
573:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
573:描画用ABGR浮動小数点16ビット型カラーフォーマットは D_D3DFMT_A16B16G16R16F です
574:描画用ABGR浮動小数点32ビット型カラーフォーマットは D_D3DFMT_A32B32G32R32F です
574:最大テクスチャサイズ 幅:4096 高さ:4096
574:テクスチャステージテンポラリレジスタ:使用可
574:減算合成のハードウェア対応:ネイティブ
574:頂点シェーダーバージョンコード:300
574:ピクセルシェーダーバージョンコード:300
618:バックバッファロック転送の時間:8484nsec 一時的な描画可能バッファを使用した転送の時間:1060nsec
619:バックバッファロックを使用しません
619:Zバッファを作成します.... 成功
627:プログラマブルシェーダーを使用します
704:フォントの初期化を行います
706:フォントの初期化は正常に終了しました
707:文字コードバッファの初期化を行います... 完了しました
713:ウインドウスタイルをウインドウモード用に変更します... 完了
714:ウインドウスタイルをウインドウモード用に変更します... 完了
17176:ウインドウを閉じようとしています
17188:ウインドウが破棄されようとしています
17188:ソフトを終了する準備が整いました
17199:フォントの初期化を行います
17200:フォントの初期化は正常に終了しました
17202:Direct3DDevice9 の解放 3
17227:Direct3D9 DLL の解放 4
17230:DirectInput 関連の終了処理... 完了
17245:DirectSound の終了処理は正常に終了しました
17246:ウインドウスタイルをウインドウモード用に変更します... 完了
17246:
17247:Alloc memory dump
17247: Total size:0(0.000kb) Alloc num:0
17247:
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 不思議な波々を無くすには?
あとは、DXライブラリのFSAAを有効にすると多少は改善されるかも?重くなるかも知れません。
SetFullSceneAntiAliasingModeの使い方。
「一部PMDモデルの読み込み不具合について」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=2296
SetFullSceneAntiAliasingModeの使い方。
「一部PMDモデルの読み込み不具合について」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=2296
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 不思議な波々を無くすには?
DxLibModelViewerのメニューで、『表示(V)』→『アンチエイリアシングの使用(A)』にチェックが入ってますか?
チェックを付けたり外したりしても変わらなかったらデバイスがFSAAに対応していないのでしょう。
(追記)
ダウンロードしたプロジェクトに市販ソフトのスクリーンショットが入ってますね。
市販ソフトではギザギザ出ないっておっしゃってますけど、このスクリーンショットを見る限りでは思いっ切りギザギザしてますね。
チェックを付けたり外したりしても変わらなかったらデバイスがFSAAに対応していないのでしょう。
(追記)
ダウンロードしたプロジェクトに市販ソフトのスクリーンショットが入ってますね。
市販ソフトではギザギザ出ないっておっしゃってますけど、このスクリーンショットを見る限りでは思いっ切りギザギザしてますね。
Re: 不思議な波々を無くすには?
FSAAをやっても駄目でした。
では、なぜオンラインゲームとかはちゃんと滑らかに見えるのでしょう?
チェックを付けたり外したりしても変わりませんでした。ISLe さんが書きました: DxLibModelViewerのメニューで、『表示(V)』→『アンチエイリアシングの使用(A)』にチェックが入ってますか?
チェックを付けたり外したりしても変わらなかったらデバイスがFSAAに対応していないのでしょう。
では、なぜオンラインゲームとかはちゃんと滑らかに見えるのでしょう?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 不思議な波々を無くすには?
ギザギザがたまたま見えていないだけかも知れませんが。
FSAAをON/OFFできるゲームとかお持ちではありませんか?
FSAAをON/OFFできるゲームとかお持ちではありませんか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 不思議な波々を無くすには?
DxLibModelViewerで少なくともGTS250ではON/OFFで変化します。OFFだとギザギザですね。
Intel(R) HD Graphicsに関してはFSAA対応なのか情報を調べられませんでした。
●アンチエイリアシングの使用がOFF ●アンチエイリアシングの使用がON 【追記】
ハードウェアFSAAがなくてもピクセルシェーダでアンチエイリアシング出来るので、そちらを行なっている可能性もありますが描画コストが大きく無いのかテストした事が無いので私はわかりません。
Intel(R) HD Graphicsに関してはFSAA対応なのか情報を調べられませんでした。
●アンチエイリアシングの使用がOFF ●アンチエイリアシングの使用がON 【追記】
ハードウェアFSAAがなくてもピクセルシェーダでアンチエイリアシング出来るので、そちらを行なっている可能性もありますが描画コストが大きく無いのかテストした事が無いので私はわかりません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 不思議な波々を無くすには?
ライティングされているからだと思います。史上最悪のデスペナ さんが書きました:では、なぜオンラインゲームとかはちゃんと滑らかに見えるのでしょう?
テント幕と影が白と黒というコントラスト最大の組み合わせなので目立つのでしょう。
ライトを配置してテントの奥が暗くなるようにすれば目立たなくなると思います。
Re: 不思議な波々を無くすには?
なるほど
とりあえず、その方法でやってみます。
上手くいっても、
他にいい方法を見つけてくださるかもしれないので(他力本願ではありません!)一応未解決のままにしておきます
とりあえず、その方法でやってみます。
上手くいっても、
他にいい方法を見つけてくださるかもしれないので(他力本願ではありません!)一応未解決のままにしておきます
Re: 不思議な波々を無くすには?
とあるお方にいただいたFSAAをON/OFFできるゲームをやってみましたが、
結果はどちらも変わりませんでした。
ようするにドライバが対応してないということですね・・・・・・いまどきどうなのかと思いますが^^;
結果はどちらも変わりませんでした。
ようするにドライバが対応してないということですね・・・・・・いまどきどうなのかと思いますが^^;
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 不思議な波々を無くすには?
INTEL製の内蔵GPUなのでNVIDIAやATI(今はAMD)などのGPU専門メーカー製よりも性能は劣っても仕方ないと思います。
それでも一昔前よりは、今お使いのIntel(R) HD Graphicsはだいぶ高性能になったんですが。
ゲーミングノートPC以外でも、そこそこ3Dが動くだけでもすごい時代になったと思います。
それでも一昔前よりは、今お使いのIntel(R) HD Graphicsはだいぶ高性能になったんですが。
ゲーミングノートPC以外でも、そこそこ3Dが動くだけでもすごい時代になったと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 不思議な波々を無くすには?
「オンラインゲームとかはちゃんと滑らかに見える」とおっしゃっているのですから無くても構わないのでは?史上最悪のデスペナ さんが書きました:ようするにドライバが対応してないということですね・・・・・・いまどきどうなのかと思いますが^^;
Intel(R) HD GraphicsのDeveloper's Guideを見るとMSAA(AA手法の一つ)に対応していると書いてあるんですけどね。
Re: 不思議な波々を無くすには?
オンラインゲームでは線がガタガタしてないと書きましたがよ~く線を見たらガタガタしていました。ゲームしてる分には気にならない程度ですけど。
今更ですが一応報告しておきます
今更ですが一応報告しておきます