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


มีการใช้งานและเวิร์กโฟลว์ที่หลากหลายสำหรับการสร้างเท็กซ์เจอร์ PBR คุณสามารถใช้ในระหว่างการสร้างแบบจำลองและระยะการสร้างเท็กซ์เจอร์ของวัตถุ 3D แบบกำหนดเองได้ ตราบใดที่ Roblox Studio รองรับ แผนที่เท็กซ์เจอร์เฉพาะที่คุณใช้งานอยู่
คู่มือนี้ให้คำแนะนำเกี่ยวกับ การตั้งค่า วัตถุเมชของคุณให้ใช้แผนที่เท็กซ์เจอร์ PBR และอธิบายการใช้งานทั่วไปและแนวปฏิบัติที่ดีที่สุดสำหรับ PBR ที่ Roblox รองรับ แผนที่เท็กซ์เจอร์ เมื่อต้องการสร้างพื้นผิวของคุณเอง ให้ดูที่ อ้างอิงวัสดุ สำหรับค่านวัสดุทั่วไป การเปรียบเทียบภาพ และตัวอย่างเสื้อผ้า
เปิดใช้งานการปรากฏพื้นผิว
คุณสามารถเพิ่มเท็กซ์เจอร์ PBR ลงใน MeshPart ใดๆ โดยการเพิ่มวัตถุ SurfaceAppearance ซึ่งจะเขียนทับเท็กซ์เจอร์ที่กำหนดไว้เดิม โดยทั่วไปแล้ว คุณไม่สามารถแก้ไขพฤติกรรมของ SurfaceAppearance ผ่านสคริปต์ในระหว่างเกมได้ เนื่องจากเอนจินต้องการการประมวลผลล่วงหน้าในการแสดงกราฟิกเหล่านี้ ในการเพิ่มเท็กซ์เจอร์พื้นฐาน ทุกแผนที่ภาพเท็กซ์เจอร์จะต้องชี้ไปยัง ID ของภาพทรัพย์สินที่อัพโหลดที่เหมาะสม
ในการเปิดใช้งานการปรากฏพื้นผิวสำหรับ MeshPart:
ในหน้าต่าง Explorer ให้วางเมาส์เหนือ MeshPart และคลิกที่ปุ่ม ⊕
แทรก SurfaceAppearance จากเมนูบริบท

เมื่อคุณพร้อมที่จะเพิ่มแผนที่เท็กซ์เจอร์ลงในวัตถุ SurfaceAppearance คุณสามารถคลิกที่คุณสมบัติแต่ละแผนที่ในหน้าต่าง Properties และป้อน ID ของทรัพย์สินลงไป
แผนที่เท็กซ์เจอร์
Studio ในปัจจุบันรองรับ 4 ประเภทของแผนที่เท็กซ์เจอร์ PBR: สี, นอร์มอล, ความหยาบ, และ ความเป็นโลหะ แต่ละแผนที่เหล่านี้เชื่อมโยงกับแง่มุมที่สำคัญของการปรากฏพื้นผิวของวัตถุ แผนที่เท็กซ์เจอร์จะเปลี่ยนเฉพาะการปรากฏทางสายตาเท่านั้นและไม่ส่งผลกระทบต่อรูปทรงทางเรขาคณิตของวัตถุ MeshPart
ดูตัวอย่างดังต่อไปนี้เพื่อภาพรวมแผนที่เท็กซ์เจอร์ที่ Roblox รองรับ และแหล่งข้อมูลเพิ่มเติม:
คุณสมบัติ ColorMap ตั้งค่าข้อมูลสีของพื้นผิว รวมถึงความโปร่งใสที่มีอยู่ในแผนที่ ดู สี (albedo) สำหรับข้อมูลเพิ่มเติม



สี (albedo)
สี หรือ albedo แผนที่กำหนดสีของเท็กซ์เจอร์ของคุณและประกอบด้วยข้อมูลสีส่วนใหญ่โดยมีข้อมูลเกี่ยวกับแสงหรือพื้นผิวเพียงเล็กน้อยหรือไม่มีเลย สำหรับการปรับแต่งเพิ่มเติม คุณยังสามารถเพิ่ม ความโปร่งใส ในเท็กซ์เจอร์ albedo ของคุณโดยการเพิ่มความทึบให้กับแผนที่ภาพของคุณ
โหมดอัลฟา
สำหรับวัตถุที่ต้องการความโปร่งใสบางส่วนหรือทั้งหมด เช่น หญ้า ใบไม้ ลวดลาย หรือสติกเกอร์เช่นโคลนหรือเลือด คุณสามารถใช้ โหมดอัลฟา ที่หลากหลายเพื่อใช้ความโปร่งใสกับแผนที่สีของคุณ หากรูปแบบภาพของแผนที่สีของคุณรองรับช่องทางอัลฟา คุณสามารถใช้แผนที่อัลฟาในโทนสีเทาได้ ซึ่ง 0.0 เป็นความโปร่งใส และ 1.0 เป็นความทึบ ในทำนองเดียวกันเมื่อใช้รูปแบบภาพเช่น .png ความทึบใดๆ บนแผนที่สีจะใช้เป็นความโปร่งใสบนทรัพย์สิน
คุณสามารถใช้ความโปร่งใสในรูปแบบพฤติกรรมที่แตกต่างกันสองแบบโดยการตั้งค่า AlphaMode ดังนี้:
- Overlay — Overlay ColorMap ลงบน MeshPart.Color ของเมชเบื้องต้น แผนที่สีที่ใช้โหมด overlay จะเผยให้เห็นสีพื้นฐานของเมชในทุกที่ที่มีความโปร่งใสอยู่ นี่คือการตั้งค่าเริ่มต้น
- Transparency — ลบเมชที่มองเห็นตามความโปร่งใสใน ColorMap ทำให้เมชโปร่งใสและไม่เผยให้เห็นสีเดิมของเมชเมื่อมีความโปร่งใสอยู่
Opaque
คุณสามารถใช้โหมด Enum.AlphaMode.Opaque เพื่อละเลยช่องอัลฟาของ ColorMap โดยสิ้นเชิง ในกรณีนี้ค่าช่องอัลฟาจะถูกตั้งเป็น 1 (ทึบทั้งหมด)
ตัวอย่างต่อไปนี้แสดงให้เห็นว่าโหมด Opaque ทำงานอย่างไรโดยใช้วัตถุสีขาวเป็นอ้างอิง:


Overlay
คุณสามารถใช้ Enum.AlphaMode.Overlay เพื่อเผยให้เห็นส่วนของสีเดิมของเมช เนื่องจากพื้นที่โปร่งใสของแผนที่สีเผยให้เห็นสีพื้นฐานที่อยู่เบื้องล่าง คุณจึงสามารถออกแบบแผนที่เท็กซ์เจอร์ที่เปิดเผยส่วนต่างๆ ของ Color สำหรับโทนสีผิวแบบกำหนดเองหรือสถานการณ์อื่นๆ ที่มีสีที่ไม่ซ้ำกัน
ตัวอย่างต่อไปนี้แสดงให้เห็นว่าโหมด Overlay ทำงานอย่างไรโดยใช้ทรงกลมสีขาวเป็นอ้างอิง:


ตัวอย่างต่อไปนี้ใช้โหมด Overlay สำหรับตัวละครที่กำหนดเอง แสดงให้เห็นถึงโทนสีผิวดั้งเดิมของตัวละคร:


ดูที่ โทนสีผิวที่กำหนดเอง สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการปรับแต่ง overlay สำหรับผิวและการใช้งานที่คล้ายกัน
ความโปร่งใส
คุณสามารถใช้โหมด Enum.AlphaMode.Transparency เพื่อสร้างวัตถุที่ซับซ้อนหรือมีความละเอียดมาก เช่น ลูกไม้หรือผ้าเน็ต โดยการลบส่วนที่มองเห็นของเมชซึ่งเป็นทางเลือกแทนการแกะด้วยเรขาคณิตของเมช เนื่องจากสิ่งนี้ไม่ส่งผลต่อเรขาคณิตของวัตถุเมช จึงทำให้คุณสามารถสร้างวัตถุที่มีรายละเอียดได้โดยไม่ต้องมีผลกระทบต่อประสิทธิภาพจากโมเดลเมชที่ซับซ้อน
ตัวอย่างต่อไปนี้แสดงให้เห็นว่าโปร่งใสบางส่วนและโปร่งใสเต็มที่ในโหมดนี้ลบส่วนของเมชอย่างไร:



มีสองผลลัพธ์จากโหมด Transparency ขึ้นอยู่กับว่าตั้งค่า MeshPart.Transparency เป็น 0 หรือ อย่างน้อย 0.02 แม้ว่าความแม่นยำทางตัวเลขอาจทำให้เกิดค่าต่ำ เช่น 0.01 กระตุ้นความโปร่งใสที่ทึบ
- เมื่อใช้ช่องอัลฟาเพื่อตัดรูปร่างของวัตถุที่โปร่งใสบางส่วนเป็นส่วนใหญ่ที่มีขอบที่คมชัด เช่น พืชพรรณ ผ้าลูกไม้ และตาข่าย ตั้งค่า MeshPart.Transparency เป็น 0 เมื่อติดตั้งพื้นผิวเต็มที่ เอนจิน Roblox สามารถเรนเดอร์ได้ด้วยการพรางตัวตามความลึกที่เหมาะสม วัสดุที่โปร่งใสยังมักทำงานได้ดีกว่ากับเอฟเฟ็กต์ที่ใช้ความลึก เช่น DepthOfFieldEffect, การหักเหของแก้วและน้ำ และการสะท้อนน้ำ
- เมื่อช่องอัลฟาใช้เพื่อเพิ่มรายละเอียดให้กับวัตถุที่มีโปร่งใสบางส่วนหรือวัตถุที่มีเกรดความโปร่งใสที่ลื่นไหล ให้ตั้งค่า MeshPart.Transparency เป็น อย่างน้อย 0.02 สิ่งนี้ปรับปรุงคุณภาพของการผสมสำหรับวัตถุ เช่น หน้าต่างสกปรกและขนนกที่มีขอบอ่อนแฟนซี แต่จะใช้ไม่ได้กับทุกเอฟเฟ็กต์
TintMask
คุณสามารถใช้โหมด Enum.AlphaMode.TintMask เพื่อใช้การเปลี่ยนสี SurfaceAppearance.Color ลงในพื้นที่ที่เลือกของพื้นผิว การเปลี่ยนสีจะมีความเข้มข้นที่สุดเมื่อช่องอัลฟามองเห็นได้ชัดเจนและไม่ถูกนำไปใช้ที่ช่องอัลฟาที่โปร่งใส

การเปลี่ยนสี
คุณสามารถใช้การเปลี่ยนสีในแผนที่สีของคุณโดยการปรับค่าของ SurfaceAppearance.Color การเปลี่ยนสีจะไม่กระทบต่อประสิทธิภาพและคุณสามารถประหยัดหน่วยความจำโดยการนำแผนที่สีเดียวดัดแปลงที่มีการเปลี่ยนสีแตกต่างกัน ใช้การเปลี่ยนสีเพื่อสร้างความหลากหลายของราคาต่ำระหว่างเท็กซ์เจอร์ PBR ของ MeshPart ของคุณหรือเพื่อการดัดแปลงสีพื้นผิว PBR ของคุณในเวลาเรียลไทม์



การเปลี่ยนสี SurfaceAppearance.Color จะใช้เป็นตัวคูณ ดังนั้น การปรากฏสุดท้ายจึงเป็นฟังก์ชันของ Color3 (สี texel) คูณกับ SurfaceAppearance.Color ซึ่งหมายความว่าสร้างแผนที่ SurfaceAppearance.ColorMap โดยใช้สีโทนใกล้ขาวในโทนสีเทาจะสร้างผลการเปลี่ยนสีที่แข็งแกร่งที่สุดเมื่อใช้คุณสมบัตินี้
การเปลี่ยนสีจะใช้เฉพาะกับ SurfaceAppearance.ColorMap และไม่ใช้กับ MeshPart.Color คุณสามารถนำช่องอัลฟามาใช้ต่อไปเมื่อใช้ ความโปร่งใส
เมื่อ SurfaceAppearance.AlphaMode ถูกตั้งเป็น Overlay และมีช่องอัลฟาอยู่ การปรากฏพื้นผิวของ MeshPart.Color จะถูกเปิดเผยและการเปลี่ยนสี SurfaceAppearance.Color จะใช้เฉพาะกับแผนที่สี SurfaceAppearance ที่มองเห็นได้
เมื่อ SurfaceAppearance.AlphaMode ถูกตั้งเป็น TintMask และมีช่องอัลฟาอยู่ ช่องอัลฟาจะควบคุมปริมาณการเปลี่ยนสีของ SurfaceAppearance.Color การเปลี่ยนสียิ่งมีความเข้มข้นที่สุดที่ช่องอัลฟามองเห็นได้อย่างเต็มที่และไม่ถูกใช้ที่ช่องอัลฟาที่โปร่งใส

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



ช่อง R, G, และ B ของภาพจะสอดคล้องกับองค์ประกอบ X, Y, และ Z ของเวกเตอร์พื้นผิวในระดับท้องถิ่น ภาพที่มีสม่ำเสมอของสี [127, 127, 255] แปลเป็นแผนที่ปกติที่ราบเรียบทั้งหมด Roblox รองรับแผนที่ปกติที่เป็น OpenGL format - Tangent Space เท่านั้น
แผนที่นอร์มอลมีผลกระทบที่สำคัญต่อพื้นผิวจิตรกรรมของเมชและสามารถเพิ่มความน่าอึดอัดให้กับซอกของเท็กซ์เจอร์ คุณควรรักษารูปแบบของเท็กซ์เจอร์ให้เรียบง่ายเพื่อหลีกเลี่ยงปัญหาทางสายตากับเมชของคุณ
ความหยาบ
ความหยาบ หรือ ไมโครซัพเฟซ แผนที่กำหนดวิธีที่แสงถูกกระจายไปทั่วพื้นผิวของโมเดลของคุณ เมื่อความหยาบอยู่ที่ 0.0 พื้นผิวจะไม่กระจายแสงเลย ส่งผลให้เกิดการสะท้อนและความเงาที่ยิ่งคมชัดและสว่างขึ้นในวัสดุของคุณ ในขณะที่มีค่า 1.0 แสงและการสะท้อนจะแจกแจงไปทั่วโมเดลส่งผลให้พื้นผิวเป็นแมตต์ที่สะท้อนน้อยลง
ความหยาบอาจส่งผลต่อการสะท้อนของวัตถุในมุมต่างๆ ซึ่งเรียกว่า Fresnel ดู fresnel สำหรับรายละเอียดเพิ่มเติมและแนวปฏิบัติที่ดีที่สุดเพื่อรักษาพฤติกรรมการสะท้อนที่สอดคล้องกัน
ภาพถัดไปแสดงการเปรียบเทียบค่าของแผนที่ความหยาบต่างๆ:



Fresnel
Fresnel หมายถึงปริมาณการสะท้อนของพื้นผิวโดยอิงจากมุมมองในขณะนั้น การประมวลผล Fresnel ของ Studio มุ่งหวังให้เกิดความแม่นยำตามกายภาพในโลกจริง แม้ว่าคุณอาจจะได้รับการตอบสนองที่ไม่คาดคิดที่มุมเฉพาะ แม้กับพื้นผิวที่หยาบในบางกรณี คุณสามารถชดเชยโดยการทำให้แผนที่ความหยาบของคุณอยู่ที่ประมาณ 0.1 มีความหยาบมากขึ้นเพื่อให้บรรลุการตอบสนองการกระจายแสงที่สอดคล้องกันกับวัสดุของคุณ
แม้ว่า Roblox จะเรนเดอร์เอฟเฟ็กต์แสงนี้อย่างแม่นยำ แต่ความสว่างและการสะท้อนของพื้นผิวอาจไม่ตอบสนองอย่างสอดคล้องกันระหว่างซอฟต์แวร์สร้างเนื้อหาที่คุณใช้ เช่น Substance Painter และ Studio ดู ตัวอย่างเสื้อผ้า สำหรับความแตกต่างในการเรนเดอร์ระหว่างแอพลิเคชัน
ความเป็นโลหะ
ความเป็นโลหะ กำหนดการสะท้อนของพื้นผิว ค่าความเป็นโลหะมีช่วงที่ 0.0 ถึง 1.0 Roblox ตั้งค่าเริ่มต้นเป็น 0.0 หากไม่มีแผนที่ความเป็นโลหะอยู่
ดูภาพถัดไปสำหรับการเปรียบเทียบค่าของแผนที่ความเป็นโลหะที่แตกต่างกัน:



ตัวเรนเดอร์ PBR ที่แตกต่างกันใช้เวิร์กโฟลว์ที่หลากหลายในการประมวลผลการสะท้อน Studio ใช้เพียง เวิร์กโฟลว์ความเป็นโลหะ เท่านั้น ซึ่งกำหนดว่าวัสดุเป็น ไม่มีโลหะ หรือ มีโลหะ ซึ่งบางครั้งเรียกว่า ฉนวน หรือ ตัวนำ
ในหลายกรณี คุณควรตั้งค่าค่านี้ให้เป็น 0.0 (ไม่มีโลหะ) หรือ 1.0 (มีโลหะ) คุณสามารถใช้ค่าความเป็นโลหะบางส่วนเมื่อสร้างพื้นผิวที่ไม่ธรรมดาซึ่งมีคุณสมบัติการสะท้อนที่พอประมาณ เช่น ซาตินหรือผ้าไหม การฝึกปฏิบัตินี้สามารถหลอกล่อการสะท้อนในวัสดุเพื่อเน้นสีจาก แผนที่สี/albedo มากกว่าสีที่สะท้อนในสภาพแวดล้อม

