Code: Select all
// creating block
ISceneNode * block = smgr->addCubeSceneNode(
size, // size
0, // dad
id, // id
pos, // pos
core::vector3df(0, 0, 0), // rot
core::vector3df(1.0f, 1.0f, 1.0f) // scale
);
// settings
block->setMaterialTexture(0, driver->getTexture("media/block_default.jpg"));
block->setMaterialType(video::EMT_TRANSPARENT_ALPHA_CHANNEL);
block->setMaterialFlag(video::EMF_LIGHTING, false);Code: Select all
for(int x=0; x<=100; x++){
for(int z=0; z<=100; z++){
create_block(driver, smgr, 1, block_id, v3f(x,0,z));
block_id++;
}
}also i tried create the cubes using this, but still same poop:
Code: Select all
SMesh* createCubeMesh(const v3f& size)
{
f32 sX =size.X;
f32 sY =size.Y;
f32 sZ =size.Z;
SMeshBuffer* buffer =new SMeshBuffer;
// Create indices
const u16 u[36] = { 0,2,1, 0,3,2, 1,5,4, 1,2,5, 4,6,7, 4,5,6,
7,3,0, 7,6,3, 9,5,2, 9,8,5, 0,11,10, 0,10,7};
buffer->Indices.set_used(36);
for (u32 i=0; i<36; ++i)
buffer->Indices[i] = u[i];
// Create vertices
SColor clr(255,255,255,255);
buffer->Vertices.reallocate(12);
buffer->Vertices.push_back(S3DVertex(-sX/2,-sY/2,-sZ/2, -1,-1,-1, clr, 0, sX/sY)); //0
buffer->Vertices.push_back(S3DVertex(sX/2,-sY/2,-sZ/2, 1,-1,-1, clr, sY/sX, sX/sX)); //1
buffer->Vertices.push_back(S3DVertex(sX/2,sY/2,-sZ/2, 1, 1,-1, clr, sY/sX, 0)); //2
buffer->Vertices.push_back(S3DVertex(-sX/2,sY/2,-sZ/2, -1, 1,-1, clr, 0, 0)); //3
buffer->Vertices.push_back(S3DVertex(sX/2,-sY/2,sZ/2, 1,-1, 1, clr, 0,sX/sY )); //4
buffer->Vertices.push_back(S3DVertex(sX/2,sY/2,sZ/2, 1, 1, 1, clr, 0, 0)); //5
buffer->Vertices.push_back(S3DVertex(-sX/2,sY/2,sZ/2, -1, 1, 1, clr, sY/sX, 0)); //6
buffer->Vertices.push_back(S3DVertex(-sX/2,-sY/2,sZ/2, -1,-1, 1, clr, sY/sX, sX/sY)); //7
buffer->Vertices.push_back(S3DVertex(-sX/2,sY/2,sZ/2, -1, 1, 1, clr, 0, sX/sY)); //8
buffer->Vertices.push_back(S3DVertex(-sX/2,sY/2,-sZ/2, -1, 1,-1, clr, sY/sX, sX/sY)); //9
buffer->Vertices.push_back(S3DVertex(sX/2,-sY/2,sZ/2, 1,-1, 1, clr, sY/sX, 0)); //10
buffer->Vertices.push_back(S3DVertex(sX/2,-sY/2,-sZ/2, 1,-1,-1, clr, 0, 0)); //11
// Recalculate bounding box
buffer->BoundingBox.reset(0,0,0);
for (u32 i=0; i<12; ++i)
{
buffer->BoundingBox.addInternalPoint(buffer->Vertices[i].Pos);
};
SMesh* mesh =new SMesh;
SMaterial mat;
buffer->Material =mat;
mesh->addMeshBuffer(buffer);
buffer->drop();
mesh->recalculateBoundingBox();
return mesh;
};



