我发现了一个问题,我无法理解这里发生了什么。
我有一个基于2D的3D角色游戏。
2D-base是从SceneKit到SK3DNode
的SpriteKit和3D。
一切都适用于iOS 10-11,但iOS 9有一种莫名其妙的行为。我的3D角色中的一些三角形(我认为其中一半)是透明的。
让我举例说明Box。
我有一个从.Blender的开始场景中导出的* .dae(Collada)模型,它看起来像一个普通的Box。
然后我有一些代码在我的UIViewController上显示它与不同的渲染视口(SCNView
和SKView
):
@interface ViewController ()
@property (weak, nonatomic) IBOutlet SKView *skView;
@property (weak, nonatomic) IBOutlet SCNView *scnView;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
SCNScene *boxScene = [SCNScene sceneNamed:@"Models.scnassets/box_default.dae"];
// SceneKit
{
self.scnView.scene = boxScene;
self.scnView.backgroundColor = [SCNColor magentaColor];
}
// SpriteKit
{
SKScene *skScene = [SKScene sceneWithSize:self.skView.frame.size];
skScene.backgroundColor = [SKColor magentaColor];
SK3DNode *skNode = [SK3DNode nodeWithViewportSize:self.skView.frame.size];
skNode.scnScene = boxScene;
skNode.position = CGPointMake(skScene.size.width / 2, skScene.size.height / 2);
[skScene addChild:skNode];
[self.skView presentScene:skScene];
}
}
@end
Result image with Preview and different ios/device screenshots
现在我有两个问题:
我尝试更改SKView
的渲染选项,并尝试从Blender导出.dae的不同选项,但我不能为不同的iOS和视口获得相同的结果。
我正在使用:
我能在这做什么?