SceneKit iOS9渲染问题

时间:2017-09-22 12:17:39

标签: ios objective-c 3d sprite-kit scenekit

我发现了一个问题,我无法理解这里发生了什么。

我有一个基于2D的3D角色游戏。

2D-base是从SceneKit到SK3DNode的SpriteKit和3D。

一切都适用于iOS 10-11,但iOS 9有一种莫名其妙的行为。我的3D角色中的一些三角形(我认为其中一半)是透明的。

让我举例说明Box。

我有一个从.Blender的开始场景中导出的* .dae(Collada)模型,它看起来像一个普通的Box。

然后我有一些代码在我的UIViewController上显示它与不同的渲染视口(SCNViewSKView):

@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

现在我有两个问题:

  • 为什么我在iOS 9上看不到Box侧面的三角形?
  • 为什么iOS 11上的颜色会有所不同?

我尝试更改SKView的渲染选项,并尝试从Blender导出.dae的不同选项,但我不能为不同的iOS和视口获得相同的结果。

我正在使用:

  • XCode 9.0(9A235)
  • Blender 2.78c
  • iPhone 4S iOS 9.3.1(13E238)
  • iPhone 5S iOS 11.0(15A372)

我能在这做什么?

0 个答案:

没有答案