在使用RenderToSurface繪製半透明對象時(當我在設備上繪製對象時繪製對象時),我面臨問題。問題是當我在RenderToSurface上繪製Alpha值爲50%的對象時,以及當我繪製表面到設備時,對象的透明度無效。我的代碼如下。在使用RenderToSurface繪圖時出現透明問題
[code] RenderingSurface.BeginScene(RenderTexture.GetSurfaceLevel(0),view);
_device.Clear(ClearFlags.Target| ClearFlags.ZBuffer, Color.FromArgb(0, Color.Black), 1.0f, 0);
using (Sprite s = new Sprite(_device))
{
s.Begin(SpriteFlags.DoNotSaveState);
s.Draw(ObjecTexture, new Microsoft.DirectX.Vector3(0, 0, 0), new Microsoft.DirectX.Vector3(0, 1, 0), Color.White.ToArgb());
s.End();
}
RenderingSurface.EndScene(Filter.None);
RenderSurface具有50%透明度的相同形狀。
繪製表面的代碼。
_device.BeginScene();
_device.Clear(ClearFlags.Target | ClearFlags.ZBuffer | ClearFlags.Stencil, BackgroundColor, 1, 0);
using (Sprite s = new Sprite(_device))
{
s.Begin(SpriteFlags.DoNotSaveState);
s.Draw(RenderTexture, new Microsoft.DirectX.Vector3(0, 0, 0), new Microsoft.DirectX.Vector3(0, 1, 0), Color.White.ToArgb());
s.End();
}
你是指「物體的透明度無效」是什麼意思? – NickLH
對象的透明度無效意味着它進一步縮小,在繪製RenderToSurface後它比實際透明度更高。 – Firoz