iPhone 렌더러에서 iPhone X (iOS 11.1.2)를 실행할 때 SceneKit 앱에 문제가 있습니다. iOS 9 이상 버전에서 동일한 색상 렌더링을 얻으려면 앱에 plst 키 SCNDisableLinearSpaceRendering
이 YES로 설정되어 있어야합니다. 또한 overlaySKScene
을 통해 추가 된 SpriteKit 2D 오버레이가 있습니다.iPhone X에서 SceneKit + SpriteKit 오버레이로 인한 픽셀 형식 오류
릴리스 빌드에서 iPhone X는 오버레이에서 이상한 색상을 표시하지만 3D 장면에서는 이상한 색상을 표시합니다. 디버그 오류 로그와 충돌을 구축 :
- [MTLDebugRenderCommandEncoder validateFramebufferWithRenderPipelineState :] : 1196 : 프레임 버퍼의 pixelFormat (MTLPixelFormatBGR10_XR)와 일치하지 않는 컬러 첨부 파일 0, 파이프 라인의 pixelFormat (MTLPixelFormatRGBA8Unorm_sRGB를) 렌더링을 위해`주장 실패 '.
내가 이해하는 방식은 2D 및 3D 장면의 픽셀 형식이 다른 것입니다. 나는 내가 어떻게 바꿀 수 있는지 전혀 모른다. 어떤 제안?
오류는 시뮬레이터 나 내가 테스트 한 다른 기기 (4s, 5s, 6plus, 6s, 7, iPad Pro 1G)가 아닌 iPhone X에만 표시됩니다. OpenGL ES 렌더러를 사용할 때 모든 것이 정상입니다. SCNDisableLinearSpaceRendering을 끄면 Metal 렌더러에서도 모든 것이 작동하지만 3D 렌더링은 매우 다릅니다.
당신이 아이폰 X이있는 경우는 게임 템플릿에서 새 프로젝트를 만들고있는 viewDidLoad에서이 코드를()를 추가하여이 문제를 재현 할 수 있습니다 :
let overlaySize = CGSize(width: 100, height: 100)
let overlay = SKScene(size: overlaySize)
let sprite = SKSpriteNode(color: UIColor.blue, size: overlaySize)
overlay.addChild(sprite)
scnView.overlaySKScene = overlay
나는 또한이 경우 듣고 매우 관심이있을 것 또한 iPhone 8/8 Plus에서 발생합니까?
본 적이 있습니까? https://stackoverflow.com/questions/39522086/scenekit-how-to-reproduce-ios-9-lighting-color-effect-one-directional-one-amb – Knight0fDragon