В Ogre3D, как экспортировать значение пикселя текстуры в физическую память

Я использую Ogre3D.

У меня есть текстура, определенная как:

rtt_texture = Ogre::TextureManager::getSingleton().createManual("RttTex", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::TEX_TYPE_2D, texWidth, texHeight, 0, Ogre::PF_R8G8B8, Ogre::TU_RENDERTARGET);

Я пытаюсь использовать следующий код для копирования значения пикселя в память, но полученные данные отличаются от того, что было отображено:

unsigned char* data = new unsigned char[texWidth * texHeight * 3];
data = (unsigned char*)rtt_texture->getBuffer()->lock(0, texWidth*texHeight*3, Ogre::HardwareBuffer::HBL_READ_ONLY);

Нет ли здесь ошибок?


person shapeare    schedule 14.11.2014    source источник


Ответы (1)


Я обнаружил, что мне действительно нужно заменить

texWidth * texHeight * 3

везде с

texWidth * texHeight * 4
person shapeare    schedule 15.11.2014