แบบจำลองการสะท้อนแบบฟ็อง (Phong reflecion model) เป็นแบบจำลองการฉายแสงและการให้แสงเงา เพื่อสร้างภาพบนจุดบนพื้นผิวที่ได้ออกแบบไว้ในทางคอมพิวเตอร์กราฟิกส์สามมิติ
แบบจำลองนี้ได้รับการพัฒนาโดยบู่ย เตื่อง ฟ็อง ชาวเวียดนาม โดยได้ตีพิมพ์ในวิทยานิพนธ์ของเขาในปี 1973 ภายใต้ชื่อ "การให้แสงสำหรับรูปภาพที่สร้างจากคอมพิวเตอร์ " (Illumination for Computer-Generated Images) นอกจากนี้ บทความนี้ยังกล่าวถึงวิธีการคำนวณสำหรับแต่ละพิกเซลจากแบบจำลองพื้นผิวโพลีกอน เทคนิคการประมาณค่าในช่วงนี้เรียกว่าการให้แสงเงาแบบฟ็อง
ภาพรวม
แบบจำลองการสะท้อนแบบฟ็องช่วยให้สามารถจัดการทั่วไปได้ง่ายขึ้น ในการกำหนดแสงและเงาในแต่ละจุดบนผิว แบบจำลองนี้มีข้อได้เปรียบดังนี้
- แบบจำลองนี้เป็นแบบจำลองสะท้อนเฉพาะที่ นั่นคือ ไม่จำเป็นต้องคำนวณการสะท้อนกลับทุติยภูมิแบบที่ทำใน อย่างใน และเพื่อชดเชยการลดทอนของแสงที่สะท้อน จึงได้ได้มีการเพิ่มพจน์แสงโดยรอบ (ambient) ภายนอกไปด้วยตอนเร็นเดอร์
- การสะท้อนจากพื้นผิวแบ่งออกเป็นสามประเภท: การสะท้อนแสงจัดจ้า, การสะท้อนแสงพร่า และ การสะท้อนแสงโดยรอบ (ambient reflection)
ก่อนอื่น สำหรับแต่ละแหล่งกำเนิดแสงภายในฉาก ให้ส่วนประกอบการสะท้อนแสงจัดจ้าเป็น และส่วนประกอบการสะท้อนแสงพร่าเป็น โดยปกติแต่ละค่าจะเป็นค่า RGB นอกจากนี้ยังให้แสงแวล้อมเป็น ซึ่งอาจคำนวณเป็นผลรวมของผลกระทบจากแหล่งกำเนิดแสงทั้งหมด
ถัดมา สำหรับแต่ละวัสดุบนพื้นผิวให้กำหนดสิ่งต่อไปนี้:
- : ค่าสัมประสิทธิ์การสะท้อนแสงจัดจ้า
- : ค่าสัมประสิทธิ์การสะท้อนแสงพร่า (การสะท้อนแบบลัมแบร์ท)
- : ค่าสัมประสิทธิ์การสะท้อนแสงโดยรอบ
- : ค่าคงที่ความมันวาวของวัสดุ
ค่าความมันวาว (shininess) ในที่นี้เป็นตัวกำหนดความสม่ำเสมอของแสงที่สะท้อนจากจุดที่หนึ่ง ๆ ยิ่งเป็นพื้นผิวที่เรียบลื่นก็จะยิ่งมีค่ามาก นอกจากนี้ค่าคงที่นี้ยิ่งมากส่วนสว่างจัดจ้าก็จะยิ่งเล็กและแรงขึ้นเท่านั้น
นอกจากนี้ เรายังอาจนิยามแสงของกลุ่มแหล่งกำเนิดแสงทั้งหมด ให้เวกเตอร์ทิศทางจากจุดบนพื้นผิววัตถุไปยังแหล่งกำเนิดแสงแต่ละแหล่งเป็น และให้เวกเตอร์แนวฉาก ณ จุดหนึ่งบนพื้นผิวนี้เป็น ทิศทางที่แสงสะท้อนอย่างสมบูรณ์ ณ จุดนั้นบนพื้นผิวเป็น และ และทิศทางไปยังมุมสังเกตการณ์ (เช่นกล้องเสมือนจริง) คือ
ความเข้มของเงาหรือแสงในแต่ละจุดบนพื้นผิว สามารถคำนวณโดยใช้สมการต่อไปนี้:
พจน์แสงพร่าทิศไม่ได้ขึ้นกับมุมสังเกตการณ์ เนื่องจากพจน์แสงพร่ามีค่าเท่ากันสำหรับในทุกทิศทางจากจุดนั้น ซึ่งรวมถึงทิศทางการมองด้วย ในทางกลับกัน พจน์แสงจัดจ้าจะมีค่ามากเป็นพิเศษในกรณีที่เวกเตอร์สะท้อน กับเวกเตอร์มุมมอง นั้นใกล้กันมากเท่านั้น เพราะค่าโคไซน์ของมุมระหว่าง และ ภายในผลคูณจุดของเวกเตอร์ทั้งสองนี้ได้รับผลจากเลขยกกำลังโดย หาก มีค่ามาก การแสดงออกจะเกือบเหมือนกระจกเงา และพื้นที่ส่วนสว่างจัดจ้าที่สะท้อนออกมาจะเล็กมาก นั่นเป็นเพราะเนื่องจากหากทิศทางของมุมที่มองเบี่ยงเบนไปจากเวกเตอร์การสะท้อน ค่าโคไซน์จะน้อยกว่า 1 และจะเข้าใกล้ 0 เมื่อยกกำลังด้วยค่ามาก
เมื่อแสดงสีด้วยค่า RGB โดยทั่วไปสูตรนี้จะคำนวณแยกกันสำหรับแต่ละองค์ประกอบ R, G, B
การสะท้อนแบบฟ็องเป็นแบบจำลองเชิงประจักษ์ โดยอิงจากการสังเกตอย่างไม่เป็นทางการมากกว่าคำอธิบายทางกายภาพของปฏิสัมพันธ์ของแสง ฟ็องได้สังเกตเห็นว่าพื้นผิวที่มีความมันเงาสูงจะมีส่วนสว่างที่สว่างกว่าและความสว่างลดลงเร็ว ในขณะที่พื้นผิวที่มีความมันวาวน้อยกว่าจะมีส่วนสว่างที่สว่างกว่าและความสว่างจะค่อย ๆ ลดลง
ภาพด้านล่างนี้แสดงโดยแยกส่วนประกอบต่าง ๆ ในแบบจำลองการสะท้อนแบบฟ็องให้เห็นภาพชัด
สีของการสะท้อนแสงโดยรอบ (ambient) และ การสะท้อนแสงพร่า (diffuse) จะเหมือนกัน ให้ระวังว่า พจน์ของการสะท้อนแสงโดยรอบนั้นคงที่ตลอด ในขณะที่พจน์ของการสะท้อนแสงพร่ามีค่าแตกต่างกันไปตามมุมที่พื้นผิวหัน ส่วน การสะท้อนแสงจัดจ้า (specular) จะเป็นสีขาวและสะท้อนแสงส่วนใหญ่ที่ตกกระทบพื้นผิว แต่จะส่องสว่างแค่ในบริเวณที่แคบมาก
ข้อดีและข้อเสีย
การเรนเดอร์ตามเวลาจริงโดยใช้ API กราฟิก เช่น OpenGL และ มักจะใช้แบบจำลองการส่องสว่างเฉพาะที่เนื่องจากข้อจำกัด เช่น ความเร็วในการวาด แต่แบบจำลองการสะท้อนของฟ็องมีความเรียบง่ายในการคำนวณ และผลาญทรัพยากรน้อย จึงถูกใช้งานเป็นมาตรฐานสำหรับตัวให้แสงเงาแบบที่ให้ค่าคงท่ซึ่งทำงานด้วยซอฟต์แวร์ (CPU) หรือฮาร์ดแวร์ (GPU) (จนถึง OpenGL 2.1 และ Direct3D 9) แม้หลังจากที่ประสิทธิภาพของฮาร์ดแวร์เพิ่มสูงขึ้น และตัวให้แสงเงาแบบที่ตั้งโปรแกรมได้ถูกใช้ทั่วไปแล้ว บางครั้งแบบจำลองการสะท้อนของฟ็องก็ยังถูกนำมาใช้เนื่องจากความเบาในการคำนวณของมัน สำหรับใน OpenGL 3.1 และ Direct3D 10 นั้นได้เลิกใช้ฟังก์ชันแบบตายตัวแล้ว และใช้ตัวให้แสงเงาแบบที่ตั้งโปรแกรมได้เพื่อใช้แบบจำลองการสะท้อนแบบฟ็อง
อย่างไรก็ตาม เนื่องจากเป็นแบบจำลองการประมาณที่เรียบง่ายและหยาบมาก จึงไม่สามารถจำลองปรากฏการณ์โกลบอลอิลลูมิเนชัน ที่เกิดจากแสงสะท้อนกระจายที่ซับซ้อนและแสงโดยรอบ เช่น การกระเจิงใต้พื้นผิวและการบดบังแสงโดยรอบ
การประมาณค่าในช่วงแบบฟ็อง
นอกจากแบบจำลองการสะท้อนซึ่งคำนวณสีที่จุดต่าง ๆ บนพื้นผิวแล้ว ฟ็องยังได้พัฒนาวิธีการประมาณค่าในช่วงสำหรับการคำนวณสีแต่ละพิกเซลในโพลีกอน แบบจำลองการสะท้อนและการประมาณค่าในช่วงในลักษณะนี้บางครั้งรวมกันด้วยคำว่า การให้แสงเงาแบบฟ็อง
อ้างอิง
- Bui Tuong Phong, Illumination for computer generated pictures, Communications of ACM 18 (1975), no. 6, 311–317.
- University of Utah School of Computing, http://www.cs.utah.edu/school/history/#phong-ref
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
aebbcalxngkarsathxnaebbfxng Phong reflecion model epnaebbcalxngkarchayaesngaelakarihaesngenga ephuxsrangphaphbncudbnphunphiwthiidxxkaebbiwinthangkhxmphiwetxrkrafikssammiti aebbcalxngniidrbkarphthnaodybuy etuxng fxng chawewiydnam odyidtiphimphinwithyaniphnthkhxngekhainpi 1973 phayitchux karihaesngsahrbrupphaphthisrangcakkhxmphiwetxr Illumination for Computer Generated Images nxkcakni bthkhwamniyngklawthungwithikarkhanwnsahrbaetlaphikeslcakaebbcalxngphunphiwophlikxn ethkhnikhkarpramankhainchwngnieriykwakarihaesngengaaebbfxngphaphrwmaebbcalxngkarsathxnaebbfxngchwyihsamarthcdkarthwipidngaykhun inkarkahndaesngaelaengainaetlacudbnphiw aebbcalxngnimikhxidepriybdngni aebbcalxngniepnaebbcalxngsathxnechphaathi nnkhux imcaepntxngkhanwnkarsathxnklbthutiyphumiaebbthithain xyangin aelaephuxchdechykarldthxnkhxngaesngthisathxn cungididmikarephimphcnaesngodyrxb ambient phaynxkipdwytxnernedxr karsathxncakphunphiwaebngxxkepnsampraephth karsathxnaesngcdca karsathxnaesngphra aela karsathxnaesngodyrxb ambient reflection kxnxun sahrbaetlaaehlngkaenidaesngphayinchak ihswnprakxbkarsathxnaesngcdcaepn is displaystyle i s aelaswnprakxbkarsathxnaesngphraepn id displaystyle i d odypktiaetlakhacaepnkha RGB nxkcakniyngihaesngaewlxmepn ia displaystyle i a sungxackhanwnepnphlrwmkhxngphlkrathbcakaehlngkaenidaesngthnghmd thdma sahrbaetlawsdubnphunphiwihkahndsingtxipni ks displaystyle k s khasmprasiththikarsathxnaesngcdca kd displaystyle k d khasmprasiththikarsathxnaesngphra karsathxnaebblmaebrth ka displaystyle k a khasmprasiththikarsathxnaesngodyrxb a displaystyle alpha khakhngthikhwammnwawkhxngwsdu khakhwammnwaw shininess a displaystyle alpha inthiniepntwkahndkhwamsmaesmxkhxngaesngthisathxncakcudthihnung yingepnphunphiwthieriyblunkcayingmikhamak nxkcaknikhakhngthiniyingmakswnswangcdcakcayingelkaelaaerngkhunethann nxkcakni erayngxacniyamaesngkhxngklumaehlngkaenidaesngthnghmd ihewketxrthisthangcakcudbnphunphiwwtthuipyngaehlngkaenidaesngaetlaaehlngepn L displaystyle L aelaihewketxraenwchak n cudhnungbnphunphiwniepn N displaystyle N thisthangthiaesngsathxnxyangsmburn n cudnnbnphunphiwepn R displaystyle R aela aelathisthangipyngmumsngektkarn echnklxngesmuxncring khux V displaystyle V khwamekhmkhxngengahruxaesnginaetlacudbnphunphiw Ip displaystyle I p samarthkhanwnodyichsmkartxipni Ip kaia lights kd L N id ks R V ais displaystyle I p k a i a sum mathrm lights k d L cdot N i d k s R cdot V alpha i s phcnaesngphrathisimidkhunkbmumsngektkarn V displaystyle V enuxngcakphcnaesngphramikhaethaknsahrbinthukthisthangcakcudnn sungrwmthungthisthangkarmxngdwy inthangklbkn phcnaesngcdcacamikhamakepnphiessinkrnithiewketxrsathxn R displaystyle R kbewketxrmummxng V displaystyle V nniklknmakethann ephraakhaokhisnkhxngmumrahwang R displaystyle R aela V displaystyle V phayinphlkhuncudkhxngewketxrthngsxngniidrbphlcakelkhykkalngody a displaystyle alpha hak a displaystyle alpha mikhamak karaesdngxxkcaekuxbehmuxnkrackenga aelaphunthiswnswangcdcathisathxnxxkmacaelkmak nnepnephraaenuxngcakhakthisthangkhxngmumthimxngebiyngebnipcakewketxrkarsathxn khaokhisncanxykwa 1 aelacaekhaikl 0 emuxykkalngdwykhamak emuxaesdngsidwykha RGB odythwipsutrnicakhanwnaeykknsahrbaetlaxngkhprakxb R G B karsathxnaebbfxngepnaebbcalxngechingpracks odyxingcakkarsngektxyangimepnthangkarmakkwakhaxthibaythangkayphaphkhxngptismphnthkhxngaesng fxngidsngektehnwaphunphiwthimikhwammnengasungcamiswnswangthiswangkwaaelakhwamswangldlngerw inkhnathiphunphiwthimikhwammnwawnxykwacamiswnswangthiswangkwaaelakhwamswangcakhxy ldlng phaphdanlangniaesdngodyaeykswnprakxbtang inaebbcalxngkarsathxnaebbfxngihehnphaphchd sikhxngkarsathxnaesngodyrxb ambient aela karsathxnaesngphra diffuse caehmuxnkn ihrawngwa phcnkhxngkarsathxnaesngodyrxbnnkhngthitlxd inkhnathiphcnkhxngkarsathxnaesngphramikhaaetktangkniptammumthiphunphiwhn swn karsathxnaesngcdca specular caepnsikhawaelasathxnaesngswnihythitkkrathbphunphiw aetcasxngswangaekhinbriewnthiaekhbmakkhxdiaelakhxesiykarernedxrtamewlacringodyich API krafik echn OpenGL aela mkcaichaebbcalxngkarsxngswangechphaathienuxngcakkhxcakd echn khwamerwinkarwad aetaebbcalxngkarsathxnkhxngfxngmikhwameriybngayinkarkhanwn aelaphlaythrphyakrnxy cungthukichnganepnmatrthansahrbtwihaesngengaaebbthiihkhakhngthsungthangandwysxftaewr CPU hruxhardaewr GPU cnthung OpenGL 2 1 aela Direct3D 9 aemhlngcakthiprasiththiphaphkhxnghardaewrephimsungkhun aelatwihaesngengaaebbthitngopraekrmidthukichthwipaelw bangkhrngaebbcalxngkarsathxnkhxngfxngkyngthuknamaichenuxngcakkhwamebainkarkhanwnkhxngmn sahrbin OpenGL 3 1 aela Direct3D 10 nnidelikichfngkchnaebbtaytwaelw aelaichtwihaesngengaaebbthitngopraekrmidephuxichaebbcalxngkarsathxnaebbfxng xyangirktam enuxngcakepnaebbcalxngkarpramanthieriybngayaelahyabmak cungimsamarthcalxngpraktkarnoklbxlxillumienchn thiekidcakaesngsathxnkracaythisbsxnaelaaesngodyrxb echn karkraecingitphunphiwaelakarbdbngaesngodyrxbkarpramankhainchwngaebbfxngnxkcakaebbcalxngkarsathxnsungkhanwnsithicudtang bnphunphiwaelw fxngyngidphthnawithikarpramankhainchwngsahrbkarkhanwnsiaetlaphikeslinophlikxn aebbcalxngkarsathxnaelakarpramankhainchwnginlksnanibangkhrngrwmkndwykhawa karihaesngengaaebbfxngxangxingBui Tuong Phong Illumination for computer generated pictures Communications of ACM 18 1975 no 6 311 317 University of Utah School of Computing http www cs utah edu school history phong ref