トップページ > 記事閲覧
DX11環境での法線マップ付きモデルの描画について
名前:gufo 日時: 2016/09/24 05:09

いつも大変お世話になっております。 ライブラリのバグかもしれない挙動がありましたので報告させていただきます。 DX11上でオリジナルシェーダを使用し、法線マップ付きの剛体モデルを描画したところ、 入力頂点データのノーマルやバイノーマルに正しい値が入っていないようです。 入力頂点はシェーダ上で以下のように記述しています。 struct VS_INPUT { float4 Position : POSITION; // 座標( ローカル空間 ) float3 Tan : TANGENT0; // 接線( ローカル空間 ) float3 Bin : BINORMAL0; // 従法線( ローカル空間 ) float3 Normal : NORMAL0; // 法線( ローカル空間 ) float4 Diffuse : COLOR0; // ディフューズカラー float4 Specular : COLOR1; // スペキュラカラー float4 TexCoords0 : TEXCOORD0; // テクスチャ座標 }; 使用したモデルはDxLibModelViewerで各マップ画像を適用したもので、 MV1GetTriangleListVertexType()の戻り値はDX_MV1_VERTEX_TYPE_NMAP_1FRAMEでした。 お手数ですがご確認よろしくお願いします。
メンテ

Page: 1 |

Re: DX11環境での法線マップ付きモデルの描画について ( No.1 )
名前:管理人 日時:2016/09/25 02:35

すみません、何時のころからか自動では接線や従法線が計算されないようになっていました mqo形式のような法線の情報が存在しないファイルを読み込んだ場合や、DxLibModelViewer.exe で 「読み込みオプション」→「法線再計算」にチェックを入れた状態でファイルを読み込んだ場合に 法線と共に接線や従法線も計算されるように修正しましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) ` // ビューアー https://dxlib.xsrv.jp/temp/DxLibModelViewerTest.zip
メンテ
Re: DX11環境での法線マップ付きモデルの描画について ( No.2 )
名前:gufo(解決) 日時:2016/09/26 05:51

すいません、ノーマルやバイノーマルが正しくない現象は入力頂点のデータの順番が間違っていたことが原因でした… (DX9のコードをそのままコピペしていました) ですが、修正して下さった法線再計算の不具合も原因の一つではあったので おかげさまで正しい描画ができそうです。 対応ありがとうございました。
メンテ

Page: 1 |

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

   クッキー保存