c# - xna 4.0 需要特殊混合

标签 c# xna-4.0

我有 2 个动态纹理,想将第二个纹理颜色添加到第一个纹理颜色但是就在第一个纹理颜色 alpha 不为 0 的地方 像逆透明的东西 我添加两个图片链接以显示我的意思:

http://img.7setare.com/images/k5znp5efpn1szfvwka.pnghttp://img.7setare.com/images/vs4p0qx81zxxrfh1v8d5.png

只是碰撞部分必须添加两个纹理像素颜色

谢谢你的帮助

最佳答案

也许使用 BlendState.Additive 就足够了。

或者也许它可以通过自定义 BlendState 来实现......但我没有这方面的经验......

或者你可以制作一个着色器,你应该注意你必须四边形:

  1. Quad 和一个布娃娃。 (Qrd)
  2. 带圆圈的四边形。 (质检)

你在 Qrd 上绘制 Qc...

所以你必须将你在拥有 Qc 的像素着色器中获得的纹理坐标转换为 Qrd 空间中的纹理坐标......

然后从 Qrd 纹理中采样颜色, 如果 alpha 接近于零,则剪切像素... 否则你从 Qrc 纹理返回样本

关于c# - xna 4.0 需要特殊混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7783890/

相关文章:

c# - 拾取击键 Ctrl-Alt-Q

c# - 如何为进行异步 WebClient 调用的 winforms 应用程序创建全局异常处理程序

c# - 在代码中逐一应用 EF 核心迁移

c# - XNA 柏林噪音星球

c# - FBX 模型无法在 XNA 4.0 中正确显示

c# - Fruit Basket,如何使用Linq从篮子或水果的角度查看?

c# - 如果列存在,则从数据库中选择列

c# - XNA 4.0 发光物体

c# - 手动控制何时重绘屏幕

c# - 如何检查鼠标左键是否双击?