หัวข้อทางคณิตศาสตร์สำหรับการเขียนโปรแกรมกราฟิก 3D [ปิด]


14

ฉันเข้าใจว่าต้องใช้หัวข้อทางคณิตศาสตร์ต่อไปนี้ในการเขียนโปรแกรมกราฟิก 3D ฉันเริ่มทำบางอย่างในวิชาคณิตศาสตร์ของฉัน ใครบางคนสามารถชี้ให้ฉันไปในทิศทางของทรัพยากรที่อธิบายได้อย่างไรพวกเขาใช้? ปัญหากราฟิก / เกมใดที่พวกเขาใช้ในการแก้ไข

  • คณิตศาสตร์เวกเตอร์
  • คณิตศาสตร์เมทริกซ์
  • quaternions
  • พีชคณิตเชิงเส้น

เท่าที่ฉันเห็นเหล่านี้เป็นหัวข้อพีชคณิตเชิงเส้น / เมทริกซ์ มีหัวข้ออื่นที่จำเป็นอีกไหม?


คำถามนี้มีข้อมูลที่ดีเกี่ยวกับ: gamedev.stackexchange.com/questions/2029/…
michael.bartnett

@beardcp ฉันอาจไปซ้ำซ้อน
The Duck คอมมิวนิสต์เมื่อ

คำตอบ:


10

พีชคณิตเชิงเส้นเป็นระเบียบวินัยที่สำคัญที่สุดสำหรับการเขียนโปรแกรมกราฟิก 3 มิติเพียงเพราะมันเป็นภาษาทางคณิตศาสตร์สำหรับการอธิบายรูปทรงเรขาคณิตเชิงพื้นที่ อีกสามหัวข้อของคุณเป็นเพียงส่วนย่อยของพีชคณิตเชิงเส้น:

  • เวกเตอร์เป็นวิธีคิดเกี่ยวกับคะแนนในอวกาศ
  • เมทริกซ์เป็นวิธีคิดเกี่ยวกับการแปลงพื้นที่และวัตถุ: การแปลวัตถุการปรับสเกล ฯลฯ
  • Quaternions เป็นตัวแทนตามธรรมชาติสำหรับกลุ่มย่อยเฉพาะของการเปลี่ยนแปลงเหล่านั้น, การหมุน
  • ฯลฯ

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

  • หนึ่งในวิธีที่เป็นธรรมชาติที่สุดในการกำหนดระดับเสียงจากชุดของจุด (ตัวอย่างเช่นเพื่อกำหนดระดับเสียงที่เสียงพื้นหลังที่เฉพาะเจาะจงจะเล่นหรือระดับเสียงหมอกหรือสิ่งที่คล้ายกัน) คือการหาจุดนูนของเรือ ; มีอัลกอริธึมที่ดีสำหรับการทำเช่นนั้นในมิติที่ 2 และ 3 แต่อัลกอริธึม 2D นั้นไม่ชัดเจนทันที
  • ปัญหาของความสามารถในการระบุว่าวัตถุใดอยู่ใกล้กับจุดที่กำหนดหรืออยู่ใกล้กัน (ตัวอย่างเช่นเพื่อลดจำนวนวัตถุที่ต้องตรวจสอบการชนที่อาจเกิดขึ้นได้หรือเพื่อคิดออกว่าศัตรูใดจะสังเกตเห็นผู้เล่นที่ จุดที่กำหนด) เข้าสู่เขตข้อมูลของปัญหาการสืบค้นทางเรขาคณิตและแผนการแบ่งพาร์ติชันเชิงพื้นที่ (และทำให้เป็นโครงสร้างเช่นต้นไม้ BSP และลำดับที่แปด) แนวคิดทั่วไปเดียวกันนี้ยังใช้เพื่อตอบแบบสอบถาม 'การติดตามเส้น' (เช่น 'ลำแสงเลเซอร์นี้กระทบอะไร')

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


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

4

นี่คือคำแนะนำที่ยอดเยี่ยมhttp://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-2/


อาจากพวกที่ทำลูการุ! ฉันยังไม่มีโอกาสอ่านสิ่งนี้ แต่ตอนนี้ฉันมีเวลาว่าง 6 สัปดาห์แล้วและนี่จะเป็นส่วนหนึ่งของสิ่งที่ฉันดู - ขอบคุณ!
Katherine Rix

3

http://www.dickbaldwin.com/KjellTutorial/KjellVectorTutorialIndex.htmเป็นบทเรียนที่ดีและตรงไปตรงมาเกี่ยวกับคณิตศาสตร์เวกเตอร์ 2D / 3D และแอปพลิเคชั่นเกี่ยวกับการเขียนโปรแกรมกราฟิก


ฉันดูที่นี่ดีมาก เริ่มด้วยพื้นฐานที่ดีสำหรับมือใหม่อย่างฉัน - ยกนิ้ว! :)
Katherine Rix

1

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

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

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


1

พีชคณิตเชิงเส้นเชิงปฏิบัติและพื้นฐานของกราฟิกคอมพิวเตอร์เป็นหนังสือสองเล่มที่ดีมากที่จะครอบคลุมหัวข้อที่คุณพูดถึง (และใช้ในคอมพิวเตอร์กราฟิก) หากคุณอยู่ในหนังสือและเช่นนั้น


ฉันชอบหนังสือมาก ๆ :) ขอบคุณสำหรับคำแนะนำ
Katherine Rix

1

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

Quaternions เสนอคำอธิบายที่แตกต่างกันสำหรับคณิตศาสตร์บางอย่างมันอาจจะดี แต่ก็ไม่จำเป็นต้องมีแน่นอนเพราะคณิตศาสตร์ธรรมดาทั่วไปเพียงพอสำหรับการอธิบายการคำนวณใด ๆ ที่คุณสามารถทำได้กับ quaternions

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

ฉันไม่รู้ว่าคุณคิดว่ามันเป็นเพียงส่วนหนึ่งของคณิตศาสตร์พื้นฐานหรือไม่ แต่ตรีโกณมิติก็จำเป็นต้องสร้างรายชื่อด้วยเช่นกัน


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

ฟิสิกส์ของนิวตัน, การชนกันที่ละเอียดที่สุด คุณอาจไม่ได้รับการสอนเรื่องนี้ในโรงเรียนมัธยม แต่มันเป็นคณิตศาสตร์มากดังนั้นถ้าคุณชอบคณิตศาสตร์คุณควรจะดี
aaaaaaaaaaaa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.