Establecer CALayer como contenido difuso de SCNMaterial

He estado buscando en Internet en los últimos días sin resultado. Desafortunadamente, la documentación de Apple sobre este problema específico es vaga y no hay código de muestra disponible (al menos eso es lo que descubrí). Cuál parece ser el problema que puede preguntar ...

Estoy tratando de configurar la capa de uiview como el contenido del material que se utiliza para representar la pantalla de un modelo de iPhone (Sí, trippy: P). El mapeo UV de la pantalla del iPhone está configurado de 0 a 1 para que no persista ningún problema al mapear la textura / capa en los texels.

Entonces, en lugar de hacer que esta capa aparezca renderizada en el iPhone, igual que la imagen de la izquierda, en su lugar, obtengo esto en el iPhone como la imagen correcta

Renderizado correcto Renderizado incorrecto

También tenga en cuenta que cuando configuro un punto de interrupción y depuro el nodo real del iPhone y lo veo en Xcode, se muestra un render completamente diferente y la capa se arregla a medias cuando continúo la ejecución:

Ahora bien ... ¿CÓMO soluciono este problema? Intenté jugar con la matriz de transformación de contenido difuso, pero nada se soluciona. También intenté cambiar el tamaño del UIView a 256x256 (ya que el UV parece ser 256x256 como se muestra en Blender, el paquete de modelado 3D), pero eso no soluciona nada.

Aquí está el código para la capa:

UIView *screen = [[UIView alloc] initWithFrame:self.view.bounds];
screen.backgroundColor = [UIColor redColor];

UIView *temp = [[UIView alloc] initWithFrame:CGRectMake(0, 0, screen.bounds.size.width, 60)];
temp.backgroundColor = [UIColor colorWithRed:0 green:(112.f/255.f) blue:(235.f/255.f) alpha:1];

UILabel *label = [[UILabel alloc] initWithFrame:CGRectInset(temp.bounds, 40, 0)];
label.frame = CGRectOffset(label.frame, 40, 0);
label.textColor = [UIColor colorWithRed:0 green:(48.f/255.f) blue:(84.f/255.f) alpha:1];
label.text = @"Select Track";
label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:30];
label.minimumScaleFactor = 0.001;
label.adjustsFontSizeToFitWidth = YES;
label.lineBreakMode = NSLineBreakByClipping;
[temp addSubview:label];

UIView *separator = [[UIView alloc] initWithFrame:CGRectMake(0, temp.bounds.size.height - 2, temp.bounds.size.width, 2)];
separator.backgroundColor = [UIColor colorWithRed:0 green:(48.f/255.f) blue:(84.f/255.f) alpha:1];
[temp addSubview:separator];
[screen addSubview:temp];
screen.layer.contentsGravity = kCAGravityCenter;

Editar
Lo que es aún más extraño es que si capturo un UIImage de la vista usando:

- (UIImage *) imageWithView:(UIView *)view
{
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];

    UIImage * img = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return img;
}

y úsalo como contenido del difuso ... ¿todo funciona perfectamente bien? Es realmente extraño y frustrante ya que el tamaño de la imagen es exactamente el mismo que el de la uiview ...

Editar 2

Terminé simplemente usando una imagen de la vista como textura, lo que hace que las cosas sean mucho más estáticas de lo que necesitaba. No estableceré esto como la respuesta porque todavía estaré esperando una solución correcta para este problema, incluso si lo hace en mucho tiempo. Por lo tanto, si tiene una respuesta y este tema se ha abierto durante mucho tiempo, por favor hágalo si puede. La documentación en esta sección es muy pobre.

Respuestas a la pregunta(2)

Su respuesta a la pregunta