Prechádzať zdrojové kódy

Fixed transparent materials depth buffer issue.

Mark Sibly 7 rokov pred
rodič
commit
6773d7f997
1 zmenil súbory, kde vykonal 6 pridanie a 3 odobranie
  1. 6 3
      modules/mojo3d/render/renderer.monkey2

+ 6 - 3
modules/mojo3d/render/renderer.monkey2

@@ -257,9 +257,6 @@ When a new renderer is created, the config setting `MOJO3D\_RENDERER` can be use
 	End
 	
 	Method RenderOpaqueDeferred()
-
-		'write to all deferred buffers
-		_gdevice.RenderTarget=_renderTarget0
 		
 		_gdevice.ColorMask=ColorMask.All
 		_gdevice.DepthMask=True
@@ -354,6 +351,8 @@ When a new renderer is created, the config setting `MOJO3D\_RENDERER` can be use
 	End
 
 	Method RenderTransparent()
+		
+		If _deferred _gdevice.RenderTarget=_renderTarget0
 
 		Local first:=True
 		
@@ -553,6 +552,8 @@ When a new renderer is created, the config setting `MOJO3D\_RENDERER` can be use
 	
 	Method RenderPostEffects()
 		
+		If _deferred _gdevice.RenderTarget=_renderTarget1
+		
 		PostEffect.BeginRendering( _gdevice,_runiforms )
 		
 		For Local effect:=Eachin _scene.PostEffects
@@ -907,6 +908,8 @@ When a new renderer is created, the config setting `MOJO3D\_RENDERER` can be use
 		If _accumBuffer And size.x<=_accumBuffer.Size.x And size.y<=_accumBuffer.Size.y Return
 		
 		_accumBuffer?.Discard()
+		_colorBuffer?.Discard()
+		_normalBuffer?.Discard()
 		_depthBuffer?.Discard()
 		_renderTarget0?.Discard()
 		_renderTarget1?.Discard()