Alfa karışımı ve parçacıkları ile nasıl iyi bir ateş etkisi elde edebilirim?


41

OpenGL partikül efekti için aşağıdaki ayarı kullanın:

SRC: GL_SRC_ALPHA
DST: GL_ONE

Siyah bir arka plan üzerinde muhteşem görünen, beyaza solmaya başladığından daha parlak renkler için korkunç görünen bir katkı karışımı oluşturur.

Sonra alfa harmanlama kullandım:

SRC: GL_SRC_ALPHA
DST: GL_ONE_MINUS_SRC_ALPHA

Bu, partiküllerin rengini etkilemeden diğer arka planların kullanılmasına izin verir, fakat partiküllerin katkı maddesi karışımına kıyasla donuk görünüyorlar. Alfa karışımı ve parçacıkları ile nasıl iyi bir ateş etkisi elde edebilirim?

Katkı:

Siyah üzerine katkı Mavi üzerine katkı

Alfa:

Siyah üzerine alfa Mavi üzerinde alfa

GÜNCELLEME:

David'in aşağıdaki tavsiyesini takiben, ayrı bir doku oluşturdum ve daha sonra doku üzerine çizim yapmadan önce partikül efekti üzerinde ilave karışım kullandım. Bununla ilgili sorun, alfa = 0 doku üzerine çizilmesinin, dünya haritasımın önünde görünen parçanın sadece renkli kısımlarına yol açmasıydı, çünkü normalde bunun yerine siyah bir arka plana sahipsiniz. İşin püf noktası iki doku kullanmaktı. Siyah bir doku yarattım ve üzerine parçacıkları çizdim. Daha sonra, parçacıkların alfa katmanını bu dokudan çıkardım, tüm çevreleyen katı siyahı etkin bir şekilde uzaklaştırdım ve kısmen görünür olan parçacıkları solurken, altta kalan siyahı, siyah bir arka plan üzerinde ilave karışım parçacıkları yaparken beklediğiniz gibi bıraktım. Kısacası, yorucu bir süreç, ama sonunda oraya vardım:

Düzenli katkı ve sürümüm

İşlemimi yolladığım konu şudur: http://www.cocos2d-iphone.org/forum/topic/28707?replies=8#post-141528

Video: http://www.youtube.com/watch?v=JptGbEO3b5E

Yanıtlar:


17

Bu sorun için herhangi bir ideal çözümün farkında olmadığımı itiraf ediyorum, bu yüzden rahat edebileceğiniz veya rahat edemeyeceğiniz bir çözümü açıklayacağım:

  1. Kullanan tüm parçacık oluşturulma ilave karıştırma a ayrı doku (veya hedef oluşturma) arka planı için temizlenmiş olan şeffaf .
  2. Alfa harmanlamayı kullanarak bu dokuyu sahnenin üstüne getirin (veya hedefleyin) .

Photoshop'ta denedim ve elde ettiklerim - Mükemmel değil, ama en azından orijinal renkleri daha iyi koruyor:

görüntü tanımını buraya girin

İşte partiküller üzerine ilave karışım yapmadan orijinal doku:

görüntü tanımını buraya girin


Bu onları iki dokuya ayırır ve sanki katkı maddesi karışımının dokusunu bir arka plana çiziyormuş gibi olur muydum?
Aram Kocharyan

@AramKocharyan Aslında sonuçların makul göründüğü Photoshop dışında kişisel olarak denemedim. Ama bence ilk fotoğrafın gibi görünmeli ama arka plan renginin yerini aldığı siyahların hepsi. Başka bir deyişle, partiküller bir araya getirilir , patlamanın ortasında büyük vurguyla sonuçlanır, fakat arka plan ile değil Ardından ortaya çıkan patlama, orijinal görünümü koruyan ekleme yapmadan arka planınızın üzerine yapıştırılır .
David Gouveia

Bu mantıklı bir teşekkür, tıpkı Photoshop'ta bir kaplamaya karşı normal bir karışım gibi, ancak arka plan katmanı üzerinde oturan bir kaplama görüntüsüne benziyor. Ben deneyeceğim ve size haber vereceğim.
Aram Kocharyan

@AramKocharyan Ben birkaç dakika içinde photoshop içinde aldığım sonuçları gönderir, böylece karşılaştırabilirsiniz.
David Gouveia

5
Sadece bunu fırlatıp atmak - bu teknik performans endişelerini artırabilir ...
05 Ocak'ta


4

David Gouveia'nın belirttiği gibi, aydınlık arka planlarda ilave karıştırma için tatmin edici bir yedek yoktur. Bulduğum en iyi etki (bir backbuffer'a render yapmak gibi bir şey gerektirmeyen) aşağıdaki GL karışım modunu kullanmak:

SRC: GL_ONE
DST: GL_ONE_MINUS_SRC_ALPHA

Katkı maddesi harmanlama kadar hoş değil, ama daha iyi GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA. Başlangıç ​​ve bitiş alfa ve renk değerlerini biraz değiştirirseniz, katkı maddesi karışımına gerçekten çok yakın sonuçlar alabilirsiniz.

parçacık harmanlama modları

Yukarıdaki resimde GL_SRC_ALPHA, GL_ONEsolda, ortada GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHAve sağda bu kurulum için önerdiğim karışım modunu görebilirsiniz.


Renk üzerinde tam kontrol sağlamak için bu yöntemin harika çalıştığını kabul ediyorum.
Aram Kocharyan

Sadece not etmek gerekirse, bu yöntemle yangını söndürmenin en iyi yolunun sıfıra inmesini sağlamak olduğunu, alfaların azalmasının beyaza dönmesine neden olduğunu fark ettim.
Aram Kocharyan,

3

İkisini de kullanmayı denedin mi? Renkleri istediğiniz gibi alması gereken, alfa harmanlamalı bazı parçacıklar üzerine yerleştirin, daha sonra aradığınız güzel vurgu için bazı katkı maddeleri harmanlama işlemlerine geri dönün.


Bu bir sonraki seçeneğim olabilir, parçacıkları minimumda tutmak istiyorum. Umarım ikisinin de yarısını alabilirim.
Aram Kocharyan

3

İlk olarak, kullandığınız parçacık görüntülerinin siyah arka planı varmış gibi görünmekte ve bu da ikinci görüntüde koyu saçaklara neden olmaktadır. Bunu yapma; yani, parçanın şeklini renk kanallarına çizmeyin. Bunun yerine, görüntü tamamen renkli olmalı ve yalnızca alfa kanalındaki şekli tanımlamalıdır.

Bunu yapmak, alfa şeffaflığının görünümünü önemli ölçüde geliştirir. Daha sonra, partiküllerin ömürleri boyunca renk değiştirmesini sağlayarak genel etkinin görünümünü daha da iyileştirebilirsiniz. Gibi, temel görüntü çok parlak, bu merkezi parlak sarı alan verir. Sonra parçacıkları turuncu kırmızımsı renklendirin ve zamanla renk tonunu arttırın. Bu şekilde parçacıklar merkezden uzaklaştıkça kararıyorlar.


Evet, doku yalnızca alfa merkezden değişen beyaz renkli bir fırçadır.
Aram Kocharyan

huh, eğer bu doğruysa, alfa şeffaflık ekranınızın parçacıkların etrafındaki karanlık halelere sahip olması benim için garip.
Ocak'ta atıyor

Evet, alfa karışımı çevresinde neden oluştuklarından emin değilim. Ama şimdi sahip olduklarım için, iyi görünüyor.
Aram Kocharyan


Bu oldukça iyi görünüyor, bunu soru güncellemenize eklemelisiniz.
Ocak'ta
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.