ノーマルマップが存在しないモデルにノーマルマップを追加されたいということでしょうか?
ともあれモデルが使用するテクスチャを追加したり、マテリアルが使用するノーマルマップを
設定する関数が無かったので、追加しました
よろしければこちらをダウンロードしてください m(_ _)m
https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用
https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用
https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 11.3 用
https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用
https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用
https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース
(中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
以下の関数を追加しました
// モデルで使用するテクスチャを追加する
// MHandle : モデルハンドル
// Name : 追加するテクスチャの名前( ファイル名ではないので、適当に"NrmMap"などでOKです )
// ColorFilePath : 追加する画像ファイルのパス
int MV1AddTexture( int MHandle, char *Name, char *ColorFilePath ) ;
// 指定のマテリアルで法線マップとして使用するテクスチャを指定する
// MHandle : モデルハンドル
// MaterialIndex : 法線マップを設定するマテリアルの番号
// TexIndex : 法線マップとして設定するテクスチャの番号
int MV1SetMaterialNormalMapTexture( int MHandle, int MaterialIndex, int TexIndex ) ;
ノーマルマップが存在しないモデルにノーマルマップを追加する場合は、まず MV1AddTexture で
ノーマルマップを追加して、その後 MV1SetMaterialNormalMapTexture で希望のマテリアルに
MV1AddTexture で追加したマテリアルを設定します
// テクスチャ追加前のテクスチャ数を取得しておく
int TexIndex = MV1GetTextureNum( ModelHandle );
// モデルで使用するテクスチャを追加する
MV1AddTexture( ModelHandle, "NrmTex", "NormalMap.png" );
// 指定のマテリアル( ここでは例として3番のマテリアル )で使用する法線マップを設定する
MV1SetMaterialNormalMapTexture( ModelHandle, 3, TexIndex );
尚、MV1SetMaterialNormalMapTexture の第三引数にテクスチャ追加前の MV1GetTextureNum の戻り値を渡していますが、
これは追加したテクスチャはテクスチャリストの末尾に配置されるので必ず
追加前のテクスチャの数 = 追加したテクスチャの番号
となるからです
よろしければお試しください m(_ _)m