Birlik içindeki spriteları gölgelendirmeyi planlarken, beyaz başlangıç ​​için en iyi temel renk midir?


10

Unity'de sağlam kare sprite / fayanslardan oluşan bir oyun prototipini arıyorum. Oyundaki karoların her biri için farklı renklere sahip farklı nesne türlerini temsil edebileceğimi düşünüyorum.

Tek bir kare grafiti içe aktarabildiğimi ve birçok farklı renkteki ithal karelerin aksine Birlik'te uygun bir şekilde gölgeleyebileceğimi düşünüyorum.

Photoshop'ta renk tonunu ve doygunluğu ayarlama deneyimim, beyazın sık sık beyaz kaldığı için beyazın değiştirilmesi kolay bir renk olmadığını gösteriyor. Unity'deki testim, bir sprite'ın "rengini" beyazdan başka bir şeye değiştirebileceğimi gösteriyor ve sprite, Photoshop deneyimim göz önüne alındığında düşündüğüm şeylere rağmen uygun şekilde gölgeli görünüyor.

Beyaz nesneler Unity içinde değiştiğinde uygun renk gölgelemesini aldığından, bağırsaklarım bununla başlamak için en iyi temel renk olduğunu söylüyor, yani tek bir beyaz kare sprite alabilir ve farklı nesneleri temsil edecek şekilde rengi ayarlayabilirim ve nesne durumları.

Beyaz bir hareketli grafik aslında başlangıç ​​için en iyi renkli hareketli grafiktir ve neden böyle bir şey Photoshop'ta renk tonunu ve doygunluğu ayarlamak yerine Unity'de çalışır?

resim açıklamasını buraya girin


İlk olarak "en iyi" yi tanımlayın.
Krythic

Yanıtlar:


13

Beyaz, gerçek temsil için en iyi temel renktir. Ayrıca hareketli grafiğinizin gri tonlarında tutulması, takımlar vb. İçin bazı kolay renk ayarlamaları yapabilir.

Unity hareketli grafik dokusuna ve rengine bir Multiplykarışım modu uygular .

Unity'nin Renk türü 0 ile 1 arasındadır.

Beyaz renk eşittir (1, 1, 1, 1).

Zamanın bir 1şey olduğunu bilmek kendisidir.

Gri tonlama textureSprite Oluşturucu Coloralanıyla karıştırılırsa , her piksel kendisidir. Bu alanın değiştirilmesi, her bir gri tonlama değerini rengin her bir bileşeniyle çarpacaktır.

Bazı sprite renklendirme


Photoshop veya GIMP gibi favori görüntü düzenleyicinizde Çarpma harmanlama moduyla oynayabilirsiniz.

Photoshop Kurulumu


4

Sprites-Additive.shader - GitHub Gist

Birlik renkleri, bireysel yüzde renk değerlerine karşılık gelen Kırmızı, Yeşil, Mavi ve Alfa saydamlık kanalına karşılık gelen birçok RGBA renk formatına özgü 4 kayan değere sahiptir.

Ayrıca yukarıda belirtildiği gibi, Unity tarafından uygulanan varsayılan "Renk Tonu" çarpımsal bir gölgelendiricidir Photoshop bu efekti "Çarp" olarak adlandırır ve işlem, hareketli grafiğinizin piksellerindeki renk değerlerini seçilen renk değeri ile tam anlamıyla çarpmaktadır.

Buradaki problem, Çarpıcı bir renk matematik gölgelendiricisi HER ZAMAN aynı tonu (beyazla "çarptığınızda") veya başka bir şeyle çarptığınızda daha koyu renk üretecektir. Demirci tipi bir durumda tam tersi bir etki yaratmak istediğim duruma rastladım. Isıtmalı metal, daha koyu bir ton elde etmek için Sarı ile çarpılmamalıdır:

sarı tarafından çoklayıcı gölgelendirici

Bunun yerine, Unity'nin varsayılan çoğaltıcı gölgelendiricisini bir katkı maddesi olarak yeniden yazdım. Sonuçlar daha aradığım şey boyunca oldu:

katkı maddesi gölgelendirici

Eğer ilgilenen varsa yeniden yazılan Sprites-Additive.shader'a bir özet vereceğim .

Renk terminolojisi ve modları hakkında iyi bir referans: http://www.northlite.net/ps/blend.htm


Yorum yapmak için yeterli üne sahip olmayan bir kullanıcı, bu etki için gölgelendirici kodunu görmeye ilgi duyduğunu ifade etti. Hala paylaşmaya hazır mısınız?
DMGregory

1
Hey, şimdi hazır değilim, ama kazıp en kısa sürede bir bağlantı alacağım. Bu gece mümkünse.
Joe

2
Bunu geri alıyorum, nispeten kolay buldum ve GitHub'ımdaki bir Gist'e ekledim. Bir katkı maddesi ve çarpımsal gölgelendirici arasındaki başlıca fark, şeffaflık ile ilgilidir. Ek gölgelendiricide, düşük alfa değerlerine sahip göreli piksel alfa düzeyini korumak için% 10 şeffaflık kesme ayarladım. Bu matematiğin doğası gereği, çarpımsal bir gölgelendiricide bu tür şeyler için endişelenmenize gerek yok.
Joe
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.