ITexture* tex = GlobalDevice::getVideoDriver()->getTexture(imageFile);
	assert(tex->getOriginalSize().Height % 2 == 0);
	dimension2d<s32> sizeOneTex(tex->getOriginalSize().Width,tex->getOriginalSize().Height/2);
	ITexture* texUp = GlobalDevice::getVideoDriver()->addTexture(sizeOneTex, imageFile);
	ITexture* texDown = GlobalDevice::getVideoDriver()->addTexture(sizeOneTex, "toto");
	std::cout << sizeOneTex.Height << std::endl;

	unsigned int sizeToCopy = 4*sizeOneTex.Width*sizeOneTex.Height;
	
	std::cout << "copy 1" << std::endl;
	//copy half image
	u8* scanLinesDest = reinterpret_cast<u8*>(texUp->lock());
	const u8* scanLinesSrc = reinterpret_cast<const u8*>(tex->lock(true));
	memcpy(scanLinesDest, scanLinesSrc, sizeToCopy);
	tex->unlock();
	texUp->unlock();

	std::cout << "copy 2" << std::endl;
	//copy the other half image
	scanLinesDest = reinterpret_cast<u8*>(texDown->lock());
	scanLinesSrc = reinterpret_cast<const u8*>(tex->lock(true));
	memcpy(scanLinesDest, scanLinesSrc+sizeToCopy, sizeToCopy);
	tex->unlock();
	texDown->unlock();

	dimension2d<f32> sizeOnePartIn3DWorld = dimension2d<f32>(texUp->getOriginalSize().Width / 8.f, texUp->getOriginalSize().Height / 8.f);
	
	assert(tex);
	billboard = GlobalDevice::getSceneManager()->addBillboardSceneNode(0, sizeOnePartIn3DWorld);
	assert(billboard);
	billboard->setMaterialType(video::EMT_TRANSPARENT_ALPHA_CHANNEL);
	billboard->setMaterialFlag(video::EMF_LIGHTING, false);
    billboard->setMaterialTexture(0, texUp);
	billboard->setPosition(pos + vector3df(0.f,sizeOnePartIn3DWorld.Height,0.f));

	billboardDown = GlobalDevice::getSceneManager()->addBillboardSceneNode(0, sizeOnePartIn3DWorld);
	assert(billboardDown);
	billboardDown->setMaterialFlag(video::EMF_ZBUFFER, false);
	billboardDown->setMaterialType(video::EMT_TRANSPARENT_ALPHA_CHANNEL);
	billboardDown->setMaterialFlag(video::EMF_LIGHTING, false);
    billboardDown->setMaterialTexture(0, texDown);
	billboardDown->setPosition(pos - vector3df(0.f,sizeOnePartIn3DWorld.Height,0.f));