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

คำแนะนำเฉพาะแพลตฟอร์ม

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

คิวการจัดแสง

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

เงา

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

แสงแวดล้อม

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

การแรเงา

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

ไฮไลต์การตกกระทบของแสงอาทิตย์

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

การสะท้อนความรู้สึก

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

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

โหมด HDR ของสภาพแวดล้อม

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

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

โหมดการประมาณแสงนี้มีสิ่งต่อไปนี้

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

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

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

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

แสงหลัก

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

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

     

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

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

ฮาร์มอนิกทรงกลมโดยรอบ

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

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

     

คิวบ์แมป HDR

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

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

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

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

           

โหมดความเข้มของแสงโดยรอบ

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

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

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

สี

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

โพรบสภาพแวดล้อม

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