में अल्फा ब्लेंडिंग स्प्राइट्स devkitPro (libnds, libarm, आदि सहित) के साथ अल्फा मिश्रण स्प्राइट्स और पृष्ठभूमि की कोशिश कर रहा हूं।निंटेंडो डीएस होमब्रू
क्या कोई यह जानता है कि यह कैसे करें?
में अल्फा ब्लेंडिंग स्प्राइट्स devkitPro (libnds, libarm, आदि सहित) के साथ अल्फा मिश्रण स्प्राइट्स और पृष्ठभूमि की कोशिश कर रहा हूं।निंटेंडो डीएस होमब्रू
क्या कोई यह जानता है कि यह कैसे करें?
एक सामान्य संदर्भ के रूप में, मैंने एक बार उस मुद्दे के बारे में a small blog entry लिखा था। असल में, आपको सबसे पहले परिभाषित करना होगा कि कौन सी परत अल्फा-मिश्रित है जिसके खिलाफ अन्य परतें हैं। Afaik,
sprites, specifically के लिए, आप तो आप क्या जरूरत पर निर्भर करता है अल्फा सम्मिश्रण प्राप्त करने के लिए 3 तरीके हैं और आप क्या इसके लिए "देने के लिए तैयार" कर रहे हैं:
BLEND_SRC_SPRITE
पर चालू करके कुछ अल्फा-ब्लेंडिंग करें ... उपयोगी नहीं है।ATTR0_TYPE_BLENDED
का उपयोग कर कुछ sprites के मिश्रण पर चयन कर सकते हैं। सभी स्प्राइट्स (और परतों) के लिए मिश्रण स्तर समान होगाATTR2_PALETTE()
जीबीए स्प्राइट्स का क्षेत्र बेकार है और इसे ATTR2_ALPHA
में पुनर्नवीनीकरण किया गया है।यह लंबा समय रहा है क्योंकि मैंने कोई जीबीए प्रोग्रामिंग किया है, लेकिन जैसा कि मुझे याद है, डीएस जीबीए का समर्थन करने वाली सामग्री के अधिकांश (यदि नहीं सभी) का समर्थन करता है। This लिंक में एक अनुभाग है जिसमें जीबीए (धारा 13.2) के लिए अल्फा ब्लेंडिंग कैसे करें। मुझे नहीं पता कि ऐसा करने का एक डीएस-विशिष्ट तरीका है, लेकिन यह आपके लिए काम करना चाहिए।
डीएस पर स्प्राइट blend control registers का उपयोग करके अल्फा मिश्रित किया जा सकता है। मुख्य स्क्रीन पर काम करने के लिए टोनक आवश्यक जानकारी देता है क्योंकि रजिस्टर स्थान समान हैं। सबस्क्रीन पर अल्फा मिश्रण एक ही प्रक्रिया का उपयोग 1000h ऑफसेट पर विभिन्न रजिस्टरों के साथ करता है।
रजिस्टरों को आप देख रहे होंगे REG_BLDMOD
, REG_COLV
, और मुख्य स्क्रीन के लिए REG_COLY
और REG_BLDMOD_SUB
, REG_COLV_SUB
, और उप स्क्रीन के लिए REG_COLY_SUB
हैं।
यह भी याद रखें कि आपको प्रति स्प्राइट मिश्रण को सक्षम करने के लिए change the sprite's graphic mode करना होगा।
बहुत जीबीए विशिष्ट – CVertex