I have make my ISceneNone in a class like that:
And now if i set the MaterialType at NormalMap the mesh will be black and nothing to see
Code: Select all
class CBoard
{
public:
int mSizeX;
int mSizeY;
int mTileSizeX;
int mTileSizeY;
int mCollTileX;
int mCollTileY;
CField* mField;
IAnimatedMesh* mMesh;
ISceneNode* mNode;
CBoard()
{
mSizeX = 0;
mSizeY = 0;
mTileSizeX = 0;
mTileSizeY = 0;
mCollTileX = 0;
mCollTileY = 0;
mMesh = ISMgr->getMesh("GFX/Cube.3ds");
if (mMesh)
{
IMesh* TangentMesh = ISMgr->getMeshManipulator()->createMeshWithTangents(mMesh->getMesh(0));
mNode = ISMgr->addMeshSceneNode(TangentMesh);
TangentMesh->drop();
//mNode = ISMgr->addAnimatedMeshSceneNode(mMesh);
mMesh->drop();
}
mTileSizeX = 1;
mTileSizeY = 1;
};
void DimField(int SizeX, int SizeY)
{
mSizeX = SizeX;
mSizeY = SizeY;
mField = new CField[mSizeX*mSizeY];
};
void SetField(CField* Field, int PosX, int PosY)
{
mField[PosX*mSizeY+PosY] = *Field;
};
CField* GetField(int PosX, int PosY)
{
return &mField[PosX*mSizeY+PosY];
};
void New(int SizeX, int SizeY, ITexture* Textur)
{
DimField(SizeX,SizeY);
mNode->setScale(vector3df(mSizeX*mTileSizeX,1,mSizeY*mTileSizeY));
mNode->setPosition(vector3df(mSizeX*mTileSizeX,0,mSizeY*mTileSizeY));
mNode->setMaterialTexture(0,Textur);
};
void SetMaterialType(E_MATERIAL_TYPE MaterialType)
{
mNode->setMaterialType(MaterialType);
};
void SetTexture(int Index , ITexture* Texture, bool NormalMap = false, float Heigh = 5.0f)
{
if(NormalMap)
{
IDriver->makeNormalMapTexture(Texture, Heigh);
}
mNode->setMaterialTexture(Index, Texture);
};
};
I init it so:
Code: Select all
CBoard Board;
Board.New(16,16,TexBoard);
Board.SetTexture(1,TexBoardR);
Board.SetMaterialType(EMT_PARALLAX_MAP_SOLID);
mfg Arthur