คู่มือเฉพาะแพลตฟอร์ม
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
เครื่องมืออันสมจริง
การจัดแสงให้เหมาะสมเป็นองค์ประกอบสำคัญในการสร้างประสบการณ์ AR ที่สมจริง เมื่อวัตถุเสมือนไม่มีเงาหรือมีวัสดุมันวาวที่ไม่สะท้อนพื้นที่โดยรอบ ผู้ใช้จะรู้สึกว่าวัตถุนั้นไม่เข้ากัน แม้ว่าจะอธิบายไม่ได้ว่าทำไม เนื่องจากมนุษย์รับรู้ถึงสัญญาณเกี่ยวกับลักษณะการจัดแสงของวัตถุในสภาพแวดล้อมโดยไม่รู้ตัว Lighting Estimation API วิเคราะห์ภาพที่ระบุสำหรับคิวดังกล่าว โดยให้ข้อมูลรายละเอียดเกี่ยวกับแสงในฉาก จากนั้นคุณจะใช้ข้อมูลนี้ได้เมื่อแสดงภาพวัตถุเสมือนเพื่อให้แสงกับวัตถุดังกล่าวภายใต้สภาวะเดียวกันกับฉากที่วางอยู่ เพื่อให้ผู้ใช้มีสมาธิและมีส่วนร่วม
สัญญาณไฟ
Lighting Estimation API ให้ข้อมูลโดยละเอียดที่ช่วยให้คุณเลียนแบบแสงเงาต่างๆ เมื่อแสดงผลวัตถุเสมือนจริง สิ่งเหล่านี้คือเงา แสงโดยรอบ การแรเงา จุดไฮไลต์ที่สะท้อนแสง และแสงสะท้อน
เงา
เงามักมีทิศทางและบอกให้ผู้ชมทราบว่าแหล่งแสงมาจากที่ใด
แสงแวดล้อม
แสงโดยรอบคือแสงโดยรวมที่กระจายเข้ามาจากรอบๆ สภาพแวดล้อม ซึ่งทำให้มองเห็นทุกสิ่ง
การไล่เฉดสี
การแรเงาคือความเข้มของแสง เช่น ชิ้นส่วนต่างๆ ของวัตถุเดียวกันอาจมีระดับการแรเงาแตกต่างกันในฉากเดียวกัน ทั้งนี้ขึ้นอยู่กับมุมที่สัมพันธ์กับผู้ชมและความใกล้แหล่งแสง
ไฮไลต์จากการสะท้อนของแสง
ไฮไลต์โดดเด่นคือส่วนแวววาวของพื้นผิวที่สะท้อนแหล่งกำเนิดแสงโดยตรง ไฮไลต์บนวัตถุจะเปลี่ยนแปลงตามตำแหน่งของผู้ดูในฉาก
การแสดงผล
แสงที่สะท้อนจากพื้นผิวจะแตกต่างกันไป ขึ้นอยู่กับว่าพื้นผิวมีคุณสมบัติเป็นเงา (สะท้อนแสงสูง) หรือกระจายแสง (ไม่สะท้อนแสง) ตัวอย่างเช่น ลูกบอลโลหะจะมีลักษณะโดดเด่นและสะท้อนสภาพแวดล้อมของลูกบอลอีกลูกหนึ่ง ส่วนอีกลูกหนึ่งที่ทาสีเทาแบบด้านๆ จะกระจายไป วัตถุในชีวิตจริงส่วนใหญ่มีคุณสมบัติเหล่านี้ผสมผสานกัน เช่น ลูกบอลโบว์ลิ่งที่มีรอยขีดข่วนหรือบัตรเครดิตที่ใช้มาอย่างหนัก
พื้นผิวสะท้อนแสงยังตรวจจับสีจากสภาพแวดล้อมโดยรอบด้วย การลงสีวัตถุอาจได้รับผลกระทบโดยตรงจากการลงสีสภาพแวดล้อม เช่น ลูกบอลสีขาวในห้องสีฟ้าจะดูเป็นสีฟ้า
โหมด HDR สำหรับสภาพแวดล้อม
โหมดเหล่านี้ประกอบด้วย API แยกต่างหากที่ช่วยในการประมาณแสงที่ละเอียดและสมจริงสำหรับแสงจากทิศทาง เงา แสงสะท้อน และภาพสะท้อน
โหมด HDR สำหรับสภาพแวดล้อมใช้แมชชีนเลิร์นนิงเพื่อวิเคราะห์รูปภาพจากกล้องแบบเรียลไทม์และสังเคราะห์แสงแวดล้อมเพื่อรองรับการแสดงภาพวัตถุเสมือนที่สมจริง
โหมดการประมาณแสงนี้มีข้อดีดังนี้
ไฟหลักแบบทิศทาง แสดงแหล่งกำเนิดแสงหลัก ใช้เพื่อแคสต์เงาได้
ฮาร์มอนิกแบบทรงกลมแวดล้อม แสดงพลังงานแสงโดยรอบที่เหลืออยู่ในฉาก
แผนที่คิวบ์ 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 องศาให้เป็นพื้นผิวของสภาพแวดล้อม เช่น แผนที่ลูกบาศก์ จากนั้นจะใช้พื้นผิวเหล่านี้เพื่อจัดแสงวัตถุเสมือนจริงให้สมจริงได้ เช่น ลูกบอลโลหะเสมือนจริงที่ "สะท้อน" ห้องที่ลูกบอลอยู่