トップページ > 記事閲覧
画面の中に黒い円のようなものが出てしまう&シェーダーについて
名前:north 日時: 2015/05/17 01:38

連続での質問となり申し訳ありません。 前回の質問からご返信を頂くまでの間、ゲーム本体の方のモデルの変更や細かいバグの修正を行っていたのですが、 その中で2曲目を選択した際に黒い円のようなものが画面にでてしまい それのバグの原因がどうしてもわからず、困っております。 どうか原因を教えていただけないでしょうか? プログラムを下記にアップいたしました。 ttp://qq1q.biz/l4CB パスワード:oto また、現在シェーダーの勉強をしたいと思っているのですが、何から手を付けていいのかわからず、もしよろしければ管理人さんのお勧めのページや本、勉強方法を教えていただけないでしょうか? 最終的には画面を歪ませる、影を付ける、水のリアル感を出す(この動画倉のリアル感を出せたらなと思っております  ttp://ダブリュー3つ.nicovideo.jp/watch/sm23275501) といったことができればなと思っております。 お忙しい中度々申し訳ありませんがどうかよろしくお願い致します。
メンテ

Page: 1 |

Re: 画面の中に黒い円のようなものが出てしまう&シェーダーについて ( No.1 )
名前:管理人 日時:2015/05/18 02:53

空に黒い円が表示されてしまうのは、カメラの Far クリップの距離の範囲から空のポリゴンが外れてしまっているからです SetCameraNearFar で設定する値は Near は不都合が無い範囲で可能な限り大きく、Far は不都合が無い範囲で 可能な限り小さくするのが理想ですが、今回のように不都合が発生してしまった場合は変更するしかありません Camera.cpp と Menu.cpp の2箇所で SetCameraNearFar( 1, 1000 ) が実行されていますが、こちらの Far の値を 大きくしたら黒い円は表示されなくなりましたので、よろしければお試しください SetCameraNearFar( 1, 1000 ) ; ↓ SetCameraNearFar( 1, 1500 ) ; > また、現在シェーダーの勉強をしたいと思っているのですが、何から手を付けていいのかわからず、 > もしよろしければ管理人さんのお勧めのページや本、勉強方法を教えていただけないでしょうか? シェーダーは Direct3D の知識が無いと正直扱うのは難しいです 紹介されている動画で使用されているシェーダーは Direct3D 9 時代のものですので、 まずは Direct3D 9 を直接使う方法を学んだ上で、Direct3D 9 のシェーダーの知識を深めるのが 一番の近道だと思います DXライブラリのオリジナルシェーダー機能は Direct3D 9 のシェーダー機能を扱う場合より制限が多く、 よりシェーダーに対する深い理解が必要なので、DXライブラリのシェーダー機能は Direct3D 9 を 直接扱うかたちでシェーダーが使えるようになってから漸く使える、という代物となっています ( なので、現在DXライブラリのオリジナルシェーダーの機能を使用されている方は、100%に  近い確率で Direct3D 9 を直接扱ったことのある方だと思います ) 習得する際は以下のような順番になると思います ・マイクロソフトのサイトから DirectX SDK をダウンロード+インストールする   < DirectX Software Development Kit >   https://www.microsoft.com/en-us/download/details.aspx?id=6812    ↓ ・DirectX 9 を扱っている参考書やウェブサイトで Direct3D 9 の基礎的な使い方を覚える   書籍は・・・DirectX 9 の書籍を読んだことが無いので分かりませんが、Amazon で   『DirectX』『入門』で書籍を検索すると、DirectX 9 の入門用の書籍が幾つも見つかります   ウェブサイトでは   IKD様のウェブサイト「○×つくろーどっとコム」の DirectX9技術編   http://marupeke296.com/DirectXMain.html   こちらしか見つけられませんでした・・・以前はもっとあったのですが、DirectX 9 自体古いので   無くなってしまったようです   因みに、書籍やウェブサイトでは1から10まで説明されていない場合が多いので、載っているプログラムを   実際に Visual Studio でコンパイルして実行したり改造したりしないと中々理解が深まらなかったりします    ↓ ・DirectX 9 のシェーダーを主に扱っている参考書やウェブサイトで Direct3D 9 のシェーダーを学ぶ   Direct3D 9 はシェーダーの機能を使わなくても描画を行うことができるので、Direct3D 9 の   基礎的な使い方を解説している書籍やウェブサイトではシェーダーについて何も書かれていないこともあります   なので、Direct3D 9 の基礎的な使い方を学んだ後はシェーダーについての基礎について   解説されている書籍やウェブサイトでシェーダーの基礎を学ぶことになります   ウェブサイトは先ほどと同じところですが、   IKD様のウェブサイト「○×つくろーどっとコム」の プログラマブルシェーダ編   http://marupeke296.com/ProShader_main.html   ↑こちらが良いと思います   あと、マイクロソフトのシェーダーに関する資料も重要です   HLSL のリファレンス   https://msdn.microsoft.com/ja-jp/library/bb509638(v=vs.85).aspx   応用については書籍では今給黎 隆様が執筆された「DirectX 9 シェーダプログラミングブック」が、   あと同じく今給黎 隆様のウェブサイトであるこちら   t-pot   http://t-pot.com/   がお勧めです(「PROGRAMMING」の中に Direct3D 9 のシェーダーを使った応用についての記事があります )    ↓ ・MME用のシェーダーファイル( 拡張子fx )でシェーダー機能をより深く学ぶ   MME用のシェーダーファイルはそのまま Direct3D 9 用のシェーダープログラムのファイルなので、   シェーダーの応用編としては非常にありがたい資料となります    ↓ ・DXライブラリのオリジナルシェーダー機能を使う   上記の学習を経て漸くDXライブラリのシェーダー機能が使えるようになります   ( そして Direct3D 9 を直接使用した場合よりかなり制約が多いので吃驚します・・・ )
メンテ
Re: 画面の中に黒い円のようなものが出てしまう&シェーダーについて ( No.2 )
名前:north(解決) 日時:2015/05/19 01:28

ありがとうございます。 無事に修正できました。 またシェーダーの勉強法についても詳しく教えてくださりありがとうございます。 Direct3D 9は少し扱ったことがあるので復習も兼ねて勉強してみたいと思います。 「DirectX 9 シェーダプログラミングブック」はもう絶版になってしまっているのですね・・・・・ 家にもう1冊DirectX9のシェーダーについても本があるのでそちらで勉強してみたいと思います。 またわからないことがありましたらどうかよろしくお願い致します。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存