Moderators: Sascha Willems, walaber
const VertexElement* const uvElem = v_decl->findElementBySemantic(VES_TEXTURE_COORDINATES);
HardwareVertexBufferSharedPtr uvPtr = v_data->vertexBufferBinding->getBuffer(uvElem->getSource());
dNewtonScopeBuffer<Vector3> uvs (uvPtr->getNumVertices());
{
int size = uvPtr->getVertexSize();
int offset = vertexElem->getOffset() / sizeof (float);
unsigned char* const ptr = static_cast<unsigned char*> (uvPtr->lock(HardwareBuffer::HBL_READ_ONLY));
for (int i = 0; i < uvs.GetElementsCount(); i ++) {
float* data;
uvElem->baseVertexPointerToElement(ptr + i * size, &data);
uvs[i] = Vector3 (data[offset + 0], data[offset + 1], 0.0f);
}
uvPtr->unlock();
}
poly_verts[j][7] = uvs[idx].x;
poly_verts[j][8] = uvs[idx].y;
Users browsing this forum: No registered users and 5 guests