ผลต่างระหว่างรุ่นของ "แนวฉาก"
ไม่มีความย่อการแก้ไข |
|||
บรรทัด 9: | บรรทัด 9: | ||
== การคำนวณหาค่านอร์มอล == |
== การคำนวณหาค่านอร์มอล == |
||
[[Image:Normal vectors2.svg|thumb|right|ภาพแสดงนอร์มอลทั้งสองค่าของโพลีกอน]] |
[[Image:Normal vectors2.svg|thumb|right|ภาพแสดงนอร์มอลทั้งสองค่าของโพลีกอน]] |
||
การหาค่านอร์มอลของโพลีกอน สามารถหาได้จาก[[ผลคูณไขว้]]ของ |
การหาค่านอร์มอลของโพลีกอน สามารถหาได้จาก[[ผลคูณไขว้]]ของเวกเตอร์ขอบสองด้านที่ไม่ขนานกันของโพลีกอน ค่านอร์มอลจะมีสองค่าชี้ไปในทิศทางตรงข้ามกัน จึงอาจใช้[[กฎมือขวา]]ร่วมกำหนดทิศทางที่นอร์มอลหรือหน้าของโพลีกอนหันไป |
||
<br clear="all"/> |
|||
ถ้า[[ระนาบ]]เกิดจาก[[สมการ]] <math>ax+by+cz=d</math> [[เวกเตอร์]] <math>(a, b, c)</math> จะเป็นค่านอร์มอลของระนาบ ถ้าพื้นผิว(ที่อาจไม่เรียบ) S ถูก[[พาราเมทไทรเซชัน|พาราเมไทรซ์]]ใน[[ระบบพิกัดเชิงเส้นโค้ง]] '''x'''(''s'', ''t'') โดย[[จำนวนจริง]] s และ t ค่านอร์มอลจะหาได้จากผลคูณไขว้ของ[[อนุพันธ์บางส่วน]] |
|||
:<math>{\partial \mathbf{x} \over \partial s}\times {\partial \mathbf{x} \over \partial t}.</math> |
|||
== การใช้งาน == |
== การใช้งาน == |
||
=== งานคอมพิวเตอร์กราฟิกส์สามมิติ === |
=== งานคอมพิวเตอร์กราฟิกส์สามมิติ === |
รุ่นแก้ไขเมื่อ 04:31, 5 กุมภาพันธ์ 2552
surface normal หรือ นอร์มอล ค่าเวกเตอร์ที่ตั้งฉากกับพื้นผิวราบ สำหรับพื้นผิวที่ไม่เรียบ ค่านอร์มอลที่จุดหนึ่งๆบนพื้นผิวคือค่าเวกเตอร์ที่ตั้งฉากกับระนาบสัมผัสที่สัมผัสพื้นผิวที่จุดนั้น หรือตั้งฉากกับเส้นสัมผัสเส้นโค้งในกรณีสองมิติ
ในคอมพิวเตอร์กราฟิกส์สามมิตินิยมใช้ค่านอร์มอลกำหนดมุมระหว่างทิศทางที่พื้นผิวหันไปทำกับทิศทางของต้นกำเนิดแสงเพื่อเพื่อคำนวณการสะท้อนแบบ flat shading หรือใช้กำหนดที่มุมแต่ละมุมของพื้นผิวโพลีกอน (vertex normal) เพื่อใช้เกลี่ยค่านอร์มอลของสองพื้นผิวที่ติดกันเข้าหากัน ทำให้พื้นผิวที่ทำมุมกันสามารถสะท้อนแสดงได้เหมือนกับเป็นพื้นผิวเรียบโค้ง (phong shading)
การคำนวณหาค่านอร์มอล
การหาค่านอร์มอลของโพลีกอน สามารถหาได้จากผลคูณไขว้ของเวกเตอร์ขอบสองด้านที่ไม่ขนานกันของโพลีกอน ค่านอร์มอลจะมีสองค่าชี้ไปในทิศทางตรงข้ามกัน จึงอาจใช้กฎมือขวาร่วมกำหนดทิศทางที่นอร์มอลหรือหน้าของโพลีกอนหันไป
ถ้าระนาบเกิดจากสมการ เวกเตอร์ จะเป็นค่านอร์มอลของระนาบ ถ้าพื้นผิว(ที่อาจไม่เรียบ) S ถูกพาราเมไทรซ์ในระบบพิกัดเชิงเส้นโค้ง x(s, t) โดยจำนวนจริง s และ t ค่านอร์มอลจะหาได้จากผลคูณไขว้ของอนุพันธ์บางส่วน
การใช้งาน
งานคอมพิวเตอร์กราฟิกส์สามมิติ
ในงานคอมพิวเตอร์กราฟิกส์สามมิติ นอร์มอลและกฎมือขวาใช้กำหนดว่าโพลีกอนจะหันไปในทิศทางใดและจะสะท้อนแสงอย่างไร ทั้งนี้ค่านอร์มอลจะถูกนำมาใช้ในการกำหนดการสะท้อนหรือหักเหแสงของพื้นผิว และอาจจะไม่ตั้งฉากกับพื้นผิวจริงก็ได้
- Vertex normal : ในบางกรณี ซอฟต์แวร์สำหรับเรนเดอร์ภาพอาจคำนวนค่านอร์มอลพื้นผิวจากค่า vertex normal เช่นในโพลีกอนสามเหลี่ยมจะกำหนดค่า vertex normal สามค่าให้ vertex ทั้งสามมุม โดยจะเป็นค่าเวกเตอร์ที่ไม่จำเป็นต้องตั้งฉากกับพื้นผิวโพลีกอนเพื่อมาใช้คำนวนสนามเวกเตอร์ของนอร์มอลพื้นผิวโพลีกอน เช่นถ้ามีโพลีกอนสองชิ้นวางติดกัน แล้วในโพลีกอนชิ้นแรกกำหนด vertex normal ให้วิ่งไปทิศทางเดียวกับนอร์มอลพื้นผิว โพลีกอนนั้นจะแสดงรอยหยักตามขอบ แต่ถ้า vertex normal วิ่งไปทางเดียวกับ normal ของพื้นผิวโพลีกอนข้างเคียง การสะท้อนของโพลีกอนชิ้นแรกจะถูกเกลี่ยเข้าหาการสะท้อนของโพลีกอนข้างเคียง ทำให้มองดูเสมือนเป็นพื้นผิวเรียบโค้ง