【发布时间】:2013-01-21 23:25:05
【问题描述】:
我在纹理透明度方面遇到了一些问题,希望您能提供帮助。
详情:
- XNA 4.0
-
纹理来源是BMP,我用代码透明的:
public void Feketealapú(string Azonosító) { //textúra megállapítása Texture2D Textúra = Textúrák[TextúraSzáma(Azonosító)]; //adatok lekérése Color[] buffer = new Color[Textúra.Width * Textúra.Height]; Textúra.GetData<Color>(buffer); //adatok módosítása for (int i = 0; i < buffer.Length; i++) { Color szín = buffer[i]; szín.A = ((byte)((szín.R + szín.B + szín.G) / 3)); buffer[i] = szín; } //adatok visszaírása Textúra.SetData<Color>(buffer); } -
在开始绘制 3d 内容之前,我会使用以下内容:
public void Rajzolj() { GStatic.Játék.GrafikaiCsatorna.BlendState = BlendState.AlphaBlend; GStatic.Játék.GrafikaiCsatorna.DepthStencilState = DepthStencilState.Default; GStatic.Játék.GrafikaiCsatorna.RasterizerState = RasterizerState.CullCounterClockwise; GStatic.Játék.GrafikaiCsatorna.SamplerStates[0] = SamplerState.LinearWrap;..等等
如果我使用 BlendState.Opaque,我不会得到透明纹理。
我遇到了以下问题:http://youtu.be/ZiPzyk7AWu8
编辑:关于问题的更多细节是:问题在于透明纹理,它模拟了火焰效果。火焰来自几个具有这些透明纹理的矩形。如果我从一个角度看火焰,我应该通过透明纹理看到另一个火焰效果的矩形,什么也是透明的。问题是,我看到的是模型背后的地板纹理。
那么有人可以帮帮我吗?
提前致谢: 彼得
【问题讨论】:
-
您是否考虑过约束广告牌而不是 4 个四边形。它将用更少的顶点和代码解决这个问题。
-
+1 确实是个好主意,但我还不想要。