Cómo hacer que el color de una sección sea diferente en un objeto 3D

Tengo el siguiente objeto 3D:

El material de mi objeto 3D se codifica así con Qt3D:

void MyClass::addMaterial(Qt3DCore::QEntity *entity)
{
    Qt3DExtras::QPhongMaterial * material = new Qt3DExtras::QPhongMaterial();
    material->setAmbient(QColor(245-30, 245-15, 245));
    material->setDiffuse(QColor(125-30, 125-15, 125));
    material->setSpecular(QColor(215-30, 255-15, 255));
    entity->addComponent(material);
}

El código anterior le da los mismos colores a la entidad de objeto 3D uniformemente. ¿Cómo puedo dar diferentes colores a diferentes secciones de mi entidad? Quiero resaltar alguna sección en mi objeto 3D, ¿hay alguna manera de hacerlo con Qt3D?

Si no es posible con Qt3D, ¿cuál es la mejor práctica para hacerlo con OpenGL?

Encontre undiscusió que siento que sería muy útil.

Después de investigar un poco, el mejor enfoque podría ser utilizar el lenguaje de sombreado OpenGL o GLSL. No estoy seguro

Respuestas a la pregunta(2)

Su respuesta a la pregunta