[ bobby63 @ 06.01.2010. 09:00 ] @
Poz svima i sretna nova godina. Nesto se bas i ne snalazim u DirectX-u tj tek sam poceo ali evo problema sa kojime ne uspevam da izadjem na kraj vec nedeju dana. Imam u programu 3D objekte (uvezeni kao x) koji koriste png da se definise stepen providnosti (kao alpha) i to funkcionise super. Takodje ispred tih objekata imam sprites kojima je isto uz png definisana providnosti, sto takodje radi super(barem sprite u odnosu na sprite). Ako su dva sprajta jedan ispred drugog, providnost radi dobro. Problem je sto se iza sprajtova ne vide 3D objekti osim ako png na tom delu nije potpuno providan, na svim mestima gde su nijanse providnosti 3D objekat se ne vidi. Sprajtovi su definisani sa: Code: mainSprite = New Direct3D.Sprite(D3Ddev) ColorKeyVal = Color.FromArgb(255, 255, 255, 255) mainSpriteTexture = TextureLoader.FromFile(D3Ddev, "Maska.png", 800, 600, D3DX.Default, Usage.None, Format.Unknown, Pool.Default, Filter.Point, Filter.Point, ColorKeyVal.ToArgb) a crtaju se sa: Code: mainSprite.Begin(SpriteFlags.AlphaBlend) mainSprite.Draw2D(mainSpriteTexture, New Point(0, 0), 0, New Point(0, 0), Color.White) mainSprite.End() Inicijalizacija DirectX-a je(baren bitan deo): Code: D3Ddev.RenderState.ZBufferEnable = True D3Ddev.RenderState.FillMode = FillMode.Solid D3Ddev.RenderState.Lighting = True D3Ddev.SamplerState(0).MinFilter = TextureFilter.Point D3Ddev.SamplerState(0).MagFilter = TextureFilter.Linear D3Ddev.RenderState.AlphaBlendEnable = True D3Ddev.RenderState.SourceBlend = Blend.SourceAlpha D3Ddev.RenderState.DestinationBlend = Blend.InvSourceAlpha Program je u VB-u, mada bi i u C# trebalo da bude isto. Nadam se da sam uspeo da objasnim problem. Unapred hvala |