प्रोसीजरल गेम डेवलपमेंट के लिए मेरे पसंदीदा टूल और तकनीकें
(cprimozic.net)-
प्रोजेक्ट अवलोकन
- कई वर्षों से ब्राउज़र में चलने वाले 3D scenes और levels पर काम कर रहा हूँ
- शुरुआत में यह अलग-अलग demos के रूप में शुरू हुआ था, लेकिन धीरे-धीरे यह आपस में जुड़े game-जैसे projects में विकसित हुआ
- कुछ खास elements को लागू करने के लिए procedural और generative techniques का उपयोग किया गया
-
Shaders + Textures
- ज़्यादातर textures को seamless बनाया गया है ताकि बड़े क्षेत्रों में भी pattern दिखाई न दे
- Three.JS में custom shaders बनाकर अतिरिक्त functionality दी गई
-
Triplanar Mapping
- UV map के बिना mesh पर texture लागू किया जा सकता है, इसलिए यह procedural रूप से generated terrain के लिए उपयोगी है
- इसे सरलता से implement किया जा सकता है और यह अलग-अलग meshes पर लागू हो सकता है
pow()function का उपयोग करके weights को समायोजित किया गया, जिससे quality बेहतर हुई और performance optimize हुई
-
Hex Tiling
- seamless textures की repetition को छिपाने वाला algorithm
- इसे एक standalone library के रूप में port किया गया, जिसे Three.JS projects में आसानी से integrate किया जा सकता है
- इसके लिए UV map की आवश्यकता होती है, और performance overhead काफ़ी अधिक है
-
Depth Pre-Pass
- performance सुधारने के लिए scene को दो बार render करके pixels की depth रिकॉर्ड की जाती है
- अधिक overdraw वाले scenes में यह performance को 30% से अधिक तक सुधार सकता है
-
AI-Powered PBR Texture Synthesis
- scene की quality बढ़ाने के लिए AI-generated textures का उपयोग किया गया
- DeepBump और Materialize का उपयोग करके PBR maps बनाए गए
-
Volumetric Fog/Clouds
- scene में clouds या fog जोड़ने वाले shaders विकसित किए गए
- अलग-अलग features जोड़ने के लिए LoD noise lookup का उपयोग किया गया
-
Meshes + Geometry
- runtime पर meshes को generate और deform करने की तकनीकों का अध्ययन किया गया
- मुख्य रूप से decoration या background elements को procedural रूप से generate किया गया
-
LoD Terrain
- noise functions का उपयोग करके terrain generate किया जाता है, और camera से दूरी के अनुसार resolution को dynamic रूप से adjust किया जाता है
-
Procedural Mesh Processing + Manipulation Pipeline
- low-poly meshes को procedural रूप से subdivide और deform करने के लिए एक pipeline बनाई गई
- normals को संभालने में काफ़ी मेहनत लगती है
-
Future Work
- Constructive Solid Geometry(CSG) का उपयोग करके meshes को merge या cut करने की योजना है
- बेहतर समझ के लिए इसे Rust में port करने का लक्ष्य है
GN⁺ का सारांश
- यह लेख procedural game development के लिए उपयोगी विभिन्न techniques और tools का परिचय देता है
- Triplanar Mapping और Hex Tiling जैसी texturing techniques के जरिए performance और quality दोनों में सुधार किया जाता है
- AI-आधारित texture generation और Volumetric Fog/Clouds shaders scene की realism को बढ़ाते हैं
- Constructive Solid Geometry जैसे future work में mesh deformation के लिए बड़ी संभावनाएँ हैं
- समान functionality वाले projects में Unity का ProBuilder और Houdini शामिल हैं
1 टिप्पणियां
Hacker News राय
पहले procedural generation में हाथ आज़माने का अनुभव रहा है
अच्छा terrain generation आसान नहीं है
वेब पर procedural techniques पर यह एक शानदार लेख है
depth prepass के इस्तेमाल को लेकर मिला-जुला अनुभव रहा है
3D artist के तौर पर यह लेख बहुत दिलचस्प लगा