前提・実現したいこと
MMEのエフェクトファイル(HLSL)によって
DirectX9環境で<s>テッセレーションを実施したいです。</s>
テッセレーションでは曖昧だったので言い換えます。
角を滑らかにしたいです。LoD等は考慮しません。
発生している問題
ソースコードが1行目から全く理解できてないです。
ネットでも「HLSL Vertex」の単語等で調べてみましたが、期待する回答は見つかりませんでした。
また、AmazonでHLSLに関する書籍についても探してみましたが
これといって良さそうな本がわからず手をつけられてません。
該当のソースコード
HLSL
1Vertex Vi: (Xi, Yi, Zi, TFactori (optional)). 2Ze1eye = Ve1 . Mdm 3Ze2eye = Ve2 . Mdm 4Te1 = MaxTessellationLevel * TFactore1 / Ze1eye 5Te2 = MaxTessellationLevel * TFactore2 / Ze2eye 6Te = ( Te1 + Te2 ) / 2; 7if Te > D3DRS_MAXTESSELLATIONLEVEL || Te < 0, then Te = D3DRS_MAXTESSELLATIONLEVEL 8if Te < D3DRS_MINTESSELLATIONLEVEL, then Te = D3DRS_MINTESSELLATIONLEVEL 9 10 11 12technique10 _name < string MMDPass = "object"; > { 13 pass P0 { 14 SetVertexShader(CompileShader(vs_5_0, VS())); 15 SetHullShader(CompileShader(hs_5_0 , HS())); 16 SetDomainShader(CompileShader(ds_5_0, DS())); 17 SetGeometryShader(CompileShader(gs_5_0, GS())); 18 SetPixelShader(CompileShader(ps_5_0, PS())); 19 } 20}
試したこと
https://msdn.microsoft.com/ja-jp/library/ee422457(v=vs.85).aspx
ここを参照しながらプログラムを作ろうと考えています。
上記のプログラムもそこに記載されたものです。
追記
https://codezine.jp/article/detail/6122?p=3
CodeZineの記事を読んで、ここの簡単なプログラムを落とし
おそらくここのシェーダコードのところに落とし込めればいいんだろう
というところまでは理解しました。
追記2
https://hexadrive.jp/lab/demo/65/
イメージしてることを実際にやってるサイト。
これをどうにか実装できれば…。
追記3
http://marupeke296.com/DXG_No53_DrawUsingStream.html
このウェブサイトの資料も、モデルのイラストが無いのでわからないけど、
説明読む限りかなりイメージに近いかも?
setStreamSourceとやらも並行して調査する。
あなたの回答
tips
プレビュー