แบบจำลองพื้นผิวในระดับจุลภาค ของ ส่วนสว่างจัดจ้า

มีหลายแบบจำลองที่แตกต่างกันสำหรับการจำลองการกระเจิงของพื้นผิวระดับจุลภาค ส่วนใหญ่จะมองว่าแนวฉากของผิวในระดับจุลภาคนั้นมีการแจกแจงอย่างสม่ำเสมอรอบแนวฉากของพื้นผิวระดับมหภาค แบบจำลองแบบนี้เรียกว่า ไอโซทรอปิก (isotropic) ถ้าแนวฉากของพื้นผิวในระดับจุลภาคมีการแจกแจงไปตามทิศทางใดทิศทางหนึ่งมากกว่าภายใต้การตั้งค่าบางอย่าง แบบจำลองการแจกแจงเรียกว่า แอนไอโซทรอปิก (anisotropic)

การแจกแจงแบบฟ็อง

ในแบบจำลองการสะท้อนแบบฟ็อง ความสว่างของส่วนสว่างจัดจ้าคำนวณได้โดย

k s p e c = ‖ R ‖ ‖ V ‖ cos n ⁡ β = ( R ^ ⋅ V ^ ) n {\displaystyle k_{\mathrm {spec} }=\|R\|\|V\|\cos ^{n}\beta =({\hat {R}}\cdot {\hat {V}})^{n}}

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

ในแบบจำลองการสะท้อนแบบบลิน–ฟ็องความสว่างของส่วนสว่างจัดจ้าคำนวณได้โดย

k s p e c = ‖ N ‖ ‖ H ‖ cos n ⁡ β = ( N ^ ⋅ H ^ ) n {\displaystyle k_{\mathrm {spec} }=\|N\|\|H\|\cos ^{n}\beta =({\hat {N}}\cdot {\hat {H}})^{n}}

โดย N คือแนวฉากของพื้นผิวเรียบลื่น และ H คือมุมกึ่งกลางระหว่างเวกเตอร์รังสี L และเวกเตอร์มุมมอง V

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

การแจกแจงแบบปกติ

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

k s p e c = e − ( ∠ ( N , H ) m ) 2 {\displaystyle k_{spec}=e^{-\left({\frac {\angle (N,H)}{m}}\right)^{2}}}

โดยที่ m คือค่าคงตัวที่มีค่าระหว่าง 0 ถึง 1 ซึ่งแสดงถึงความเรียบลื่นปรากฏของพื้นผิว[2]

การแจกแจงแบบเบ็กมัน

แบบจำลองพื้นผิวในระดับจุลภาคที่ยืนพื้นตามหลักฟิสิกส์คือการแจกแจงแบบเบ็กมัน (Beckmann distribution) แม้ว่าฟังก์ชันนี้จะให้ผลลัพธ์ที่แม่นยำมาก แต่ก็กินทรัพยากรในการคำนวณมาก

k s p e c = 1 4 m 2 cos 4 ⁡ ( N , H ) e − ( tan ⁡ ( N , H ) m ) 2 {\displaystyle k_{spec}={\frac {1}{4m^{2}\cos ^{4}(N,H)}}e^{-\left({\frac {\tan(N,H)}{m}}\right)^{2}}}

โดยที่ m คือความเอียงเฉลี่ยของพื้นผิวในระดับจุลภาค[3]

การแจกแจงแบบแอนไอโซทรอปิกของไฮดริช–ไซเดิล

การแจกแจงแบบแอนไอโซทรอปิกของไฮดริช–ไซเดิล (Heidrich–Seidel anisotropic distribution) เป็นการแจกแจงแบบแอนไอโซทรอปิกอย่างง่ายและอิงตามแบบจำลองของฟ็อง ใช้สำหรับจำลองพื้นผิวที่มีร่องหรือเส้นใยเล็ก ๆ ขนานกัน เช่น โลหะขัดเงา ผ้าต่วน หรือ เส้นผม ความสว่างของส่วนสว่างจัดจ้าที่คำนวณโดยใช้การแจกแจงแบบนี้คือ

k s p e c = [ sin ⁡ ( L , T ) sin ⁡ ( V , T ) − cos ⁡ ( L , T ) cos ⁡ ( V , T ) ] n {\displaystyle k_{spec}=\left[\sin(L,T)\sin(V,T)-\cos(L,T)\cos(V,T)\right]^{n}}

โดยที่ n คือเลขชี้กำลังของฟ็อง V คือทิศทางการมอง L คือทิศทางของลำแสง และ T คือทิศทางของร่องขนานหรือเส้นใยที่จุดหนึ่งบนพื้นผิว

การแจกแจงแบบแอนไอโซทรอปิกของวอร์ด

การแจกแจงแบบแอนไอโซทรอปิกของวอร์ด (Ward anisotropic distribution) ใช้พารามิเตอร์ที่ผู้ใช้ควบคุมได้สองตัวคือ αx และ αy สำหรับการควบคุมความเป็นแอนไอโซทรอปิก หากพารามิเตอร์ทั้งสองมีค่าเท่ากัน แสดงว่าเป็นส่วนสว่างจัดจ้าแบบไอโซทรอปิก

สูตรความสว่างสำหรับการแจกแจงแบบนี้คือ

k s p e c = 1 ( N ⋅ L ) ( N ⋅ V ) N ⋅ L 4 α x α y exp ⁡ [ − 2 ( H ⋅ X α x ) 2 + ( H ⋅ Y α y ) 2 1 + ( H ⋅ N ) ] {\displaystyle k_{spec}={\frac {1}{\sqrt {(N\cdot L)(N\cdot V)}}}{\frac {N\cdot L}{4\alpha _{x}\alpha _{y}}}\exp \left[-2{\frac {\left({\frac {H\cdot X}{\alpha _{x}}}\right)^{2}+\left({\frac {H\cdot Y}{\alpha _{y}}}\right)^{2}}{1+(H\cdot N)}}\right]}

ถ้า N-L < 0 หรือ N-E < 0 แสดงว่าพจน์การสะท้อนแสงจัดจ้าเป็นศูนย์ เวกเตอร์ทั้งหมดในที่นี้เป็นเวกเตอร์หน่วย เวกเตอร์ V คือเวกเตอร์จากจุดหนึ่งบนพื้นผิวไปยังจุดสังเกตการณ์ L คือทิศทางจากจุดบนพื้นผิวไปยังแหล่งกำเนิดแสง และ H คือทิศทางครึ่งมุม N คือแนวฉากพื้นผิว ส่วน X และ Y เป็นเวกเตอร์สองตัวที่ตั้งฉากกับระนาบแนวฉากซึ่งระบุทิศทางของความเป็นแอนไอโซทรอปิก

แบบจำลองของคุก-ทอร์เรนซ์

แบบจำลองของคุก-ทอร์เรนซ์ (Cook–Torrance model)[4] จะคำนวณส่วนสว่างจัดจ้าในรูปของ

k s p e c = D F G E ⋅ N {\displaystyle k_{spec}={\frac {DFG}{E\cdot N}}}

โดยในที่นี้ D คือพจน์การแจกแจงของเบ็กมัน

D = e − ( tan ⁡ α m ) 2 4 m 2 cos 4 ⁡ α {\displaystyle D={\frac {e^{-\left({\frac {\tan \alpha }{m}}\right)^{2}}}{4m^{2}\cos ^{4}\alpha }}}

และ F คือพจน์ของแฟรแนล

F = ( 1.0 + E . N ) λ {\displaystyle F=(1.0+E.N)^{\lambda }\,}

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

G = min ( 1 , 2 ( H ⋅ N ) ( E ⋅ N ) E ⋅ H , 2 ( H ⋅ N ) ( L ⋅ N ) E ⋅ H ) {\displaystyle G=\min \left(1,{\frac {2(H\cdot N)(E\cdot N)}{E\cdot H}},{\frac {2(H\cdot N)(L\cdot N)}{E\cdot H}}\right)}

ในสูตรเหล่านี้ E คือเวกเตอร์มุมมองของกล้องหรือจุดสังเกตการณ์ ในขณะที่ H คือเวกเตอร์มุมกึ่งกลางระหว่างจุดสังเกตการณ์กับแหล่งกำเนิดแสง ส่วน L คือเวกเตอร์ที่ชี้ไปยังแหล่งกำเนิดแสง และ N คือเวกเตอร์แนวฉาก ส่วน α คือมุมระหว่าง H และ N

การรวมหลายแบบจำลองเข้าด้วยกัน

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

อ้างอิง

  1. Richard Lyon, "Phong Shading Reformulation for Hardware Renderer Simplification", Apple Technical Report #43, Apple Computer, Inc. 1993 PDF
  2. Glassner, Andrew S. (ed). An Introduction to Ray Tracing. San Diego: Academic Press Ltd, 1989. p. 148.
  3. Foley et al. Computer Graphics: Principles and Practice. Menlo Park: Addison-Wesley, 1997. p. 764.
  4. R. Cook and K. Torrance. "A reflectance model for computer graphics". Computer Graphics (SIGGRAPH '81 Proceedings), Vol. 15, No. 3, July 1981, pp. 301–316.

ใกล้เคียง

ส่วนสว่างจัดจ้า ส่วนสูงของประธานาธิบดีสหรัฐ ส่วนสารภาพบาป สวนสัตว์ สวนสาธารณะ สวนสัตว์ดุสิต ส่วนต่อประสานสมองกับคอมพิวเตอร์ สวนสราญรมย์ สวนสมเด็จพระนางเจ้าสิริกิติ์ฯ ส่วนโค้งเอออร์ตา