首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >渲染SKTexture时颜色错误

渲染SKTexture时颜色错误
EN

Stack Overflow用户
提问于 2020-10-29 10:07:33
回答 1查看 42关注 0票数 0

我有一个由GKNoiseMap生成的SKTexture。当我观察快速操场的纹理时,它具有预期的颜色。当我将纹理应用于材质并在SCNView中渲染它时,颜色是不同的(见下图)。我做错了什么?

完整代码:

代码语言:javascript
复制
import GameKit
import SpriteKit
import PlaygroundSupport

let source = GKPerlinNoiseSource()
let noise = GKNoise(source)
noise.gradientColors = [-1: #colorLiteral(red: 0.7537418008, green: 0.4404714704, blue: 0.2776784003, alpha: 1) , 1: #colorLiteral(red: 0.2008953691, green: 0.186568588, blue: 0.2595013976, alpha: 1)]
let map = GKNoiseMap(noise, size: vector2(1.0, 1.0), origin: vector2(0.0, 0.0), sampleCount: vector2(Int32(256), Int32(256)), seamless: false)
let texture = SKTexture(noiseMap: map )


let ball = SCNSphere(radius: 1)
let materials = SCNMaterial()
materials.diffuse.contents = texture
ball.materials = [materials]
var node = SCNNode(geometry: ball)


var sceneView = SCNView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
var scene = SCNScene()
sceneView.scene = scene
PlaygroundPage.current.liveView = sceneView

var cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
cameraNode.position = SCNVector3(x: 0, y: 0, z: 3)
scene.rootNode.addChildNode(cameraNode)
scene.rootNode.addChildNode(node)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-30 11:44:18

我不明白为什么这是可行的(我怀疑这与gamma校正有关),但这里有一个变通方法:

将SKTexture转换为UIImage,然后将UIimage指定给材质的漫反射内容。这显示了正确的颜色。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64583950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档