2017-12-05 22 views
0

저는 알파 채널로 투명 색상을 반환하는 메탈 프래그먼트 쉐이더를 가지고 있습니다. MTKView 아래에 UIView를 공개하고 싶습니다. 그래야만 배경이 검은 색이고 "오류 소음"을 얻을 수 있습니다.알파/투명성 및 MTKView?

MTLRenderPipelineDescriptor :

pipelineStateDescriptor.isAlphaToCoverageEnabled = true 
pipelineStateDescriptor.colorAttachments[0].pixelFormat = .bgra8Unorm 
pipelineStateDescriptor.colorAttachments[0].isBlendingEnabled = true 
pipelineStateDescriptor.colorAttachments[0].destinationRGBBlendFactor = .oneMinusSourceAlpha 
pipelineStateDescriptor.colorAttachments[0].destinationAlphaBlendFactor = .oneMinusSourceAlpha 

MTLRenderPassDescriptor : 나는 맑은 색상을 변경하면 나는 맑은 색상을 건너 뛰면 내가 "오류 소음"을 참조 그래도

renderPassDescriptor.colorAttachments[0].loadAction = .clear 
renderPassDescriptor.colorAttachments[0].clearColor = MTLClearColor(red: 0, green: 0, blue: 0, alpha: 0) 

내가, 투명 색상 아래를 볼 수 있습니다 . 선명한 색상의 알파 채널은 실제로 어떤 작업을 수행합니까?

누구나 MTKView를 투명하게 만드는 방법을 알고 있습니까?

업데이트 :

여기에 투명한 MTKView을 할 수있는 마법의 숙박 시설의하십시오 UIView 투명 콘텐츠를하거나 불투명 한 도면 자체를 채우기 위해 실패 할 경우

self.isOpaque = false 
+0

false를 반환하는'opaque' 속성을 오버라이드하는'MTKView'의 하위 클래스를 사용하고 있습니까? –

+0

isOpaque 속성이 그랬습니다! 감사 – Hexagons

답변

1

가, 다음은 설정해야합니다 그것의 opaque (isOpaque)이 false가되도록 설정하면 배후에있는 것과 적절하게 합성됩니다. MTKViewUIView의 서브 클래스이므로, 이것도 마찬가지입니다.