ความแตกต่างระหว่าง Game Engine กับ Physics Engine กับเคอร์เนลการสร้างแบบจำลองทางเรขาคณิต

"กลไกการเรนเดอร์จะสร้างกราฟิก 3D แบบเคลื่อนไหวได้ด้วยวิธีต่างๆ มากมาย (การแรสเตอร์ การติดตามรังสี ฯลฯ)

แทนที่จะถูกตั้งโปรแกรมและคอมไพล์เพื่อดำเนินการบน CPU หรือ GPU โดยตรง เอ็นจิ้นการเรนเดอร์ส่วนใหญ่มักถูกสร้างขึ้นบนอินเทอร์เฟซการเขียนโปรแกรมการเรนเดอร์ (API) หนึ่งหรือหลายตัว เช่น Direct3D, OpenGL หรือ Vulkan ซึ่งให้ซอฟต์แวร์ที่เป็นนามธรรมของกราฟิก หน่วยประมวลผล (GPU) ไลบรารีระดับต่ำ เช่น DirectX, Simple DirectMedia Layer (SDL) และ OpenGL มักใช้ในเกมเช่นกัน เนื่องจากให้การเข้าถึงฮาร์ดแวร์คอมพิวเตอร์อื่นๆ โดยไม่ขึ้นอยู่กับฮาร์ดแวร์ เช่น อุปกรณ์อินพุต (เมาส์ คีย์บอร์ด และจอยสติ๊ก) การ์ดเครือข่าย และการ์ดเสียง" - Game Engine

"UNISURF เป็นระบบ CAD/CAM พื้นผิวรุ่นบุกเบิก ออกแบบมาเพื่อช่วยในการออกแบบตัวถังรถยนต์และเครื่องมือ ได้รับการพัฒนาโดยวิศวกรชาวฝรั่งเศส Pierre Bézier สำหรับ Renault ในปี 1968 และเข้าสู่การใช้งานเต็มรูปแบบที่บริษัทในปี 1975[1][2] ภายในปี 1999 พนักงาน Renault ประมาณ 1,500 คนได้ใช้ UNISURF ในการออกแบบและผลิตรถยนต์" การมาถึงของระบบ CAD/CAM

"เคอร์เนลการสร้างแบบจำลองทางเรขาคณิตคือส่วนประกอบซอฟต์แวร์การสร้างแบบจำลองสามมิติสามมิติที่ใช้ในแพ็คเกจการออกแบบโดยใช้คอมพิวเตอร์ช่วย" เคอร์เนลการสร้างแบบจำลองทางเรขาคณิต< /ก>

ฉันกำลังดิ้นรนเพื่อทำความเข้าใจสถาปัตยกรรมพื้นฐานของ geometric modeling kernels เมื่อเปรียบเทียบกับ game engines และ physics engines

คำถาม:

  1. ฉันเข้าใจถูกต้องหรือไม่ว่าเคอร์เนลการสร้างแบบจำลองทางเรขาคณิตจริงๆ แล้วเป็น API ระดับต่ำ โดยเฉพาะอย่างยิ่ง kernel loadable extensions ซึ่งใช้โดยเฉพาะเพื่อจัดการการเรนเดอร์การดำเนินการทางเรขาคณิต เช่น การสร้างการแสดงขอบเขตของวัตถุบนหน้าจอ

  2. geometric modeling kernels แตกต่างจาก API ที่ได้รับจาก OpenGL อย่างไร พวกเขาเขียนด้วยภาษา C++ หรือภาษาที่เก่ากว่าด้วย เนื่องจากฉันเชื่อว่ามันปรากฏก่อนหน้านี้หรือไม่

  3. ฉันเข้าใจถูกต้องหรือไม่ว่าเคอร์เนลการสร้างแบบจำลองทางเรขาคณิตเช่น ACIS, Parasolid ยังคงใช้โมดูลระดับต่ำที่เป็นกรรมสิทธิ์ของตัวเองต่อไป แทนที่จะเป็น OpenCL/OpenGL หรือเป็นแบบผสมกัน

  4. สถาปัตยกรรมของกลไกฟิสิกส์ในแง่ของ API คืออะไร มันใช้ OpenGL หรือ API กราฟิกระดับต่ำที่ได้รับมาอื่นๆ หรือไม่ สมมติว่า Havoc มันขึ้นอยู่กับ API ระดับต่ำอื่น ๆ เช่น Direct3D หรือไม่


person readonly    schedule 29.05.2020    source แหล่งที่มา


คำตอบ (1)


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

เคอร์เนลการสร้างแบบจำลองสมัยใหม่มักจะมาพร้อมกับ ตัวเรนเดอร์ 3 มิติ เพื่อแสดงโมเดล แต่ฟังก์ชันนี้มักจะใส่ไว้ในส่วนประกอบเฉพาะภายในกรอบงาน แพลตฟอร์มมีไลบรารีกราฟิกเร่งความเร็วด้วยฮาร์ดแวร์จำนวนจำกัด เช่น OpenGL, Vulkan และ Direct3D ดังนั้นเอ็นจิ้นกราฟิก 3D ที่มาพร้อมกับเคอร์เนลการสร้างแบบจำลองมักจะอาศัยไลบรารีระดับล่างตัวใดตัวหนึ่ง ในอดีต OpenGL ถูกใช้โดยแอปพลิเคชันอุตสาหกรรมส่วนใหญ่ (ตรงกันข้ามกับเกม) แต่ในปัจจุบันอาจไม่เหมือนเดิม

ภาษาที่เขียนเคอร์เนลการสร้างแบบจำลองอาจแตกต่างกัน แต่ฉันเชื่อว่าภาษาส่วนใหญ่เขียนด้วย C ++ เนื่องจากเคอร์เนลการสร้างแบบจำลองเริ่มถูกเขียนในสมัยก่อน เคอร์เนลเหล่านั้นอาจสืบทอดภาษากลางบางภาษา เช่น CDL ใน OCCT (ส่วนที่เหลือถูกลบออกตั้งแต่ OCCT 7.0.0) หรือโค้ดที่มาจากภาษาอื่น (เช่นจาก FORTRAN ซึ่งเป็นที่นิยมในอดีต) - เคอร์เนลการสร้างแบบจำลองส่วนใหญ่มีแนวโน้มที่จะไม่ใช้ภาษาเหล่านี้ แต่อาจคิดได้จากซอร์สโค้ดว่าโค้ด C ++ ของอัลกอริธึมบางตัวถูกแปลงจาก FORTRAN ในบางขั้นตอน (แต่แน่นอนว่าคุณไม่สามารถตรวจสอบจุดนี้ด้วยเคอร์เนลที่เป็นกรรมสิทธิ์ได้) .

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

ในความพยายามที่จะสรุป:

  • กลไกกราฟิก ใช้บริการสำหรับ การเรนเดอร์ เรขาคณิตที่มีอยู่ และใช้งานบน API ระดับต่ำ เช่น OpenGL ซึ่งรวมถึงการใช้งานแบบจำลองการแรเงา/วัสดุ (Phong, PBR metal-roughness), คำจำกัดความของกล้อง และเครื่องมืออื่นๆ มากมาย ที่ไม่ได้มาพร้อมกับ API ระดับต่ำ
  • เคอร์เนลการสร้างแบบจำลองทางเรขาคณิต ใช้โครงสร้างข้อมูล (เช่น Boundary Representation หรือ CSG) คณิตศาสตร์เชิงซ้อนสำหรับการสร้างแบบจำลองโดยวิศวกร (รวมถึงพื้นฐาน ฟิเลต์ การดำเนินการบูลีน) บนเรขาคณิตที่แน่นอนที่แสดงโดย B-Splines และที่คล้ายกัน (ตรงกันข้ามกับเครื่องมือที่เน้นศิลปินซึ่งมักใช้กับเรขาคณิตรูปหลายเหลี่ยม) เฟรมเวิร์กอาจมีเครื่องมืออื่นๆ รวมถึงเอ็นจิ้นกราฟิก แต่โดยปกติแล้วจะแยกออกจากเคอร์เนลเรขาคณิต เอ็นจิ้นกราฟิกมักจะไม่ทำงานโดยตรงกับเรขาคณิต B-Spline ดังนั้นเคอร์เนลการสร้างแบบจำลองเรขาคณิตจึงต้องสร้างรูปสามเหลี่ยมเพื่อเรนเดอร์รูปทรงเรขาคณิต
  • เครื่องมือฟิสิกส์ ใช้บริการที่เกี่ยวข้องกับการจำลองทางฟิสิกส์เท่านั้น em>. เอ็นจิ้นฟิสิกส์มีโมดูลตรวจจับการชนกัน โครงการอาจมีตัวอย่างโดยใช้ไลบรารีกราฟิกบางส่วน แต่เคอร์เนลไม่ควรขึ้นอยู่กับสิ่งใดเลย
  • เอ็นจิ้นเกม ผสมผสานเอ็นจิ้นกราฟิก, เอ็นจิ้นฟิสิกส์, เอ็นจิ้นเสียง และโดยปกติแล้ว ยังมีภาษาสคริปต์และเครื่องมืออื่นๆ เพื่อทำให้การพัฒนาเกมง่ายขึ้น

ส่วนประกอบ OCCT

โปรแกรมดู 3D OCCT

person gkv311    schedule 29.05.2020