ページ 11

深度テクスチャを用いてのシャドウマッピングについて

Posted: 2014年10月06日(月) 09:04
by kawazu
こんにちは。
初の質問になりますので、テンプレートを使用させていただきました。

[1] 質問文
 [1.1] 自分が今行いたい事は何か
  >複数のライトを基準とした影を描画すること。

 [1.2] どのように取り組んだか(プログラムコードがある場合記載)
  >コードはまだ一つのライトを基準とした影の描画の段階。

 [1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
  >影のライトを増やそうとする際に
   影のライトの数だけテクスチャを作成し、それぞれでレンダリングをしてシャドウマップを作成しなければいけないのか。
   だとすると、オブジェクトの描画数が膨大になって無駄に感じたので、
   現在はレンダーターゲットを深度テクスチャにしてシェーダで計算し色として書き込むということをしていますが、
   深度テクスチャへ描画しているシェーダに影のライトの数だけの深度テクスチャとライトView,ライトProjを渡して
   直接テクスチャを書き換えたり、なにかもっと効率的な方法があるのではないかと思い、ここで伺うことにしました。
   知りたいことは方法があるか、あるならばどういう物なのかということです。
   (参考URLやコード,文章での説明などがあるとありがたいです)

 [1.4] 今何がわからないのか、知りたいのか
  >[1.3]に記載。

[2] 環境  
 [2.1] OS : Windows, Linux等々
  >Windows7

 [2.2] コンパイラ名 : VC++ 2008EE, Borand C++, gcc等々
  >Visual C++で作成。 (Visual Studio2010)

[3] その他
 ・どの程度C言語を理解しているか
  >表し方がわかりませんが、サーティファイのC言語検定の2級までは持っていますが、1級は去年一度受けて落ちました。
  >学生で、プログラミングは始めて3年目です。

 ・ライブラリを使っている場合は何を使っているか
  >ライブラリは使用していないと思います。

以上です。拙いところも多いかと思いますが、ご指摘いただければ追記いたします。
よろしくお願いします。

Re: 深度テクスチャを用いてのシャドウマッピングについて

Posted: 2014年10月06日(月) 15:56
by softya(ソフト屋)
深度テクスチャだとライト分必要だと思います。
こんな記事がありますが、実装は難しいそうです。
「西川善司の3Dゲームファンのための「KILLZONE 2」グラフィックス講座(前編) -GAME Watch」
http://game.watch.impress.co.jp/docs/se ... 25909.html

なんにしてもライトは重いので、移動する特定キャラだけライティングとか、背景は焼き付けたライティングなどで映像の深みを出すなど数々の工夫を組み合わせて作るのが定番だと思います。

Re: 深度テクスチャを用いてのシャドウマッピングについて

Posted: 2014年10月06日(月) 17:13
by kawazu
softya(ソフト屋) さんが書きました:深度テクスチャだとライト分必要だと思います。
こんな記事がありますが、実装は難しいそうです。
「西川善司の3Dゲームファンのための「KILLZONE 2」グラフィックス講座(前編) -GAME Watch」
http://game.watch.impress.co.jp/docs/se ... 25909.html

なんにしてもライトは重いので、移動する特定キャラだけライティングとか、背景は焼き付けたライティングなどで映像の深みを出すなど数々の工夫を組み合わせて作るのが定番だと思います。
softya(ソフト屋)様、ご回答有難うございます。
やはり、深度テクスチャはライト分必要なのですね。
何か特別な画期的な方法があるかもと思い質問させていただきましたが、
ご回答いただけて安心しました。
それでは、この前提条件を元に工夫をしていくようにします。

これにて解決とさせていただきます。
皆様のご閲覧・ご回答、有難うございました。