การจัดแสงสำหรับเกมมือถือด้วย Unity

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

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

เนื้อหาบางส่วนของบทความนี้อิงตามผลงานที่ Arm Limited เป็นผู้มีส่วนร่วมและเป็นเจ้าของลิขสิทธิ์

ตัวเลือกไปป์ไลน์การแสดงผล

Render Pipeline เดิมของ Unity มีเส้นทางการเรนเดอร์ต่อไปนี้

  • การแสดงผลแบบส่งต่อ
  • การแรเงาแบบเลื่อน

การแสดงผลแบบส่งต่อ

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

การแรเงาแบบเลื่อน

Deferred Shading ต้องได้รับการรองรับจาก GPU ในฮาร์ดแวร์ที่เข้ากันได้ การแรเงาแบบเลื่อนเวลา สามารถแสดงผลแสงแบบเรียลไทม์จำนวนมากที่มีความเที่ยงตรงของแสง สูง อย่างไรก็ตาม การแรเงาแบบเลื่อนเวลาทำงานได้ไม่ดีใน GPU ของอุปกรณ์เคลื่อนที่ เนื่องจากมีแบนด์วิดท์ต่ำกว่า

เมื่อสร้างเกมบนอุปกรณ์เคลื่อนที่ สิ่งสำคัญคือเกมต้องทำงานได้อย่างราบรื่นบนอุปกรณ์ให้ได้มากที่สุด

ไปป์ไลน์การแสดงผลแบบสากล

Unity ได้พัฒนา Universal Render Pipeline (URP) เราขอแนะนำให้คุณใช้ URP สำหรับเกมบนอุปกรณ์เคลื่อนที่

โหมดสว่าง

โหมดแสงต่างๆ จะใช้ตามวิธีที่แสงเคลื่อนที่หรือใช้ในฉาก โหมดสว่างมีลักษณะด้านประสิทธิภาพที่แตกต่างกัน เมื่อติดตั้งใช้งาน ไฟ ให้พิจารณาสิ่งต่อไปนี้

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

โปรดอ่านข้อมูลเพิ่มเติมที่ไปป์ไลน์การจัดแสงของ Unity

ใช้แสงแบบคงที่และหลีกเลี่ยงแสงแบบไดนามิกเมื่อเป็นไปได้

ระบบจะคำนวณและอัปเดตแสงแบบไดนามิกหรือแบบเรียลไทม์ทุกเฟรม ซึ่งเหมาะสำหรับการเคลื่อนย้ายออบเจ็กต์ การโต้ตอบ และการสร้างอารมณ์

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

การอบไลท์แมป

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

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

รูปที่ 1 การตั้งค่าแสงที่ผ่านการประมวลผลทั้งหมดที่ใช้ในการสาธิตเทคโนโลยีของ Armies

หากต้องการอบแสง ให้ทำตาม 3 ขั้นตอนต่อไปนี้

ขั้นตอนที่ 1: ตั้งค่าแสงเป็นแบบผสมหรือแบบอบ

ตั้งค่าโหมดของแสงเป็นแบบผสมหรือแบบอบ สำหรับเกมบนอุปกรณ์เคลื่อนที่ วิธีที่ดีที่สุดคือ การใช้แสงที่อบแทนแสงแบบผสม การอบเป็นวิธีที่ประหยัดที่สุดในการแสดงผล แสง

รูปที่ 2 การตั้งค่าโหมดของแสงใน Unity

ขั้นตอนที่ 2 ทำให้ออบเจ็กต์เป็นแบบคงที่

ทำให้ออบเจ็กต์ที่ได้รับผลกระทบจากแสงที่อบเป็นคงที่ มี การเพิ่มประสิทธิภาพมากมายสำหรับออบเจ็กต์ที่ทำเครื่องหมายเป็นแบบคงที่ แต่โดยปกติแล้วควรเลือกทั้งหมดในรายการแบบเลื่อนลงคงที่ เมื่อทำเครื่องหมายออบเจ็กต์เป็น Static แล้ว Unity จะทราบว่าต้องรวมออบเจ็กต์นั้นไว้ในการอบแสง

รูปที่ 3 ตัวอย่างเมนูแบบคงที่

ขั้นตอนที่ 3 การอบแสง

คุณสามารถอบแสงได้โดยใช้เมนูแสงที่อยู่ในหน้าต่าง > การแสดงผล > การตั้งค่าแสง

เมื่ออบแสง ข้อมูลที่บันทึกจะอิงตามฉากที่ใช้งานอยู่เมื่อคุณเริ่มอบ ระบบจะสร้างโฟลเดอร์ที่มีชื่อเดียวกันกับ Scene ที่อบ โฟลเดอร์นี้จะจัดเก็บคอมโพเนนต์ทั้งหมดสำหรับข้อมูลแสง หากโปรเจ็กต์โหลดหลายฉากพร้อมกัน คุณต้องอบแสงสำหรับแต่ละฉาก หากปรับฉาก คุณต้องอบแสงอีกครั้ง

รูปที่ 4 ตัวอย่างไลท์แมปที่อบ

เพิ่มประสิทธิภาพไลท์แมป

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

ในตัวอย่างต่อไปนี้จากเดโมกองทัพ มีไลท์แมปขนาด 1024x1024 พิกเซล 7 รายการ ในตัวอย่างแผนที่ คุณจะเห็นตาข่ายที่วางบนไลท์แมป ระบบจะไฮไลต์ตาข่ายที่เลือก

รูปที่ 5 นี่คือตัวอย่างไลท์แมป ส่วนสีน้ำเงินคือเมชที่เลือก

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

Lightmappers

Unity มี 3 วิธีต่อไปนี้ในการ Bake แสงในฉาก

  • Enlighten: รองรับจนถึงรุ่นการสนับสนุนระยะยาว (LTS) ปี 2020 เท่านั้น อย่าใช้ฟีเจอร์นี้กับโปรเจ็กต์ใหม่
  • CPU แบบเพิ่มทีละส่วน: ช่วยประหยัดเวลาได้มากเนื่องจากจะสร้าง แผนที่แสงแบบเพิ่มทีละส่วน หากเลือกจัดลําดับความสําคัญของมุมมอง ระบบจะจัดลําดับความสําคัญของพื้นที่ในมุมมองฉาก ซึ่งจะช่วยลดเวลาในการทำซ้ำเพื่อตั้งค่าแสงของฉาก
  • GPU แบบโปรเกรสซีฟ: ทำงานเหมือนกับ CPU แบบโปรเกรสซีฟ แต่จะสร้างไลท์แมปใน GPU แทน CPU ในฮาร์ดแวร์ที่รองรับ วิธีนี้จะช่วย ลดเวลาในการอบได้อย่างมากเมื่อเทียบกับการใช้ CPU มีข้อกำหนดเพิ่มเติมในการตั้งค่า GPU แบบโพรเกรสซีฟ ดูข้อมูลเพิ่มเติม เกี่ยวกับข้อกำหนดในหน้า The Progressive GPU Lightmapper

รูปที่ 6 การตั้งค่า Lightmapper ช่วยให้คุณเปลี่ยนวิธีการ Bake สำหรับ Scene ได้

Texels

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

หากต้องการลดปริมาณข้อมูลไลท์แมปที่จำเป็น ให้ปรับจำนวนเท็กเซลต่อ หน่วยของการอบในการตั้งค่าไลท์แมป

รูปที่ 7 การตั้งค่าที่มีให้ใช้งานสำหรับไลท์แมป

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

รูปที่ 8 ลูกบาศก์แรกมีความละเอียดของไลท์แมปเท่ากับ 1 คิวบ์ที่ 2 มีความละเอียดของไลท์แมปเป็น 2 ลูกบาศก์ที่ 3 มีความละเอียดของไลท์แมปเป็น 5

หากต้องการดูว่าเทกเซลจัดวางในฉากอย่างไร ให้เลือกเมนูแบบเลื่อนลงโหมดวาดในมุมมองฉาก แล้วเลือกไลต์แมปที่อบแล้ว

ออบเจ็กต์ที่อบจะแสดงทับด้วยลายตารางหมากรุก รูปแบบตารางหมากรุก แสดงการกระจายเทกเซลเมื่อคุณเบกแสง

ในตัวอย่างต่อไปนี้ การลดความละเอียดของไลท์แมปจาก 15 เป็น 12 ในเดโม Armies จะช่วยลดจำนวนไลท์แมปที่จำเป็นจาก 7 เป็น 4

รูปที่ 9 การสาธิตกองทัพที่มีความละเอียดของไลท์แมปเป็น 12

การใช้งาน Texel

แม้ว่าคุณจะตั้งค่าจำนวนเทกเซลต่อหน่วยในทั้งฉากได้ แต่ก็มักจะมีออบเจ็กต์บางอย่างที่ไม่จำเป็นต้องใช้เทกเซลจำนวนมากขนาดนั้น

Unity ช่วยให้คุณควบคุมจำนวนเทกเซลที่ออบเจ็กต์แต่ละรายการใช้ได้ ใน Inspector > Mesh Renderer สำหรับออบเจ็กต์ ค่าพารามิเตอร์ Scale In Lightmap จะควบคุมจำนวนเท็กเซลที่ออบเจ็กต์ใช้ในไลท์แมป

ในตัวอย่างต่อไปนี้ ลูกบาศก์ทางด้านซ้ายมีเทกเซลข้อมูลแสง 5 รายการ ต่อหน่วยการอบ ช่องทางด้านขวามีการตั้งค่า Scale In Lightmap เป็น 0.5 การตั้งค่า ดังกล่าวจะปรับขนาดเทกเซลของแสงเป็น 2.5 ซึ่งใช้พื้นที่ใน ไลท์แมปน้อยกว่ากล่องทางด้านซ้าย

รูปที่ 10 ลูกบาศก์ 2 ลูกที่มีความละเอียดของไลท์แมปแตกต่างกัน

รูปที่ 11 คุณเปลี่ยนการตั้งค่าปรับขนาดในไลท์แมปเพื่อให้ออบเจ็กต์มีเทกเซลน้อยลงได้

พยายามหลีกเลี่ยงการใช้เทกเซลกับสิ่งต่อไปนี้

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

ใช้แสงปลอมให้มากที่สุด

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

เงาปลอม

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

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

  • ใช้เมช 3 มิติ เช่น ระนาบหรือสี่เหลี่ยมจัตุรัส วางไว้ใต้ตัวละคร แล้วใช้ เท็กซ์เจอร์เบลอ
  • คุณเขียนเชดเดอร์ที่กำหนดเอง เพื่อสร้างเงาหยดน้ำที่ซับซ้อนมากขึ้นได้

ตัวอย่างต่อไปนี้แสดงผลลัพธ์หากคุณใช้เมช 3 มิติสำหรับเงา

รูปที่ 12 การใช้งานเงาในเดโมเทคโนโลยีของ Armies

ระบายสีข้อมูลแสงบนพื้นผิวโดยตรง

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

โพรบวัดแสง

เมื่อใช้ออบเจ็กต์แบบไดนามิกกับแสงที่อบแล้ว ออบเจ็กต์จะไม่ได้รับผลกระทบจาก ไลท์แมป ซึ่งอาจทำให้พวกเขารู้สึกว่าไม่ได้เป็นส่วนหนึ่งของ Scene

คุณแก้ไขปัญหานี้ได้ด้วย Light Probe Light Probe มีประโยชน์คล้ายกับ Lightmap โดยจะจัดเก็บข้อมูลขนาดเล็กที่คำนวณล่วงหน้าและบันทึกไว้ เพื่อใช้ในรันไทม์ ซึ่งจะย้ายต้นทุนด้านการคำนวณส่วนใหญ่ไปที่เวลาแก้ไข

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

Light Probe เหมาะที่สุดสำหรับการให้แสงแก่วัตถุที่เคลื่อนไหวใน Scene โพรบ ใช้ประโยชน์จากแสงที่อบไว้ ซึ่งช่วยให้วัตถุที่เคลื่อนไหวมี แสงเหมือนกับฉาก การให้แสงแก่วัตถุไดนามิกด้วย Light Probe จะมีค่าใช้จ่ายน้อยกว่าแสงแบบเรียลไทม์

ดูข้อมูลเพิ่มเติมได้ที่หน้า การปรับแสงแบบคงที่ด้วย Light Probe และLight Probe

รูปที่ 13 วางโพรบแสงเพื่อส่องสว่างฝูงชนแบบไดนามิกในเดโมเทคโนโลยีของกองทัพ

การตั้งค่าโปรแกรมแสดงผล Mesh

ไม่ว่าฉากจะใช้แสงประเภทใด สิ่งสำคัญคือการตั้งค่า Mesh Renderer ต้องถูกต้อง

ปิดสิ่งที่คุณไม่ได้ใช้ การตั้งค่า เช่น Cast Shadows จะเพิ่มต้นทุนเมื่อ คุณเรนเดอร์ฉากแม้ว่าออบเจ็กต์จะไม่มีแสงสว่างก็ตาม ตัวอย่างการตั้งค่า Mesh Renderer ต่อไปนี้ใช้สำหรับอักขระที่แสดงในรูปที่ 13 ตัวละคร ใช้ข้อมูลพร็อบแสง แต่ไม่ใช่พร็อบการสะท้อน

การตั้งค่า Blend Probes สำหรับ Light Probe จะผสมข้อมูลแสงจาก Light Probe ที่ใกล้ที่สุดกับตัวละคร เมื่อตัวละครเคลื่อนที่ไปรอบๆ ฉาก โพรบแสงที่ส่งผลต่อตัวละครจะเปลี่ยนไป เงาถูกปิดเนื่องจากเครื่องมือแสดงผลใช้วิธีการ Blob นอกจากนี้ เรายังปิดรับเงาด้วย เนื่องจากฉากได้รับการอบแล้วและไม่มีเงาแบบเรียลไทม์

รูปที่ 14 การตั้งค่า Mesh Renderer สำหรับการเรนเดอร์รูปที่ 13

แสงแบบเรียลไทม์และประเภทแสง

เราขอแนะนำให้จัดการแสงด้วยการจัดแสงที่อบ Light Probes และเทคนิคการจัดแสงหลอก เช่น เท็กซ์เจอร์แสงที่ทาสีหรือเอฟเฟกต์วัสดุ Shader อย่างไรก็ตาม หากต้องการใช้แสงแบบเรียลไทม์ คุณต้องพิจารณาประเภทของแสงที่จะใช้

ไฟแต่ละประเภทมีต้นทุนที่แตกต่างกันในการคำนวณแสง รายการต่อไปนี้ จะแสดงรายละเอียดของหลอดไฟแต่ละประเภท

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