首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任天堂DS Homebrew中的Alpha混合精灵

任天堂DS Homebrew中的Alpha混合精灵
EN

Stack Overflow用户
提问于 2008-08-10 14:49:11
回答 2查看 2.1K关注 0票数 9

我正在尝试用devkitPro (包括libnds,libarm等)来阿尔法混合精灵和背景。

有人知道怎么做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-09-23 08:39:44

作为一个通用的参考,我曾经写过关于这个问题的a small blog entry。基本上,您首先必须定义哪个层与其他层进行alpha混合。Afaik

  • 源层必须位于目标层之上才能显示一些混合。这意味着源层的优先级应该在数值上低于目标层的优先级。
  • 源层是将是半透明的,目标是将被看到的(是的,我觉得这相当混乱)。

对于sprites, specifically,你有3种方法来实现alpha混合,这取决于你需要什么和你愿意为它付什么钱:

  • 你可以通过在REG_BLDCNT[_SUB]中打开BLEND_SRC_SPRITE来让所有的精灵都有一些alpha混合...没那么有用。
  • 可以使用ATTR0_TYPE_BLENDED有选择地启用某些精灵的混合。所有精灵的混合级别都是相同的(并且GBA精灵使用直接颜色(绕过调色板),因此layers)
  • bitmap-type精灵的ATTR2_PALETTE()字段是无用的,并已被回收到ATTR2_ALPHA.

票数 6
EN

Stack Overflow用户

发布于 2008-08-14 00:32:58

DS上的精灵可以使用blend control registers进行alpha混合。TONC提供了使混合在主屏幕上工作所需的信息,因为寄存器位置是相同的。子屏幕上的Alpha混合使用相同的过程,在1000h偏移时使用不同的寄存器。

您将看到的寄存器是主屏幕的REG_BLDMODREG_COLVREG_COLY,以及子屏幕的REG_BLDMOD_SUBREG_COLV_SUBREG_COLY_SUB

还请记住,您将必须change the sprite's graphic mode以启用混合每个精灵。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档