ISceneNode in Class -> BumpMaping don't go :(

If you are a new Irrlicht Engine user, and have a newbie-question, this is the forum for you. You may also post general programming questions here.
Post Reply
Arthur
Posts: 11
Joined: Wed May 30, 2007 4:49 pm

ISceneNode in Class -> BumpMaping don't go :(

Post by Arthur »

Hi,

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);
Can anyone help me?

mfg Arthur
Post Reply