ब्लॉग पर वापस
ट्यूटोरियल

Normal Map Conventions: OpenGL vs DirectX समझाया गया

आपका normal map Unreal में inverted क्यों दिखता है लेकिन Unity में ठीक है — tangent-space Y axis conventions की सादी-भाषा व्याख्या, concrete fixes के साथ।

Admin23 अप्रैल 20264 मिनट पढ़ें11

आप एक normal map को Unreal में प्लग करते हैं और surface इस तरह light करता है जैसे सूरज नीचे से आ रहा हो। आप एक ही फ़ाइल को Unity या Blender में प्लग करते हैं — बहुत अच्छा दिखता है। mesh समान है। texture समान है। क्या चल रहा है?

दो Industries, एक Axis पर असहमति

Normal maps अपने RGB channels में एक surface direction store करते हैं। Red = X, green = Y, blue = Z। हर PBR engine उन्हें एक ही तरीके से decode करता है एक exception के साथ: Y का sign।

OpenGL convention (Y+): एक उज्जवल green channel का मतलब है surface ऊपर की ओर इशारा करता है। Unity, Godot, Blender (Cycles और Eevee), Substance Painter के default export, और हर WebGL-based engine द्वारा उपयोग किया जाता है।

DirectX convention (Y−): उज्जवल green का मतलब है surface नीचे की ओर इशारा करता है। Unreal Engine, legacy Direct3D toolchain, और कुछ CryEngine/Xbox-era assets द्वारा उपयोग किया जाता है।

PNG में समान bytes। विपरीत physical meaning।

एक नज़र में कैसे बताएं

अपने normal map में एक hemispherical bump (जैसे एक बटन या गुंबद) को देखें। OpenGL convention में, bump के नीचे गहरा green होगा क्योंकि surface Y− की ओर rotate हो रहा है, light से दूर। DirectX convention में, नीचे उज्जवल green है।

यदि आपकी lighting in-engine में backwards लगती है — highlights जहां shadows होने चाहिए — आपके पास एक convention mismatch है।

Fix में 5 सेकंड लगते हैं

Unreal में, texture import dialog का एक Flip Green Channel checkbox है। इसे toggle करें और engine sample time पर G channel को invert करता है। अपने source को फिर से export करने की जरूरत नहीं।

Unity में, texture type को Normal map के रूप में सेट करें और importer सब कुछ handle करता है — Unity OpenGL की उम्मीद करता है, लेकिन अगर file गलत दिखती है तो यह आपको चेतावनी देगा। Blender में, एक Separate Color → Invert G → Combine Color node chain का उपयोग करें, या Normal Map node में सीधे DirectX-style input चुनें।

पहली जगह में दो Standards क्यों?

1990 के दशक में, OpenGL और DirectX ने विपरीत texture coordinate spaces को परिभाषित किया — OpenGL में Y बढ़ता हुआ, DirectX में Y घटता हुआ। जब normal maps mid-2000s में आम हो गए, तो हर toolchain ने अपने space को अपने outputs में bake किया। divergence stick हो गया क्योंकि एक established pipeline को flip करना महंगा है।

Confusion के बिना Normal Maps Generate करना

aukimi Normal Map Generator आपको export करते समय convention को explicitly pick करने देता है। यह heightmap की luminance पर एक Sobel gradient चलाता है, फिर (−dx·s, −dy·s, 1) को RGB में pack करता है — DirectX चुनते समय Y flipped के साथ। आप generation के बाद convention को toggle कर सकते हैं और कुछ भी फिर से upload किए बिना फिर से download कर सकते हैं।

आंतरिक रूप से formula समान है। एकमात्र अंतर वह sign है जो हम green channel में लिखने से पहले Y component पर लागू करते हैं। यह जानकर, आप किसी भी image editor के साथ एक फ़ाइल को conventions के बीच convert कर सकते हैं: PNG खोलें, green channel को चुनें, इसे invert करें, save करें। यह सब "Flip Green Channel" है जो Unreal में करता है।

Quick Reference

  • Unity, Godot, Blender, Substance Painter (default): OpenGL (Y+)।
  • Unreal Engine, legacy Direct3D: DirectX (Y−)।
  • Unreal में गलत लग रहा है? import settings में Flip Green Channel को enable करें।
  • Unity में गलत लग रहा है? आपने शायद एक DirectX-convention tool से export किया — green channel को invert करें या फिर से export करें।

एक बार जब आप convention को internalize कर लेते हैं, तो fix trivial है। सबसे मुश्किल हिस्सा पहली बार इसे recognize करना है।

#normal-map#3d#pbr#shaders#opengl#directx

क्या आपको यह लेख पसंद आया?

ShareHN

संबंधित लेख

industry

क्रिएटिव स्टैक बस ढह गया: अप्रैल के अंत में एक सप्ताह की AI टूलिंग, 2026

27 अप्रैल से 4 मई 2026 के बीच, Adobe, Luma, Novi, fal, Figma, Canva, HeyGen और Anthropic सभी ने आठ दिनों में एक ही सीमा को पार किया। यहाँ बताया गया है कि क्या लॉन्च हुआ, इसका क्या मतलब है, और ब्राउज़र-आधारित क्रिएटिव सुइट्स को इसे एकीकृत करने का प्रयास कहाँ छोड़ता है।

4 मई 2026लेख पढ़ें
industry

2026 में AI संगीत और SFX: इंडी गेम ऑडियो में वास्तव में क्या काम करता है

तीन साल पहले, इंडी गेम ऑडियो का मतलब या तो रॉयल्टी-मुक्त लाइब्रेरी लाइसेंस करना था (सस्ता, जेनेरिक, हर गेम समान लगता है) या एक संगीतकार को नियुक्त करना था (बेहतरीन, महंगा)। 2026 में, AI स्कोर बनाता है जो शिप होता है। यहां जानिए कौन से टूल्स डिलीवर करते हैं — और कहां एक मानव संगीतकार अभी भी जीतता है।

2 मई 2026लेख पढ़ें
industry

2026 में AI मेश जेनरेशन: गेम पाइपलाइन में असल में क्या शिप होता है

Image-to-3D अठारह महीने में "अजीब डेमो" से "इंडी प्रोजेक्ट में शिप हो रहा है" तक पहुँच गया। Tripo, Meshy, Rodin, और Hyper3D प्रोडक्शन में असल में क्या करते हैं — और कहाँ 3D आर्टिस्ट हर बार मॉडल को हराता है।

28 अप्रैल 2026लेख पढ़ें