SceneKit: пользовательская сцена - половина сферы, но с черной точкой внизу, как уточнить эту точку?
Половина сферы с использованием Кода "geometrySourceWithData", например:
NSData *indicesData = [NSData dataWithBytes:indices
length:sizeof(indices)*indexCount];
SCNGeometryElement *indicesElement = [SCNGeometryElement
geometryElementWithData:indicesData
primitiveType:SCNGeometryPrimitiveTypeTriangleStrip
primitiveCount:indexCount
bytesPerIndex:sizeof(int)];
NSMutableData *vertexData = [NSMutableData
dataWithBytes:vertices
length:pointCount * sizeof(SCNVector3)];
SCNGeometrySource *verticesSource =
[SCNGeometrySource geometrySourceWithData:vertexData
semantic:SCNGeometrySourceSemanticVertex
vectorCount:pointCount
floatComponents:YES
componentsPerVector:3
bytesPerComponent:sizeof(float)
dataOffset:0
dataStride:sizeof(SCNVector3)];
NSMutableData *normalData = [NSMutableData dataWithBytes:normals
length:pointCount * sizeof(SCNVector3)];
SCNGeometrySource *normalsSource = [SCNGeometrySource
geometrySourceWithData:normalData
semantic:SCNGeometrySourceSemanticNormal
vectorCount:pointCount
floatComponents:YES
componentsPerVector:3
bytesPerComponent:sizeof(float)
dataOffset:0
dataStride:sizeof(SCNVector3)];
NSMutableData *textureData = [NSMutableData dataWithBytes:UVs
length:pointCount * sizeof(float)*2.0];
SCNGeometrySource *textureSource = [SCNGeometrySource
geometrySourceWithData:textureData
semantic:SCNGeometrySourceSemanticTexcoord
vectorCount:pointCount
floatComponents:YES
componentsPerVector:2
bytesPerComponent:sizeof(float)
dataOffset:0
dataStride:sizeof(float)*2.0];
SCNGeometry *geometry = [SCNGeometry
geometryWithSources:@[verticesSource, normalsSource, textureSource]
elements:@[indicesElement]];
SCNMaterial *blueMaterial = [SCNMaterial material];
// material.diffuse.contents = [UIColor redColor];
blueMaterial.diffuse.contents = image;
blueMaterial.diffuse.wrapS = SCNWrapModeRepeat;
blueMaterial.diffuse.wrapT = SCNWrapModeRepeat;
blueMaterial.diffuse.contentsTransform = SCNMatrix4MakeScale( 1.0f, 1.0f, 1.0f);
blueMaterial.doubleSided = YES;
NSMutableArray *array_ = [NSMutableArray array];
[array_ addObject:blueMaterial];
geometry.materials = array_;
SCNNode *geometryNode = [SCNNode nodeWithGeometry:geometry];
Но есть большая черная точка в середине.
все сферические точки, подобные этой картинке:
или я должен попытаться использовать сферу SYSTEM: и, как: лучше, чем я создаю (пользовательская сфера)
--------------------- ОБНОВЛЕНИЕ 001
sphere_.segmentCount=100;
sphere_.firstMaterial.doubleSided = NO;
sphere_.firstMaterial.cullMode =SCNCullModeFront;
[sphere_ setGeodesic:NO];
установить как НЕТ КАК:
установить как ДА, КАК: О Боже!!!
[sphere_ setGeodesic:YES];
-------------------------------------------------ОБНОВИТЬ 20170116
Оригинальная картинка: это половина сферы;