อ่าน 4 นาที
ฟาเรนไฮต์ (API กราฟิก)
Fahrenheit เป็นความพยายามในการสร้าง API ระดับสูงที่เป็นหนึ่งเดียวสำหรับ กราฟิกคอมพิวเตอร์ 3 มิติ เพื่อรวม Direct3D และ OpenGL เข้าด้วยกัน โดย ได้รับการออกแบบหลักๆ โดย Microsoft...
ฟาเรนไฮต์ (API กราฟิก)
Fahrenheit เป็นความพยายามในการสร้าง APIระดับสูงที่เป็นหนึ่งเดียวสำหรับกราฟิกคอมพิวเตอร์ 3 มิติเพื่อรวมDirect3DและOpenGL เข้าด้วยกัน โดย ได้รับการออกแบบหลักๆ โดยMicrosoftและSGIและยังรวมถึงงานจากความร่วมมือระหว่าง HP และ Microsoft ด้วย
Direct3D และ OpenGL เป็น API ระดับต่ำที่เน้นเฉพาะขั้นตอนการเรนเดอร์ในกระบวนการเรนเดอร์ 3 มิติ โปรแกรมที่ใช้ API เหล่านี้ต้องเขียนโค้ดจำนวนมากเพื่อจัดการส่วนที่เหลือของกระบวนการ Fahrenheit หวังที่จะนำเสนอ API เดียวที่จะทำงานส่วนใหญ่เหล่านี้ แล้วจึงเรียกใช้ Direct3D หรือ OpenGL สำหรับขั้นตอนสุดท้าย
โครงการ Fahrenheit ดั้งเดิมส่วนใหญ่ถูกทิ้งร้าง และในที่สุด Microsoft กับ SGI ก็ล้มเลิกความพยายามที่จะทำงานร่วมกัน ในท้ายที่สุด มีเพียง ส่วนของ กราฟฉากในระบบ Fahrenheit ที่รู้จักกันในชื่อXSG เท่านั้น ที่ได้รับการเผยแพร่และถูกยกเลิกในเวลาไม่นานหลังจากนั้น
ประวัติศาสตร์
พื้นหลัง
ในช่วงทศวรรษ 1990 OpenGLของ SGI ถือเป็นมาตรฐานโดยพฤตินัยสำหรับกราฟิกคอมพิวเตอร์ 3 มิติ ก่อนช่วงกลางทศวรรษ 1990 แพลตฟอร์มต่างๆ ได้ใช้โซลูชันที่กำหนดเองต่างๆ แต่พลังของ SGI ในตลาดกราฟิก ประกอบกับความพยายามของคณะกรรมการตรวจสอบสถาปัตยกรรม OpenGL (ARB) นำไปสู่การกำหนดมาตรฐาน OpenGL อย่างรวดเร็วในตลาด เวิร์กสเตชันกราฟิกส่วนใหญ่ในช่วงกลางทศวรรษ 1990 ไมโครซอฟต์ได้อนุญาตให้ใช้ OpenGL สำหรับระบบปฏิบัติการWindows NT ของตน ในฐานะระบบ 3 มิติหลัก ไมโครซอฟต์กำลังวางตำแหน่ง NT ให้เป็นระบบระดับเวิร์กสเตชัน และ OpenGL เป็นสิ่งจำเป็นเพื่อให้สามารถแข่งขันได้อย่างแท้จริงในตลาดนี้ การสนับสนุนครั้งแรกได้รับการเผยแพร่ใน Windows NT Workstation เวอร์ชัน 3.5 ในปี 1994 [ 1 ]
สิ่งที่ทำให้สับสนคือการที่ Microsoft ซื้อRenderMorphics ในเดือนกุมภาพันธ์ พ.ศ. 2538 [ 2 ] ผลิตภัณฑ์ Reality Labของพวกเขาเป็นไลบรารี 3 มิติที่เขียนขึ้นโดยเฉพาะเพื่อวัตถุประสงค์ในการเล่นเกม โดยมุ่งเป้าไปที่ตลาด "ระดับล่าง" เป็นหลัก หลังจากเปลี่ยนชื่อเป็นDirect3D 3.0แล้ว Microsoft ก็ได้เปิดตัวเป็น API 3 มิติหลักสำหรับWindows 95และการเขียนโปรแกรมเกม ซึ่งก่อให้เกิดการถกเถียงกันอย่างมากทั้งภายในและภายนอก Microsoft เกี่ยวกับข้อดีข้อเสียของ API ทั้งสอง และควรส่งเสริม Direct3D หรือไม่[ 3 ] [ 4 ] [ 5 ]
ในช่วงกลางทศวรรษ 1990 SGI ได้ทำงานอย่างต่อเนื่องเพื่อจัดหา API ระดับสูงบน OpenGL เพื่อให้การเขียนโปรแกรมง่ายขึ้น ในปี 1997 สิ่งนี้ได้พัฒนาไปสู่ระบบOpenGL++ ซึ่งเป็น API C++ แบบ retained-mode บน OpenGL พวกเขาเสนอให้ใช้เวอร์ชันที่ปรับปรุงแล้วเป็น API เดียวบน OpenGL หรือ API ระดับต่ำประสิทธิภาพสูงตัวใหม่ที่ Microsoft กำลังพัฒนาอยู่ (ไม่ใช่บนพื้นฐานของ Reality Lab) วิธีนี้ไม่เพียงแต่จะซ่อนรายละเอียดการใช้งานและทำให้สงคราม OpenGL/DirectX ไม่จำเป็นอีกต่อไป แต่ในขณะเดียวกันก็มอบอินเทอร์เฟซระดับสูงที่ดีกว่าอย่างมากสำหรับสภาพแวดล้อมการพัฒนา เชิงวัตถุ ที่แข็งแกร่งยิ่งขึ้น
ความพยายามของ OpenGL++ ยืดเยื้อใน ARB ตลอดปี 1997 แม้ว่า SGI จะทุ่มเททรัพยากรให้กับโครงการเพื่อจัดเตรียมการใช้งานตัวอย่าง แต่ดูเหมือนว่าพวกเขาจะไม่พอใจกับความคืบหน้าโดยรวมและบ่นว่า "มีการทำงานมากมาย แต่มีการสื่อสารค่อนข้างน้อย" [ 6 ]โดยเฉพาะอย่างยิ่ง Microsoft ได้ระบุอย่างชัดเจนว่าพวกเขาจะไม่สนับสนุนความพยายามนี้ และ SGI รู้สึกว่าการสนับสนุนของพวกเขาจะเป็นสิ่งจำเป็นสำหรับความพยายามใดๆ ที่จะเกิดขึ้นต่อไป
ประกาศ
แถลงการณ์ร่วมในเดือนธันวาคม พ.ศ. 2540 [ 7 ]ตามด้วยการประกาศในการประชุม ARB ในช่วงต้นปี พ.ศ. 2541 โดย SGI [ 8 ] ประกาศว่างานเกี่ยวกับ OpenGL++ ได้ถูกยกเลิก และ SGI ได้ร่วมมือกับ Microsoft เพื่อสร้างระบบใหม่ที่มีชื่อรหัสว่า "Fahrenheit" SGI จะเป็นผู้จัดหา API หลักขนาดกลางที่ใช้ในแอปพลิเคชันส่วนใหญ่ คือFahrenheit Scene Graph [ 9 ] รวมถึงเวอร์ชันที่ปรับปรุงแล้วสำหรับการจัดการโมเดลขนาดใหญ่มากจากแอปพลิเค ชัน CAD คือ Fahrenheit Large Model Microsoft จะจัดหาเอ็นจิ้นการเรนเดอร์ระดับต่ำใหม่สำหรับ Windows ที่รู้จักกันในชื่อFahrenheit Low Levelซึ่งโดยพื้นฐานแล้วเป็นการทดแทนเวอร์ชัน Direct3D ที่ใช้ Reality Lab [ 10 ]โครงการนี้ได้รับการประกาศอย่างเป็นทางการในงานSIGGRAPHพ.ศ. 2541 สำหรับการวางจำหน่ายในช่วงปลายปี พ.ศ. 2542 หรือต้นปี พ.ศ. 2543 [ 11 ]
Fahrenheit กลายเป็นจุดสนใจหลักของการพัฒนาที่ SGI เวิร์กสเตชันที่ใช้ MIPS ของพวกเขา กำลังสูญเสียความได้เปรียบด้านประสิทธิภาพที่เคยมีในช่วงต้นทศวรรษ 1990 อย่างรวดเร็ว และบริษัทก็ประสบปัญหาอย่างหนักเนื่องจากพีซีทั่วไปค่อยๆ รุกคืบเข้ามาในตลาดกราฟิกประสิทธิภาพสูง SGI มองว่า Fahrenheit เป็นกลยุทธ์การถอนตัว เมื่อพัฒนาเสร็จสมบูรณ์ พวกเขาจะสามารถย้ายไปใช้ผลิตภัณฑ์ที่ใช้พีซีได้ ในขณะที่ยังคงนำเสนอเครื่องมือพัฒนาที่ดีที่สุดสำหรับ API ที่เป็นสากลในปัจจุบัน แม้ว่าจะยังไม่มีการเริ่มงานพอร์ต แต่ชุดเครื่องมืออย่างOpen InventorและOpenGL Performerก็มีแผนที่จะนำมาใช้งานบน Fahrenheit ในอนาคต ซึ่งหมายความว่าพวกเขาสามารถส่งมอบระบบพัฒนาที่มีฟังก์ชันการทำงานครบถ้วนเพียงระบบเดียวสำหรับ Fahrenheit เมื่อวางจำหน่าย โดยรองรับทั้งลูกค้าปัจจุบันและลูกค้าใหม่[ 10 ]
การยกเลิก
ในปี 1999 เป็นที่ชัดเจนว่า Microsoft ไม่มีเจตนาที่จะส่งมอบ Low Level แม้ว่าจะทำงานอย่างเป็นทางการ แต่แทบไม่มีทรัพยากรใดถูกทุ่มเทให้กับการสร้างโค้ดจริง ๆ[ 11 ]ในขณะเดียวกัน Microsoft กำลังลงทุนอย่างมหาศาลใน DirectX 7.0 (คล้ายกับ 3.0 ส่วนใหญ่แค่ชื่อเท่านั้น) หากไม่มี Low Level Fahrenheit ก็ไม่สามารถส่งมอบบน Windows ได้ และโครงการก็หยุดชะงัก ในที่สุด SGI ก็ละทิ้งการทำงานใน Fahrenheit [ 12 ]และเริ่มวางแผนผลิตภัณฑ์ Scene Graph อื่น ๆ ซึ่งกลายเป็นโครงการสุดท้ายในชุดโครงการดังกล่าว
ในปี 2000 DirectX 7.0 ได้วางจำหน่ายในตลาดและได้รับความนิยมอย่างมาก DirectX กลายเป็น API หลักในช่วงที่เกม 3 มิติเฟื่องฟูในปลายทศวรรษ 1990 ในขณะนั้น Microsoft ได้ปล่อย Fahrenheit Scene Graph หรือ XSG ออกมา แต่ก็มีหมายเหตุระบุว่ามันจะไม่ได้รับการสนับสนุน ไม่มีการปล่อยเวอร์ชันใหม่ของ XSG ออกมาอีกเลย และหน้าเว็บทั้งหมดที่เกี่ยวข้องกับ Fahrenheit หรือ XSG บนเว็บไซต์ของ Microsoft และ SGI ก็หายไปหมดแล้ว การสนับสนุน OpenGL ที่เร่งความเร็วด้วยฮาร์ดแวร์ถูกตัดออกจากไดรเวอร์วิดีโอที่มาพร้อมกับWindows XPแม้ว่าผู้ผลิตการ์ดวิดีโอส่วนใหญ่จะมีเวอร์ชันของตนเองก็ตาม
คำอธิบาย
เมื่อเปรียบเทียบกับOpen InventorหรือIris Performerแล้ว การออกแบบของ XSG มีแนวคิดใหม่ๆ หลายอย่าง องค์ประกอบพื้นฐานและวิธีการสำรวจช่วยให้แอปพลิเคชันสามารถสร้างฉากในลักษณะที่เหมาะสมที่สุดกับโครงสร้างของข้อมูลที่กำลังแสดงผล จากนั้นจึงใช้ตัวปรับแต่งกราฟฉากเพื่อปรับโครงสร้างฉากใหม่ให้แสดงผลได้อย่างมีประสิทธิภาพมากขึ้นโดยไม่เปลี่ยนแปลงลักษณะของฉาก นักพัฒนาเพียงแค่ทำในสิ่งที่ดูเป็นธรรมชาติ และระบบก็จัดการให้ทำงานได้อย่างรวดเร็ว
การเรนเดอร์แบบไปป์ไลน์ช่วยให้แอปพลิเคชันแบบมัลติเธรดสามารถสร้างฉาก คัดกรององค์ประกอบพื้นฐาน และเรนเดอร์ในเธรดต่างๆ (โดยยืมมาจากไปป์ไลน์การคัดกรองและวาดภาพของแอปพลิเคชัน Performer) การแสดงข้อมูลฉากพื้นฐานได้รับการปรับให้เหมาะสมเพื่อลดปริมาณข้อมูลที่จัดเก็บให้น้อยที่สุด เพื่อหลีกเลี่ยงการทำซ้ำข้อมูลทั้งหมดในแต่ละเธรด
หนึ่งในคุณสมบัติที่เป็นเอกลักษณ์ของ XSG คือความสามารถในการแทนที่วิธีการส่วนใหญ่ที่ใช้ในการสำรวจกราฟด้วยวิธีการของตนเอง นักพัฒนาสามารถเขียนฟังก์ชันใหม่เพื่อสำรวจวิธีการจัดเก็บข้อมูลภายใน XSG ที่ตนเองรู้จักได้อย่างรวดเร็ว จากนั้นจึงเชื่อมโยงฟังก์ชันเหล่านั้นเข้ากับเส้นทางการแสดงผลที่มีอยู่
เดวิด ไบลธ์ สถาปนิกหลักของ Fahrenheit ที่ SGI เคยทำงานที่ Microsoft ในส่วนของ DirectX จนถึงปี 2010 นอกจากนี้เขายังดำรงตำแหน่งหัวหน้าสถาปนิกซอฟต์แวร์กราฟิกที่ Intel อีกด้วย
ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ฟาเรนไฮต์ (API กราฟิก)
Fahrenheit เป็นความพยายามในการสร้าง API ระดับสูงที่เป็นหนึ่งเดียวสำหรับ กราฟิกคอมพิวเตอร์ 3 มิติ เพื่อรวม Direct3D และ OpenGL เข้าด้วยกัน โดย ได้รับการออกแบบหลักๆ โดย Microsoft...
พื้นหลัง
ในช่วงทศวรรษ 1990 OpenGL ของ SGI ถือเป็น มาตรฐาน โดยพฤตินัย สำหรับกราฟิกคอมพิวเตอร์ 3 มิติ ก่อนช่วงกลางทศวรรษ 1990 แพลตฟอร์มต่างๆ ได้ใช้โซลูชันที่กำหนดเองต่างๆ แต่พลังของ SGI ในตลาดกราฟิก ประกอบกับความพยายามของ คณะกรรมการตรวจสอบสถาปัตยกรรม OpenGL (ARB)...
ประกาศ
แถลงการณ์ร่วมในเดือนธันวาคม พ.ศ. 2540 [ 7 ] ตามด้วยการประกาศในการประชุม ARB ในช่วงต้นปี พ.ศ.
การยกเลิก
ในปี 1999 เป็นที่ชัดเจนว่า Microsoft ไม่มีเจตนาที่จะส่งมอบ Low Level แม้ว่าจะทำงานอย่างเป็นทางการ แต่แทบไม่มีทรัพยากรใดถูกทุ่มเทให้กับการสร้างโค้ดจริง ๆ [ 11 ] ในขณะเดียวกัน Microsoft กำลังลงทุนอย่างมหาศาลใน DirectX 7.0 (คล้ายกับ 3.