คำแนะนำเฉพาะแพลตฟอร์ม
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 สิ่งนี้เพื่อสร้างตัวอย่างเอฟเฟกต์นี้ อันหนึ่งคือหุ่นเสมือนและของจริงอีกตัว หุ่นด้านซ้ายคือหุ่นเสมือนจริง
ฮาร์มอนิกแบบทรงกลมแวดล้อม
นอกจากพลังงานแสงจากแสงในทิศทางหลักแล้ว ARCore ยังให้ฮาร์มอนิกแบบทรงกลม ซึ่งแสดงถึงแสงแวดล้อมโดยรวมที่มาจากทุกทิศทางในฉาก ใช้ข้อมูลนี้ในระหว่างการแสดงภาพเพื่อเพิ่มคำแนะนำเล็กๆ น้อยๆ ที่จะแสดงคำจำกัดความของวัตถุเสมือน
ลองพิจารณาภาพ 2 ภาพนี้ของโมเดลจรวดเดียวกัน จรวดทางด้านซ้ายจะแสดงโดยใช้ข้อมูลการประมาณค่าแสงที่ตรวจพบโดย API แสงทิศทางหลัก จรวดทางด้านขวาจะแสดงโดยใช้ข้อมูลที่ตรวจพบโดย API แสงทิศทางหลักและฮาร์มอนิกแบบรอบข้าง จรวดตัวที่ 2 มีคำจำกัดความของภาพมากกว่าและกลมกลืนไปกับฉากมากขึ้นอย่างแนบเนียน
HDR คิวบ์แมป
ใช้แผนที่ลูกบาศก์ HDR เพื่อแสดงภาพสะท้อนที่สมจริงบนวัตถุเสมือนที่มีความมันวาวปานกลางถึงสูง เช่น พื้นผิวโลหะมันวาว แผนที่คิวบ์แมปยังส่งผลต่อการแรเงาและรูปลักษณ์ของวัตถุ เช่น วัสดุของวัตถุที่มีข้อมูลจำเพาะภายในสภาพแวดล้อมสีน้ำเงินจะสะท้อนถึงเฉดสีน้ำเงิน การคำนวณ Cubemap แบบ HDR ต้องใช้การคำนวณ CPU เพิ่มเติมเล็กน้อย
การใช้ตารางลูกบาศก์ HDR หรือไม่นั้นขึ้นอยู่กับสิ่งที่วัตถุสะท้อนสภาพแวดล้อม เนื่องจากจรวดเสมือนจริงเป็นโลหะ จึงมีส่วนประกอบของข้อมูลจำเพาะที่แข็งแกร่งซึ่งจะสะท้อนสภาพแวดล้อมรอบๆ ได้โดยตรง จึงได้ประโยชน์จากแผนที่คิวบ์ ในทางกลับกัน วัตถุเสมือนที่มีวัสดุด้านสีเทาหม่นนั้นไม่มีส่วนประกอบของข้อมูลจำเพาะเลย สีจะขึ้นอยู่กับองค์ประกอบการกระจายแสงเป็นหลัก และอาจไม่ได้รับประโยชน์จากแผนที่ลูกบาศก์
มีการใช้ Environmental HDR API ทั้ง 3 รายการเพื่อแสดงจรวดด้านล่าง ภาพคิวบ์ HDR จะช่วยให้คิวบ์สะท้อนแสงและช่วยไฮไลต์ให้วัตถุนั้นอยู่ในฉากอย่างเต็มที่
นี่คือจรวดรุ่นเดียวกันในสภาพแวดล้อมที่มีแสงต่างกัน ฉากเหล่านี้ทั้งหมดแสดงผลโดยใช้ข้อมูลจาก API ทั้ง 3 ประเภท โดยใช้เงาตามทิศทาง
โหมดความเข้มสภาพแวดล้อม
โหมดความเข้มสภาพแวดล้อมจะกำหนดความเข้มของพิกเซลเฉลี่ยและสเกลาร์การแก้สีของรูปภาพที่ระบุ โดยเป็นการตั้งค่าแบบคร่าวๆ ที่ออกแบบมาเพื่อกรณีการใช้งานที่การจัดแสงที่แม่นยำไม่สำคัญ เช่น วัตถุที่มีการจัดแสงให้สว่าง
ความเข้มของพิกเซล
จับความเข้มของแสงเฉลี่ยของพิกเซลในฉาก คุณใช้การจัดแสงนี้กับวัตถุเสมือนทั้งวัตถุได้
สี
ตรวจหาไวท์บาลานซ์สำหรับแต่ละเฟรม จากนั้น คุณสามารถแก้สีวัตถุเสมือน เพื่อให้วัตถุนั้นกลมกลืนไปกับการลงสีโดยรวมของฉากอย่างลื่นไหลมากขึ้น
การตรวจสอบสภาพแวดล้อม
การตรวจสอบสภาพแวดล้อมจะจัดระเบียบมุมมองของกล้อง 360 องศาในพื้นผิวของสภาพแวดล้อม เช่น แผนที่ลูกบาศก์ พื้นผิวเหล่านี้ก็สามารถใช้เพื่อให้แสงกับวัตถุเสมือนได้อย่างสมจริง เช่น ลูกบอลโลหะเสมือนที่ "สะท้อน" ห้องที่อยู่นั้น