对于SceneKit非常陌生,所以只需要在这里寻求帮助:
我有一个SCNSphere,它的中心有一个照相机
我创建一个SCNMaterial,doubleSided,并将其分配给球体
因为相机在中心,图像看起来垂直翻转,当里面有文字时,会把事情搞得一团糟。
因此,我如何翻转材料,或图像(虽然以后将是帧从一个视频),任何其他建议都是受欢迎的。
这个解决方案,顺便说一句,在我身上失败了,normalImage是作为一个材料应用的(但是当从球体内部观看时,图像会被翻转),但是分配flippedImage不会导致任何材料(白色屏幕)。
let normalImage = UIImage(named: "text2.png")
let ciimage = CIImage(CGImage: normalImage!.CGImage!)
let flippeCIImage = ciimage.imageByApplyingTransform(CGAffineTransformMakeScale(-1, 1))
let flippedImage = UIImage(CIImage: flippeCIImage, scale: 1.0, orientation: .Left)
sceneMaterial.diffuse.contents = flippedImage
sceneMaterial.specular.contents = UIColor.whiteColor()
sceneMaterial.doubleSided = true
sceneMaterial.shininess = 0.5发布于 2015-10-23 08:15:56
您可以使用SCNMaterialProperty的contentsTransform属性来翻转映射,而不是缩放节点(这可能会破坏您的照明):
material.diffuse.contentsTransform = SCNMatrix4MakeScale(1,-1,1)
material.diffuse.wrapT = SCNWrapModeRepeat // or translate contentsTransform by (0,1,0)发布于 2017-05-09 14:35:40
要水平翻转图像:
material.diffuse.contentsTransform = SCNMatrix4Translate(SCNMatrix4MakeScale(-1, 1, 1), 1, 0, 0)垂直翻转:
material.diffuse.contentsTransform = SCNMatrix4Translate(SCNMatrix4MakeScale(1, -1, 1), 0, 1, 0)发布于 2015-10-22 16:22:33
这对我有用,通过缩放它所连接的节点来翻转几何图形的法线:
sphereNode.scale = SCNVector3Make(-1,1,1)
https://stackoverflow.com/questions/33284781
复制相似问题