สีขาวเป็นสีฐานที่ดีที่สุดที่จะเริ่มต้นเมื่อวางแผนที่จะแรเงาภายใน Unity หรือไม่?


10

ฉันกำลังมองหาต้นแบบในเกมใน Unity ซึ่งจะประกอบด้วย sprite / tiles แบบ solid square ฉันคิดว่าฉันสามารถแสดงประเภทของวัตถุที่แตกต่างกันด้วยสีที่แตกต่างกันสำหรับแต่ละกระเบื้องในเกม

ฉันคิดว่าฉันสามารถนำเข้าสไปรต์สี่เหลี่ยมจัตุรัสเดียวและแรเงาได้อย่างเหมาะสมใน Unity เมื่อเทียบกับสี่เหลี่ยมที่นำเข้าที่มีสีแตกต่างกันมากมาย

ประสบการณ์ของฉันในการปรับเฉดสีและความอิ่มตัวของสีใน Photoshop แสดงให้เห็นว่าสีขาวไม่ใช่สีที่ง่ายต่อการเปลี่ยนแปลงเนื่องจากสิ่งที่เป็นสีขาวมักจะเป็นสีขาวอยู่เสมอ การทดสอบของฉันใน Unity แสดงให้เห็นว่าฉันสามารถเปลี่ยน "สี" ของสไปรต์เป็นสิ่งอื่นที่ไม่ใช่สีขาวและสไปรต์นั้นได้รับการแรเงาอย่างเหมาะสมแม้ว่าฉันจะคิดว่าจะได้รับประสบการณ์ Photoshop ของฉันก็ตาม

เนื่องจากวัตถุสีขาวดูเหมือนจะใช้การแรเงาสีที่เหมาะสมเมื่อมีการเปลี่ยนแปลงภายใน Unity ไส้ในของฉันบอกฉันว่านี่เป็นสีเริ่มต้นที่ดีที่สุดซึ่งหมายความว่าฉันสามารถนำเข้าสไปรต์สี่เหลี่ยมจัตุรัสสีขาวเดี่ยวและปรับสีเพื่อแสดงวัตถุต่าง ๆ และวัตถุฯ

สไปรท์สีขาวจริง ๆ แล้วเป็นสไปรต์สีที่ดีที่สุดในการเริ่มต้นและทำไมบางสิ่งเช่นนี้ทำงานใน Unity ซึ่งตรงข้ามกับการปรับเฉดสีและความอิ่มตัวภายใน Photoshop

ป้อนคำอธิบายรูปภาพที่นี่


ก่อนอื่นให้นิยาม "ดีที่สุด"
Krythic

คำตอบ:


13

สีขาวดีที่สุดสีพื้นฐานที่สำหรับการนำเสนอที่แท้จริง การรักษาระดับสีเทาสไปรต์ของคุณสามารถปรับสีได้ง่ายสำหรับทีม ฯลฯ

Unity ใช้Multiplyโหมดผสมผสานกับพื้นผิวและสีสไปรต์

ประเภทสีของ Unity อยู่ในช่วงตั้งแต่ 0 ถึง 1

Color.White(1, 1, 1, 1)เท่ากับ

รู้ว่า1สิ่งที่เวลาเป็นของตัวเอง

หากสีเทาtextureถูกผสมกับColorฟิลด์Sprite Renderer แต่ละพิกเซลจะเป็นของตัวเอง การเปลี่ยนฟิลด์นี้จะเพิ่มค่าระดับสีเทาเท่ากันโดยส่วนประกอบแต่ละส่วนของสี

การย้อมสีสไปรต์


คุณสามารถเล่นด้วยโหมด Multiply ผสมผสานในโปรแกรมแก้ไขรูปภาพที่คุณชื่นชอบเช่น Photoshop หรือ GIMP

ติดตั้ง Photoshop


4

Sprites-Additive.shader - GitHub Gist

สีของ Unity มีค่าทศนิยม 4 แบบตามปกติในหลายรูปแบบสี RGBA ซึ่งสอดคล้องกับค่าสีแต่ละเปอร์เซ็นต์สีแดง, เขียว, น้ำเงินและอัลฟ่าโปร่งใส

เช่นเดียวกับที่กล่าวไว้ข้างต้นค่าเริ่มต้น "สีอ่อน" ที่นำมาใช้โดย Unity คือ Photoshop แบบ shader multiplicative เรียกสายนี้ว่า "Multiply" และกระบวนการนี้จะคูณค่าสีในพิกเซลของเทพดาของคุณด้วยค่าสีที่เลือก

ปัญหาที่เกิดขึ้นคือ shader คณิตศาสตร์สีแบบคูณจะสร้างสีเดียวกัน (ถ้าคุณ "คูณ" ด้วยสีขาว) หรือสีเข้มถ้าคุณคูณด้วยสิ่งอื่น ฉันเจอสถานการณ์ที่ฉันต้องการผลตรงกันข้ามในสถานการณ์ช่างตีเหล็ก โลหะที่อุ่นไม่ควรคูณด้วยสีเหลืองเพื่อให้ได้โทนสีเข้มกว่า:

คูณ shader โดยสีเหลือง

แต่ฉันเขียน shader multiplicative ที่เป็นค่าเริ่มต้นของ Unity ให้เป็นสารเติมแต่ง ผลลัพธ์ได้มากขึ้นตามสิ่งที่ฉันกำลังมองหา:

สารเติมแต่ง Shader

ฉันจะให้ส่วนสำคัญแก่Sprites-Additive.shader ที่เขียนใหม่หากใครสนใจ

นี่คือการอ้างอิงที่ดีเกี่ยวกับคำศัพท์และโหมดสี: http://www.northlite.net/ps/blend.htm


ผู้ใช้ที่ไม่มีชื่อเสียงพอที่จะแสดงความคิดเห็นได้แสดงความสนใจที่จะเห็นรหัส shader สำหรับผลกระทบนี้ คุณยังมีไว้ให้แชร์หรือไม่?
DMGregory

1
เฮ้ตอนนี้ฉันยังไม่พร้อมใช้งาน แต่ฉันจะขุดมันขึ้นมาและรับลิงค์ทันทีที่ฉันสามารถทำได้ คืนนี้ถ้าเป็นไปได้
โจ

2
ฉันนำมันกลับมาฉันพบว่ามันค่อนข้างง่ายและเพิ่มเข้าไปในส่วนสำคัญใน GitHub ของฉัน MAJOR ที่แตกต่างกันอย่างหนึ่งระหว่างสารเติมแต่งและสารเติมแต่งแบบคูณจะจัดการกับความโปร่งใส ในส่วนเสริมฉันตั้งค่าความโปร่งใส 10% เพื่อรักษาอัลฟาสัมพัทธ์ของพิกเซลด้วยค่าอัลฟาต่ำ คุณไม่ต้องกังวลกับเรื่องแบบนี้ใน shader multiplicative เนื่องจากธรรมชาติของคณิตศาสตร์นั้น
โจ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.