การให้แสงเงาแบบฟ็อง

การให้แสงเงาแบบฟ็อง (Phong shading) หรือ การประมาณค่าในช่วงของฟ็อง (Phong interpolation) เป็นเทคนิคการประมาณค่าในช่วงสำหรับการคำนวณการให้แสงเงาในคอมพิวเตอร์กราฟิกส์สามมิติ โดยกำหนดค่าสีในแต่ละพิกเซล โดยการประมาณค่าในช่วงของเวกเตอร์แนวฉากตลอดทั่วโพลีกอน

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

ภาพรวม 

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

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

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

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

ฮาร์ดแวร์ที่รองรับตัวให้แสงเงาแบบสั่งการได้ สามารถทำการให้แสงเงาแบบฟ็องที่ดำเนินการโดยตัวให้แสงเงาแบบพิกเซล หรือตัวให้แสงเงาแบบแฟรกเมนต์

แบบจำลองการสะท้อนแบบฟ็อง 

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

อ้างอิง 

คอมพิวเตอร์กราฟิกส์สามมิติ