SceneKit,SCNMaterial的翻转方向

对于SceneKit来说非常新颖,所以在这里寻找帮助:

我有一个SCNSphere与它的中心相机

我创build一个SCNMaterial,doubleSided,并将其分配给球体

由于相机在中心,图像看起来垂直翻转,当文本里面的东西完全混乱了。

所以我怎样才能翻转材料,或图像(虽然以后它会从video帧),任何其他build议是值得欢迎的。

这个解决scheme,顺便说一句,我失败了,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 

您可以使用SCNMaterialProperty的contentsTransform属性来翻转映射,而不是缩放节点(这可能会破坏光照)。

 material.diffuse.contentsTransform = SCNMatrix4MakeScale(1,-1,1); material.diffuse.wrapT = SCNWrapModeRepeat; //or translate contentsTransform by (0,1,0); 

这工作对我来说,通过缩放它所连接的节点来翻转几何的法线:

sphereNode.scale = SCNVector3Make(-1,1,1)

要水平翻转图像:

 material.diffuse.contentsTransform = SCNMatrix4Translate(SCNMatrix4MakeScale(-1, 1, 1), 1, 0, 0) 

垂直翻转:

 material.diffuse.contentsTransform = SCNMatrix4Translate(SCNMatrix4MakeScale(1, -1, 1), 0, 1, 0) 
Interesting Posts