gpt4 book ai didi

c# - MonoGame - BlendState - 2D SpriteBatch

转载 作者:行者123 更新时间:2023-11-29 04:40:34 31 4
gpt4 key购买 nike

我需要 SpriteBatch 来按照我在 WPF 或普通 UIKit 应用程序中的预期方式渲染图像:

  • 如您所料,部分透明的 PNG 会相互叠加渲染
  • 我有一个可以修改的 Alpha,最好是使用 Color.White 并修改 A 值。

Closest 一直在使用 BlendState.NonPremultiplied,但我得到了一些奇怪的线条,其中部分透明的 PNG 相互重叠。

我在 Windows 上遇到了类似的问题 (see here) ,但通过更改 XNA 内容项目中的 Premultiplied 设置修复了该问题。我怎样才能对 MonoGame 做类似的事情? (我预计 OpenGL 会有所不同)

最佳答案

我们通过使用两种不同的设置解决了这个问题。

在 Windows 和 XNA 上:

  • 使用BlendState.NonPremultiplied
  • 将所有 PNG 内容项目的默认设置更改为 Premultiply = False
  • 要修改 Sprite 的 Alpha 值,请使用 Color.White 并设置 A

在 MonoGame 和 iOS 上:

  • 使用BlendState.AlphaBlend
  • 保持 PNG 不变
  • 要修改 Sprite 的 Alpha 值,请使用 Color.White * (float)Alpha/(float)byte.MaxValue

我的 PNG进行预乘,并且完全按照您在 Photoshop 中所期望的方式使用。

关于c# - MonoGame - BlendState - 2D SpriteBatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10463629/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com