トップページ > 過去ログ > 記事閲覧
フラットシェーディングにするには?
名前:ごんち 日時: 2009/11/26 02:41

DIRECTXではフラットシェーディングとグーローシェーディングの二つのモードがあると聞いたのですが、DXライブラリでそのモードを切り替えるにはどうすればいいのでしょうか? 今のところ標準ではグーローシェーディングをやっているように見えます。これをフラットシェーディングにしたいのですが…。 また、独自のシェーディング方法というのは可能でしょうか?

Page: 1 |

Re: フラットシェーディングにするには? ( No.1 )
名前:ごんち 日時:2009/11/26 02:47

ちなみに自己発光を100%にするという、 擬似的にフラットシェーディングにする方法も思いついたのですが、 僕が表現したいのは「リアルタイムで光の影響を受けながらもぎこちない」というもので、 またそもそも照明が無ければ何も見えないようなものを目指しており、 モデルの自己発光は0にするつもりなので、やはり各ポリゴンの輝度値が一定という 意味でのフラットシェーディングを実現する方法をお願いします。
Re: フラットシェーディングにするには? ( No.2 )
名前:管理人 日時:2009/11/29 21:49

DirectXのシェーディング方式としてフラットシェーディングにする手段は現在のDXライブラリにはありませんが、 3Dモデルでしたら、各ポリゴンを形成する3頂点の法線を同じにすることでフラットシェーディングと 同じ見た目になります ( DrawPolygon3D で描画するポリゴンでしたら1ポリゴンで使用する3頂点全ての 法線( 頂点の構造体VERTEX3D のメンバ変数 norm )を同じ値にします ) 各ポリゴンの法線を一つにする具体的な手順ですが、例えばメタセコイアでしたら オブジェクトのスムージングをOFFにすれば各ポリゴンの法線が一つになります
Re: フラットシェーディングにするには? ( No.3 )
名前:ごんち 日時:2009/11/30 02:18

>メタセコイアでしたらオブジェクトのスムージングをOFFにすれば各ポリゴンの法線が一つに そんな簡単なやり方で出来たんですね・・・。 体が大変なときに本当にありがとうございます。

Page: 1 |