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
답변
나는이 문제에 대한 이상적인 해결책을 모른다는 것을 인정한다. 그래서 나는 당신이 익숙하지 않을 수도있는 해결 방법을 설명 할 것이다.
- 추가 혼합 을 사용하여 모든 입자를 배경을 투명하게 하여 별도의 텍스처 (또는 렌더링 대상)로 렌더링 합니다.
- 알파 블렌딩을 사용하여 장면 위에 해당 텍스처를 렌더링하거나 대상을 렌더링 합니다 .
나는 그것을 Photoshop에서 사용해 보았고 여기에 내가 가진 것이 있습니다. 완벽하지는 않지만 최소한 원래 색상을 더 잘 보존합니다.
파티클에 부가적인 블렌딩을하지 않는 오리지널 텍스처입니다 :
답변
미리 곱한 알파를 살펴보십시오.
http://blogs.msdn.com/b/shawnhar/archive/2009/11/07/premultiplied-alpha-and-image-composition.aspx
답변
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
오른쪽이 있으며이 설정에 대해 제안 할 블렌드 모드를 볼 수 있습니다.
답변
둘 다 사용해 보셨습니까? 알파 블렌딩으로 일부 입자를 레이어링하여 원하는 방식으로 색상을 얻은 다음 추가 블렌딩으로 돌아와서 원하는 하이라이트를 얻을 수 있습니다.
답변
먼저, 사용중인 입자 이미지가 검은 색으로 나타나 두 번째 이미지의 어두운 부분이 나타납니다. 그렇게하지 마십시오. 즉, 색상 채널에 입자 모양을 그리지 마십시오. 대신 이미지는 단색으로 표시되고 알파 채널의 모양 만 정의해야합니다.
그렇게하면 알파 투명도의 모양이 상당히 향상됩니다. 그런 다음 입자의 수명 동안 색상이 변하게함으로써 전체 효과의 모양을 더욱 향상시킬 수 있습니다. 기본 이미지는 매우 밝아서 중앙의 밝은 노란색 영역을 제공합니다. 그런 다음 입자를 적색을 띤 주황색으로 착색하고 시간이 지남에 따라 색조를 증가시킵니다. 그렇게하면 입자가 중앙에서 멀어 질수록 어두워집니다.