2016-06-22 2 views
0

CAMetalLayer 배경색이 검정색입니다. 새 색상을 backgroundColor 속성으로 지정하더라도.변경 CAMetalLayer 배경색

내가 뭔가를 잃어버린거야? 감사! 원래 프로젝트에

링크 :

https://github.com/audiokit/MetalParticles

+0

코드를 추가하여 진행 상황을 더 잘 이해할 수 있습니다. –

+1

렌더링을 수행하는 경우 렌더 패스 설명자의 기본 색상 첨부 파일에 선명한 색상을 설정해야합니다. 다음과 같은 것 :'renderPassDescriptor.colorAttachments [0] .clearColor = MTLClearColorMake (1, 1, 1, 1); renderPassDescriptor.colorAttachments [0] .loadAction = MTLLoadActionClear; ' – warrenm

+0

안녕하세요, @warrenm! 지금까지 내가 볼 수있는 것처럼, 렌더링이 아닌 컴퓨팅을 사용합니다. 나는 코드에서 꽤 많이 잃어 버렸다. 귀하의 편의를 위해 원본 프로젝트를 첨부했습니다! –

답변

1

이 프로젝트는 그리기의 텍스처 각 프레임 지우기에 비교적 비 전통적인 접근법을 취은 텍스쳐와 같은 크기의 제로의 배열과 텍스처 콘텐츠를 대체 (폭 * 높이 * 4). 그 다음, 실제로 입자를 그려내는 계산 작업을 인코딩합니다. 이것은 거의 확실하게이 효과를 얻는 가장 효율적인 방법은 아니지만 코드를 가능한 한 효율적으로 만드는 실험과 반대로 가능한 한 가장 작은 변화를 만들고 싶다면 blankBitmapRawData 배열을 원하는대로 채우십시오 선명한 색상 (ParticleLab.swift의 82 번 라인 근처).

+0

안녕하세요. 당신은 항상 그런 인내와 끝내주는 멘토입니다! 나는 이것을 달성 할 수있는 방법을 이해하려고 노력하고있다. blankBitmapRawData는 [UInt8]을 기대한다. 나는 그것 [1,1,1,1] (RGBA)을 할당하려고했다. 그러나 그것은 작동하지 않습니다. blankBitmapRawData에 클리어/화이트 색상을 표시하는 방법을 알려주실 수 있습니까? –

+0

구성 요소는 UInt8이므로, 0.0-1.0이 아닌 0-255 범위에서 각각을 지정해야합니다. – warrenm

+0

[255,255,255,255]와 [255,255,255]를 모두 시도했으며 결과는 다음과 같습니다. http://prntscr.com/bk6fq4 .. 아 : 뭔가 빠졌습니까? –

0

난 당신의 코드를 통해 갈 당신은 배경 색상을 설정하는 장소를 볼 수 없습니다.

금속층이 그것에 하위 레이어로 추가되므로 명시 적으로 설정해야합니다.

ParticialLab 클래스의 init 메소드 끝에이 행을 추가하고 작동하는지 확인하십시오.

self.backgroundColor = UIColor.redColor().CGColor 
+0

여전히 흑인 .. warrenm이 제안했듯이 렌더링/계산중인 하위 레이어와 관련이있을 수 있지만 어디에서 정확하게 renderPassDescriptor를 배치해야 하는지를 이해할 수 없습니다. (위의 질문에 대한 자신의 의견을 참조하십시오) –

+0

그는 renderPassDescriptor를 만들고 색상 첨부를 설정 한 다음 renderPassDescriptor를 –

+0

https://developer.apple.com/library/prerelease/content/documentation/에 전달하여 MTLRenderCommandEncoder를 만드는 것이 좋습니다. 기타/개념/금속 프로그래밍 가이드/Render-Ctx/Render-Ctx.html –