इस प्रोजेक्ट के बारे में
ZEngine (Zodiac Engine) एक ओपन-सोर्स 3D रेंडरिंग इंजन है जो C++ में लिखा गया है और Vulkan ग्राफिक्स API पर आधारित है। README इसे गेमिंग और वैज्ञानिक कंप्यूटेशन तथा विज़ुअलाइज़ेशन जैसी गतिविधियों के लिए स्थान देता है।
यह प्रोजेक्ट तीन घटकों के रूप में वितरित किया जाता है। ZEngine कोर रनटाइम है, जिसमें ECS, Vulkan रेंडरर, भौतिकी, ऑडियो और एक वर्चुअल फ़ाइल सिस्टम शामिल है। Tetragrama ZEngine के ऊपर बना एक एडिटर है जो सीन ऑथरिंग और एसेट प्रबंधन के लिए है। Panzerfaust एक प्रोजेक्ट लॉन्चर है जो C#/.NET में लिखा गया है और गेम प्रोजेक्ट बनाता, खोलता और प्रबंधित करता है; इसे एक अलग रिपॉजिटरी (ZodiacEngineHub) में होस्ट किया गया है।
समर्थित प्लेटफ़ॉर्म Windows, macOS और Linux (Debian/Ubuntu) हैं, जिन्हें सक्रिय रूप से विकसित और परीक्षण किया गया बताया गया है। पूर्ण दस्तावेज़ीकरण प्रोजेक्ट विकी में है, और एक रोडमैप फ़ाइल का संदर्भ दिया गया है।
सेटअप के लिए C++ टूलचेन और सहायक उपकरणों की आवश्यकता होती है। Windows पर: Visual Studio 2022 जिसमें Desktop development with C++, MSVC v143 और Windows 10/11 SDK, PowerShell Core, Python, CMake 4.1.2 या बाद का संस्करण, और LLVM शामिल हैं। macOS पर: Xcode, Homebrew, फिर CMake, NuGet, PowerShell Core और brew के माध्यम से LLVM/ClangFormat। Linux पर: build-essential, CMake, Ninja, LLVM/Clang, Python 3 और apt के माध्यम से NuGet, साथ ही PowerShell Core।
निर्भरताएँ कॉन्फ़िगरेशन समय पर CMake द्वारा FetchContent के माध्यम से स्वचालित रूप से प्राप्त की जाती हैं, इसलिए मैन्युअल सबमॉड्यूल इनिशियलाइज़ेशन की आवश्यकता नहीं है। बिल्डिंग रिपॉजिटरी रूट पर एक PowerShell स्क्रिप्ट द्वारा संचालित होती है: BuildEngine.ps1 जिसमें -Configurations Debug या Release और -RunBuilds $True शामिल है। -RunBuilds $False पास करने से बिना संकलन के बिल्ड निर्देशिका उत्पन्न होती है, और -Configurations को छोड़ने से दोनों कॉन्फ़िगरेशन बनते हैं।
निर्भरता सूची व्यापक है और चिंता के अनुसार समूहीकृत है। रेंडरिंग और विंडोइंग के लिए Vulkan-Headers और Vulkan-Loader, GPU मेमोरी के लिए VulkanMemoryAllocator, शेडर संकलन पाइपलाइन के लिए SPIRV-Cross, glslang और SPIRV-Tools, और विंडो निर्माण और इनपुट के लिए GLFW का उपयोग किया जाता है। UI सिस्टम (ZUI) फ़ॉन्ट रैस्टराइज़ेशन के लिए FreeType और विजेट कुंजी हैशिंग के लिए rapidhash का उपयोग करता है। एसेट लोडिंग में लीगेसी 3D आयात के लिए Assimp, glTF 2.0 के लिए fastgltf, FBX के लिए ufbx, वर्टेक्स कैश, ओवरड्रॉ और LOD अनुकूलन के लिए meshoptimizer, छवि लोडिंग (PNG, JPEG, HDR) के लिए STB और ज़िप/डिफ्लेट संपीड़न के लिए miniz शामिल है। मेमोरी चर-आकार इंजन स्लैब के लिए O(1) डायनामिक आवंटक के रूप में tlsf का उपयोग करती है। डेटा प्रारूपों में nlohmann/json, एसेट पाइपलाइन के लिए simdjson और कॉन्फ़िगरेशन के लिए yaml-cpp शामिल हैं। लॉगिंग और उपयोगिताओं में spdlog, fmt, stduuid, CLI11 और ZENGINE_TRACY फ़्लैग के माध्यम से वैकल्पिक फ्रेम प्रोफाइलर के रूप में Tracy शामिल हैं। यूनिट परीक्षण के लिए GoogleTest का उपयोग किया जाता है, और एक GitHub Actions वर्कफ़्लो इंजन का निर्माण और परीक्षण करता है।
यह प्रोजेक्ट MIT लाइसेंस प्राप्त है और योगदान का स्वागत करता है, पुल रिक्वेस्ट खोलने से पहले एक योगदान गाइड का संदर्भ दिया गया है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.