re: Vertex Color - make sure you include the underlined line in your VertexFactory, or the color data will never get copied:
ENQUEUE_UNIQUE_RENDER_COMMAND_TWOPARAMETER(
InitChunkVertexFactory,
FChunkVertexFactory*, VertexFactory, this,
const FChunkVertexBuffer*, VertexBuffer, VertexBuffer,
{
DataType NewData;
NewData.PositionComponent = STRUCTMEMBER_VERTEXSTREAMCOMPONENT(VertexBuffer, FDynamicMeshVertex, Position, VET_Float3);
NewData.TextureCoordinates.Add(FVertexStreamComponent(VertexBuffer, STRUCT_OFFSET(FDynamicMeshVertex, TextureCoordinate), sizeof(FDynamicMeshVertex), VET_Float2));
NewData.TangentBasisComponents[0] = STRUCTMEMBER_VERTEXSTREAMCOMPONENT(VertexBuffer, FDynamicMeshVertex, TangentX, VET_PackedNormal);
NewData.TangentBasisComponents[1] = STRUCTMEMBER_VERTEXSTREAMCOMPONENT(VertexBuffer, FDynamicMeshVertex, TangentZ, VET_PackedNormal);
** NewData.ColorComponent = STRUCTMEMBER_VERTEXSTREAMCOMPONENT(VertexBuffer, FDynamicMeshVertex, Color, VET_Color);**
VertexFactory->SetData(NewData);
});
Check LocalVertexFactory.h for more info.