【问题标题】:A SCNSphere with a SKScene texture renders only on a quarter of the sphere具有 SKScene 纹理的 SCNSphere 仅在球体的四分之一上渲染
【发布时间】:2018-03-17 03:29:13
【问题描述】:

所以我有一个 SceneKit 球体对象:

let mySphere = SCNSphere(radius: 0.1)
let ballNode = SCNNode(geometry: mySphere)

我在其中添加了一个 SpriteKit 场景作为纹理:

someNode = SKSpriteNode(imageNamed: textureAtlas.textureNames[0])
someNode.size = CGSize(width:1500, height:1500)
someNode.position = CGPoint(x: 0, y: 0)

let scene2 = SKScene(size: someNode.size)
scene2.addChild(someNode)

ballNode.geometry!.firstMaterial?.diffuse.contents = scene2

该纹理仅在球体的四分之一上渲染:

这是为什么呢?

【问题讨论】:

  • 尝试在球体上尝试之前将该场景映射到平面上,并尝试减小someNode 的大小并更改其位置——在那里进行一些实验应该会让前进的道路更加清晰。
  • 如何将场景映射到飞机上?
  • 使用 SCNPlane 代替 SCNSphere。

标签: ios swift sprite-kit scenekit arkit


【解决方案1】:

它帮助了我:

let textureImage = UIImage(named: "texture")!
let skScene = SKScene(size: textureImage.size)
let texture = SKTexture(image: textureImage)
let spriteNode = SKSpriteNode(texture: texture)

spriteNode.position = CGPoint(x: textureImage.size.width / 2, y: textureImage.size.height / 2)
spriteNode.zRotation = Transforms.degreesToRadians(180).cgFloat()
spriteNode.xScale *= -1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-01
    • 2012-05-04
    • 2015-08-30
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多