알파 블렌딩 및 파티클로 어떻게 좋은 화재 효과를 얻을 수 있습니까?


41

OpenGL 입자 효과에 다음 설정 사용 :

SRC: GL_SRC_ALPHA
DST: GL_ONE

검정색 배경에서는 훌륭해 보이지만 흰색으로 희미 해지기 시작하면 밝은 색상에서는 끔찍한 추가 블렌드를 만듭니다.

그런 다음 알파 블렌딩을 사용했습니다.

SRC: GL_SRC_ALPHA
DST: GL_ONE_MINUS_SRC_ALPHA

이것은 입자의 색에 영향을 미치지 않고 다른 배경을 사용할 수 있지만, 입자 자체는 첨가제 블렌드에 비해 흐릿하게 보입니다. 알파 블렌딩 및 파티클로 좋은 화재 효과를 얻으려면 어떻게해야합니까?

첨가물:

블랙에 첨가제 파랑에 첨가물

알파 :

블랙 알파 파랑에 알파

최신 정보:

아래의 David의 조언에 따라 별도의 텍스처를 만든 다음 텍스처에 그리기 전에 입자 효과에 첨가제 블렌드를 사용했습니다. 그 문제는 알파 = 0 텍스처에 그림을 그릴 때 입자의 채색 부분이 내 세계지도 앞에 나타납니다. 보통 검은 배경이 있기 때문입니다. 트릭은 두 개의 텍스처를 사용하는 것이 었습니다. 검은 질감을 만든 다음 입자를 그렸습니다. 그런 다음이 텍스처에서 입자의 알파 레이어를 제거하여 주변의 모든 검은 색을 효과적으로 제거하고 부분적으로 보이는 입자를 페이드 아웃하면서 검정색 배경에 첨가제 블렌드 입자를 만들 때 예상대로 기본 검은 색을 그대로 둡니다. 요컨대, 힘든 과정이지만 결국 그곳에 도착했습니다.

일반 첨가제 및 내 버전

여기 내 프로세스를 게시 한 스레드가 있습니다 : http://www.cocos2d-iphone.org/forum/topic/28707?replies=8#post-141528

비디오 : http://www.youtube.com/watch?v=JptGbEO3b5E

답변:


17

나는이 문제에 대한 이상적인 해결책을 모른다는 것을 인정한다. 그래서 나는 당신이 익숙하지 않을 수도있는 해결 방법을 설명 할 것이다.

  1. 추가 혼합 을 사용하여 모든 입자를 배경을 투명하게 하여 별도의 텍스처 (또는 렌더링 대상)로 렌더링 합니다.
  2. 알파 블렌딩을 사용하여 장면 위에 해당 텍스처를 렌더링하거나 대상을 렌더링 합니다 .

나는 그것을 Photoshop에서 사용해 보았고 여기에 내가 가진 것이 있습니다. 완벽하지는 않지만 최소한 원래 색상을 더 잘 보존합니다.

여기에 이미지 설명을 입력하십시오

파티클에 부가적인 블렌딩을하지 않는 오리지널 텍스처입니다 :

여기에 이미지 설명을 입력하십시오


이것이 두 개의 텍스쳐로 분리되고 배경에 첨가 블렌드의 텍스쳐가있는 것처럼됩니까?
Aram Kocharyan

@AramKocharyan 실제로 결과가 합리적으로 보이는 Photoshop 이외의 다른 방법으로는 시도하지 않았습니다. 그러나 나는 그것이 첫 번째 사진 처럼 보이지만 모든 검은 색이 배경색으로 대체 되어야한다고 생각합니다 . 다시 말해, 입자들이 합쳐져 폭발의 중간에 큰 하이라이트가되지만 배경은 아닙니다 . 그런 다음 결과 폭발 을 추가하지 않고 배경 위에 붙여 넣어 원래 모양을 유지합니다.
David Gouveia

감사합니다. Photoshop의 일반적인 블렌드와 오버레이와 비슷하지만 배경 레이어 위에 놓인 오버레이의 이미지처럼 보입니다. 시도하고 알려 드리겠습니다.
Aram Kocharyan

@AramKocharyan 몇 분 안에 포토샵에서 얻은 결과를 게시하여 비교할 수 있습니다.
David Gouveia

5
이 문제를 해결하기 만하면이 기술이 성능 문제를 일으킬 수 있습니다.
notlesh


4

David Gouveia가 지적했듯이 밝은 배경에서 첨가제 혼합을 대체할만한 만족스러운 것은 없습니다. 내가 찾은 가장 좋은 효과는 (백 버퍼로 렌더링하는 것과 같은 것이 필요하지 않음) 다음 GL 블렌드 모드를 사용하는 것입니다.

SRC: GL_ONE
DST: GL_ONE_MINUS_SRC_ALPHA

첨가제 블렌딩만큼 좋지는 않지만 GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA. 시작 및 끝 알파 및 색상 값을 약간 조정하면 실제로 첨가제 혼합에 가까운 결과를 얻을 수 있습니다.

입자 혼합 모드

위의 이미지 GL_SRC_ALPHA, GL_ONE에는 왼쪽이 있고 가운데에는 GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA오른쪽이 있으며이 설정에 대해 제안 할 블렌드 모드를 볼 수 있습니다.


색상을 완전히 제어하려면이 방법이 효과적이라는 데 동의합니다.
Aram Kocharyan

참고로,이 방법을 사용하면 화재를 퇴색시키는 가장 좋은 방법은 알파를 줄이면 흰색으로 희미 해지 기 때문에 크기를 0으로 줄이는 것입니다.
Aram Kocharyan

3

둘 다 사용해 보셨습니까? 알파 블렌딩으로 일부 입자를 레이어링하여 원하는 방식으로 색상을 얻은 다음 추가 블렌딩으로 돌아와서 원하는 하이라이트를 얻을 수 있습니다.


다음 옵션이 될 수도 있습니다. 파티클을 최소로 유지하고 싶습니다. 잘만되면 나는 둘 다 반 수 있습니다.
Aram Kocharyan

3

먼저, 사용중인 입자 이미지가 검은 색으로 나타나 두 번째 이미지의 어두운 부분이 나타납니다. 그렇게하지 마십시오. 즉, 색상 채널에 입자 모양을 그리지 마십시오. 대신 이미지는 단색으로 표시되고 알파 채널의 모양 만 정의해야합니다.

그렇게하면 알파 투명도의 모양이 상당히 향상됩니다. 그런 다음 입자의 수명 동안 색상이 변하게함으로써 전체 효과의 모양을 더욱 향상시킬 수 있습니다. 기본 이미지는 매우 밝아서 중앙의 밝은 노란색 영역을 제공합니다. 그런 다음 입자를 적색을 띤 주황색으로 착색하고 시간이 지남에 따라 색조를 증가시킵니다. 그렇게하면 입자가 중앙에서 멀어 질수록 어두워집니다.


예, 질감은 중앙에서 알파가 변하는 흰색 브러시입니다.
Aram Kocharyan

허, 그것이 사실이라면 알파 투명도 스크린 샷에 입자 주위에 어두운 후광이 있다는 것이 이상합니다.
jhocking

예, 왜 알파 블렌딩을 중심으로 형성되었는지 잘 모르겠습니다. 그러나 내가 지금 가진 것에 대해서는 괜찮습니다.
Aram Kocharyan


그것은 꽤 좋아 보인다, 당신은 당신의 질문 업데이트에 넣어야합니다.
jhocking 2012 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.