จัดแสงให้พอดี

คู่มือเฉพาะแพลตฟอร์ม

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

สัญญาณไฟ

Lighting Estimation API ให้ข้อมูลโดยละเอียดที่ช่วยให้คุณเลียนแบบแสงเงาต่างๆ เมื่อแสดงผลวัตถุเสมือนจริง สิ่งเหล่านี้คือเงา แสงโดยรอบ การแรเงา จุดไฮไลต์ที่สะท้อนแสง และแสงสะท้อน

เงา

เงามักมีทิศทางและบอกให้ผู้ชมทราบว่าแหล่งแสงมาจากที่ใด

แสงแวดล้อม

แสงโดยรอบคือแสงโดยรวมที่กระจายเข้ามาจากรอบๆ สภาพแวดล้อม ซึ่งทำให้มองเห็นทุกสิ่ง

การไล่เฉดสี

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

ไฮไลต์จากการสะท้อนของแสง

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

การแสดงผล

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

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

โหมด HDR สำหรับสภาพแวดล้อม

โหมดเหล่านี้ประกอบด้วย API แยกต่างหากที่ช่วยในการประมาณแสงที่ละเอียดและสมจริงสำหรับแสงจากทิศทาง เงา แสงสะท้อน และภาพสะท้อน

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

โหมดการประมาณแสงนี้มีข้อดีดังนี้

  1. ไฟหลักแบบทิศทาง แสดงแหล่งกำเนิดแสงหลัก ใช้เพื่อแคสต์เงาได้

  2. ฮาร์มอนิกแบบทรงกลมแวดล้อม แสดงพลังงานแสงโดยรอบที่เหลืออยู่ในฉาก

  3. แผนที่คิวบ์ HDR ใช้เพื่อแสดงผลภาพสะท้อนในวัตถุโลหะมันวาวได้

คุณใช้ API เหล่านี้ร่วมกันในลักษณะต่างๆ ได้ แต่ API เหล่านี้ออกแบบมาให้ใช้ร่วมกันเพื่อให้ได้ผลลัพธ์สมจริงที่สุด

ไฟทิศทางหลัก

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

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

     

เมื่อแหล่งแสงหลักหรือวัตถุที่มีแสงเคลื่อนไหว จุดไฮไลต์ที่สะท้อนแสงบนวัตถุจะปรับตำแหน่งแบบเรียลไทม์โดยสัมพันธ์กับแหล่งแสง

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

ฮาร์โมนิกทรงกลมตามบริบท

นอกจากพลังงานแสงในแสงหลักตามทิศทางแล้ว ARCore ยังให้ฮาร์โมนิกทรงกลม ซึ่งแสดงแสงโดยรอบโดยรวมที่มาจากทุกทิศทางในฉาก ใช้ข้อมูลนี้ในระหว่างการแสดงผลเพื่อเพิ่มสิ่งบอกใบ้เล็กๆ น้อยๆ ที่จะช่วยแสดงลักษณะของวัตถุเสมือน

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

     

คิวบิกแมป HDR

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

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

มีการใช้ Environmental HDR API ทั้ง 3 รายการในการเรนเดอร์ภาพจรวดด้านล่าง คิวบแมป HDR ช่วยสร้างสิ่งกระตุ้นการสะท้อนแสงและไฮไลต์เพิ่มเติมซึ่งทำให้วัตถุอยู่ในฉากได้อย่างสมบูรณ์

นี่คือโมเดลจรวดเดียวกันในสภาพแวดล้อมที่มีแสงแตกต่างกัน ฉากทั้งหมดนี้ได้รับการเรนเดอร์โดยใช้ข้อมูลจาก API 3 รายการนี้ โดยมีการใช้เงาตามทิศทาง

           

โหมดความเข้มของแสงจากหน้าจอแอมเบียนท์

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

ความเข้มของพิกเซล

จับความเข้มของแสงเฉลี่ยของพิกเซลในฉาก คุณใช้การจัดแสงนี้กับวัตถุเสมือนทั้งวัตถุได้

สี

ตรวจหาสมดุลสีขาวของแต่ละเฟรม จากนั้นคุณสามารถปรับแก้สีของวัตถุเสมือนเพื่อให้กลมกลืนกับสีโดยรวมของฉากได้มากขึ้น

การตรวจสอบสภาพแวดล้อม

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