HRE เป็นตัวเรนเดอร์แบบคลัสเตอร์ตามเวลาจริงทางกายภาพที่สร้างขึ้นด้วย OpenGL และใช้เทคนิคที่อธิบายไว้ในกระดาษ Clustered Deferred and Forward shading โดย Ola Olsson, Markus Billeter และ Ulf Assarsson จุดมุ่งหมายของโครงการนี้คือการสร้างกรอบการทดสอบเพื่อแสดงเทคนิคกราฟิกแบบเลื่อนและไปข้างหน้า (ซึ่งเป็นส่วนไฮบริด) และเพื่อตรวจสอบจุดแข็งของการแรเงาแบบคลัสเตอร์ ฉันเขียนบล็อกโพสต์ยาวๆ ที่เต็มไปด้วยแอนิเมชั่นเจ๋งๆ ที่สามารถใช้เป็นข้อมูลเบื้องต้นเกี่ยวกับอัลกอริธึมการเรนเดอร์ที่มีประสิทธิภาพ รวมถึงคำแนะนำโดยละเอียดเกี่ยวกับการใช้งาน Clustered Shading ของฉัน ดังนั้นอย่าลืมลองดูที่นี่!
อัลกอริธึมนี้ได้รับเลือกเนื่องจากคุณประโยชน์หลักสองประการที่เหนือกว่าโซลูชันแบบเลื่อน/เรียงต่อแบบเดิม: ช่วยให้มีอิสระมากขึ้นในการเลือกเส้นทางการแรเงาไปข้างหน้าหรือเลื่อนตามต้องการ และเหมาะสมในระยะยาวที่ดีกว่าสำหรับแนวโน้มประสิทธิภาพของ GPU สมัยใหม่ ได้มีการนำไปใช้อย่างประสบความสำเร็จในเกมที่ดูดีที่สุดบางเกมในช่วงสองสามปีที่ผ่านมา โดยมีตัวอย่างที่โดดเด่นได้แก่: DOOM 2016, Just Cause 3 และ Detroit: Become Human
ขออภัย โครงการนี้ไม่ได้รับการดูแลอีกต่อไป หลังจากโพสต์ข้อความนี้ ฉันได้รับการว่าจ้างให้ทำงานที่ Rockstar Games ในตำแหน่ง Graphics Programmer และไม่มีเวลาทำงานไซด์โปรเจ็กต์ขนาดนี้อีกต่อไป ฉันวางแผนที่จะรักษามันไว้ (เช่นเดียวกับโปรเจ็กต์กราฟิกหลักอื่นๆ ของฉัน SSGE) เพื่อให้ผู้อื่นได้เห็นว่าฉันต้องทำอะไรในการบุกเข้าสู่อุตสาหกรรม ฉันจะยังคงช่วยเหลือใครก็ตามที่ประสบปัญหาหรือมีคำถามเกี่ยวกับเรื่องนี้ โปรดติดต่อฉันที่นี่หรือที่ Twitter ของฉันเกี่ยวกับเรื่องนี้หรือหัวข้อ GFX อื่น ๆ ที่คุณต้องการพูดคุย! ขอบคุณทุกคนที่ตรวจสอบโครงการนี้! :D
บิลด์ที่เสถียรสามารถพบได้ในหน้าการเผยแพร่ HRE
ปัจจุบันรองรับเฉพาะแพลตฟอร์ม Windows เท่านั้น
รอบการพัฒนาครั้งแรกเริ่มต้นในเดือนกันยายน 2018 และสิ้นสุดในเดือนธันวาคม 2018 ด้วยการรวม Image Based Lighting และการเปิดตัวเวอร์ชันเสถียรรุ่นแรก: HRE 0.01 "Aachen" ในอีกสองสามเดือนข้างหน้า ฉันจะแก้ไขปัญหาต่างๆ ที่ระบุไว้ในส่วนโครงการ โดยเริ่มต้นด้วยการแก้ไขข้อบกพร่องที่ไม่สำคัญที่เหลืออยู่ จากนั้นจึงดำเนินการเขียนระบบวัสดุใหม่ครั้งใหญ่ ต่อไปนี้เป็นรายการคุณลักษณะของเครื่องยนต์ที่ฉันตั้งเป้าที่จะรวมไว้ในอีกไม่กี่เดือนข้างหน้า เห็นได้ชัดว่าอาจมีการเปลี่ยนแปลงและทั้งหมดนั้น
ฉันจะเขียนบล็อกโพสต์แนบท้ายเหตุการณ์สำคัญแต่ละเหตุการณ์ โดยสรุปคุณลักษณะใหม่ๆ การใช้งาน และความยุ่งยากใดๆ ที่ฉันพบระหว่างทาง ในขณะเดียวกัน นี่คือโพสต์แรกที่มีภาพรวมของอัลกอริธึมการเรนเดอร์แบบดั้งเดิมอื่นๆ และสร้างเคสสำหรับการเรนเดอร์แบบคลัสเตอร์
Hybrid Rendering Engine
| -- assets
| | -- models # Meshes and textures
| | -- scenes # Scene description files in JSON format
| | -- shaders
| | | -- computeShaders # Compute shaders for clustered forward
| | | -- OldShaders # Shaders not currently in use
| | ` -- currentShaders # Shaders for the current rendering pipeline
| ` -- skyboxes # Skyboxes in either cubemap or equirectangular map form
| -- build # CMake compile
| -- include # Project header files
| -- libs # Check dependencies section for descriptions & links
| | -- ASSIMP
| | -- Dear imgui
| | -- Glad
| | -- Json c++
| | -- GLI
| | -- GLM
| | -- stb_image
| ` -- SDL2
| -- modules # CMake lib setup scripts
|-- src # C++ implementation files
` -- CMakeLists.txt # CMake build script
ในโครงการก่อนหน้าของฉัน SSGE ฉันพยายามลดจำนวนการพึ่งพาให้เหลือน้อยที่สุด อย่างไรก็ตาม คราวนี้ ลูกตุ้มได้หมุนไปทางอื่น และฉันไม่ได้จำกัดใดๆ (ด้วยเหตุผล) ในเรื่องไลบรารีที่ฉันสามารถรวมไว้ในโปรเจ็กต์ได้ ฉันทำสิ่งนี้เพราะฉันต้องการให้กระบวนการรวมและทำงานกับไลบรารีภายนอกใน C++ สะดวกสบายมากขึ้น
นี่คือรายชื่อห้องสมุดที่รวมอยู่ในโครงการในปัจจุบัน:
รายชื่อห้องสมุด ที่ไม่ รวมอยู่มีดังนี้:
ไลบรารีที่รวมไว้ทั้งหมดจะแสดงอยู่ที่นี่ภายใต้ใบอนุญาตที่เกี่ยวข้อง ซึ่งสามารถพบได้ในลิงก์ด้านบนหรือในเอกสาร Licenses.txt ในโฟลเดอร์ libs
มีรายการอ้างอิงที่จัดทำดัชนีไว้อย่างครอบคลุมสำหรับโครงการที่ฉันอัปเดตไม่มากก็น้อยในหน้านี้ของวิกิ อย่างไรก็ตาม ฉันพบว่าตัวเองกลับมาอ่านเนื้อหาบางส่วนอย่างต่อเนื่องเพื่ออ่านต่อหรือเมื่อต้องการแรงบันดาลใจ ดังนั้นฉันจึงเพิ่มลิงก์ด้านล่างเพื่อแชร์และเผยแพร่ความยอดเยี่ยมของสิ่งเหล่านี้ ตรวจสอบพวกเขาออก!
ขอขอบคุณศิลปิน 3D และพื้นผิวทุกคนที่ได้ทำให้เนื้อหาของตนใช้งานได้ฟรีและดูสวยงามมาก ถ้าไม่ใช่เพราะพวกคุณ ฉันคงยังคงจ้องมองกาน้ำชายูทาห์อันน่าเบื่อเดิมๆ ทั้งวันเลย!
หากฉันรับทราบผิด ระบุแหล่งที่มาไม่ถูกต้อง หรือพลาดการอ้างอิงใดๆ โปรดสร้างปัญหา GitHub ใหม่หรือส่ง DM มาให้ฉันทาง Twitter แล้วเราจะแก้ไขปัญหาทันที
ขอขอบคุณ Kostas Anagnostou และ Eric Arnebäck ที่สละเวลาตอบทุกคำถามของฉันในช่วง 2-3 เดือนที่ผ่านมา คำอธิบายของคุณช่วยให้เข้าใจทุกหัวข้อที่น่ากลัวได้ง่ายขึ้นมาก!
ใบอนุญาตเอ็มไอที
ลิขสิทธิ์ (c) 2018 แองเจิลออร์ติซ
อนุญาตให้บุคคลใดก็ตามที่ได้รับสำเนาของซอฟต์แวร์นี้และไฟล์เอกสารที่เกี่ยวข้อง ("ซอฟต์แวร์") อนุญาตโดยไม่เสียค่าใช้จ่าย เพื่อจัดการกับซอฟต์แวร์โดยไม่มีข้อจำกัด รวมถึงแต่ไม่จำกัดเพียงสิทธิ์ในการใช้ คัดลอก ปรับเปลี่ยน ผสาน เผยแพร่ แจกจ่าย ให้อนุญาตช่วง และ/หรือขายสำเนาของซอฟต์แวร์ และอนุญาตให้บุคคลที่ได้รับซอฟต์แวร์นี้สามารถทำได้ ภายใต้เงื่อนไขต่อไปนี้:
ประกาศเกี่ยวกับลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือส่วนสำคัญของซอฟต์แวร์
ซอฟต์แวร์นี้มีให้ "ตามที่เป็น" โดยไม่มีการรับประกันใดๆ ทั้งโดยชัดแจ้งหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเพียงการรับประกันความสามารถในการค้าขาย ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ และการไม่ละเมิด ไม่ว่าในกรณีใดผู้เขียนหรือผู้ถือลิขสิทธิ์จะต้องรับผิดต่อการเรียกร้องค่าเสียหายหรือความรับผิดอื่นใดไม่ว่าในการกระทำของสัญญาการละเมิดหรืออย่างอื่นที่เกิดขึ้นจากหรือเกี่ยวข้องกับซอฟต์แวร์หรือการใช้งานหรือข้อตกลงอื่น ๆ ใน ซอฟต์แวร์.