티스토리 뷰

iOS

iOS ) CAEmitterLayer프로퍼티 정리

Zedd0202 2018. 3. 1. 19:27
반응형

안녕하세요 :) Zedd입니다. 

그래요..CAEmitterLayer도...프로퍼티가 많았었네요.......

그래서 따로 정리해보려고 합니다 :) 


CAEmitterLayer프로퍼티 정리 



● birthRatebirthRate? Cell에도 이게 있었던 것 같은데....뭐지? 네 CAEmitterLayer의 birthRate는 각 cell의 birthRate에 이 Layer의 birthRate를 곱해서 초당 생성된 실제 입자수에요.

그럼 만약 cell의 birthRate가 3이고 layer의 birthRate가 3이었다면 초당 9개의 cell이 생성되는 거..겠죠?


● lifetimeparticles이 있을 때, cell의 lifetime range에 이 값을 곱합니다. 기본값은 1.


자.. 궁금하신 분들이 있었을 겁니다. 

얘는 어디서 내려오는걸까...위에서 아래로밖에 못내려오나..? 나는 왼쪽에서 오른쪽으로 가게하고싶은데...

CAEmitterLayer는 cell들을 렌더링해주어 화면에 뿌려준다고 했었죠? 역시나 당연하게도 "위치"프로퍼티가 존재합니다. 

그 전에 밑에 방출 모양(emission shape)이라고 나올건데, 이거 먼저 보도록 할게요.

Emitter Shape은 방출된 cell의 출처(originate)를 정의하는 1, 2, 또는 3차원의 모양입니다. 모양은 모양은 emitterPosition, emitterZPosition, emitterSize 및 emitterDepth 특성의 서브 세트로 정의됩니다. 



● emitterPosition : 방출 모양(emission shape)의 중심. 기본값은 (0, 0, 0)입니다.

● emitterZPosition : z축을 따라 cell의 emitter Shape중심을 지정합니다. 기본값은 0.0.


● emitterSize : cell emitter Shape의 크기를 결정. emitter크기가 적용되는 방법은 emitter Shape에 따라 다릅니다. emitter Shape의 값에 따라 이 값은 무시될 수 있습니다. 기본값은 0.0입니다. 

● emitterDepthemitter Shape의 깊이를 결정합니다. emitter 깊이가 적용되는 방법은 emitter Shape에 따라 다릅니다. emitter Shape값에 따라 이 값은 무시될 수 있습니다. 기본값은 0.0입니다. 



 ● emitterShape : (위에서 그렇게 말하던 emitter Shape. 이 emitterShape이라는 프로퍼티에 지정해주면 됩니다.) emitter Shape를 지정합니다. emitterMode에 사용할 수 있는 값은 emitter Shape에 표시됩니다. 기본값은 kCAEmitterLayerPoint입니다. 



●  emitterModeemitter Mode를 지정합니다. emitterMode에 가능한 값은 emitterMode에 표시됩니다. 기본값은 kCAEmitterLayerVolume. 


●  renderMode : 레이어가 레이어에 합성되는 방법을 정의하는 문자열(== 입자 Cell을 레이어에 렌더링하는 방법을 정의). 기본값은 kCAEmitterLayerUnordered.




●  preservesDepth : 레이어가 입자를 평면에 평평하게 배치할지 여부를 정의. true인 경우, 레이어의 슈퍼 레이어의 3차원 좌표 직접 있는 것 처럼 입자를 렌더링 합니다. 활성화 하면 레이어의 필터, backgroundFilters 및 섀도우 관련 속성의 효과가 정의되지 않습니다. 기본값은 false입니다. 



....? 왼쪽이 false고..오른쪽이 true입니다.............뭐지...3차원처럼..막 엄청...제가 상상한대로 될 줄 알았는데..크기만 작아짐ㅎ


●  velocity : cel에 정의된 particle velocity에 적용되는 배율을 정의. 기본값은 1.0. 다들 생각하시는대로 크게주면 빨리 내려옵니다. 


●  scale : cell에 정의된 particle scale에 적용되는 배율을 정의. 기본값은 1.0


●  spin : cell에 정의된 particle spin에 적용되는 배율을 정의. 기본값은 1.0


●  seed : 난수 생성기를 초기화 하는데 사용되는 Seed를 지정. 각 레이어는 고유한 난수 생성기 상태를 갖습니다. Cell의 속도와 같은 평균 및 범위로 정의되는 emitter cell속성은, 속성값이 [M - R / 2, M + R / 2] 간격으로 균일하게 분포합니다.

(이게 무슨소리인지...잘 모르겠어요) 얘가 UInt를 받는데...이 받은 값으로 뭘하는거지? 랜덤값을 생성해서 뭘 하는거지..?



이 글을 금방 쓸 줄 알았는데..Shape니..Mode니...정의 된게 엄청 많은데 얘네의 차이를 알고싶어서 엄청 실험을 했어요. 결론은 잘 모르겠다...

emitterShape같은 경우는 String값을 할당해주지만, 안에는 수학적인 수식으로 이루어져있어요.



위 그림은 kCAEmitterLayerLine인데, 근데 여기서 ZPosition을 잘 모르겠어서, 여러가지를 넣어봐도 이게 왜!!! 왜 이 위치에 이렇게 렌더링 되는지 확실하게 이해가 되지 않더라구요.

ㅎ ㅏ.....아시는 분은 알려주시면 정말 감사드리겠습니다..ㅎㅎㅎ....

아무튼 이 글이 emitter를 공부하시는데 도움이 되었으면 좋겠어요 :)

반응형