浏览代码

Fixed post effect rendering bug.

Mark Sibly 7 年之前
父节点
当前提交
4cb1db0a7c

+ 2 - 0
.gitignore

@@ -60,3 +60,5 @@ Mollusk.exe
 
 
 .com.apple.timemachine.supported
 .com.apple.timemachine.supported
 
 
+.mx2
+

+ 14 - 0
VERSIONS.TXT

@@ -1,4 +1,18 @@
 
 
+***** Monkey-v2018.06 *****
+
+Added Timeout property to HttpRequest.
+
+Implemented HttpRequest on all targets - only GET tested.
+
+Added cheezy godrays effect - see mojo3d/tests/pbhspheres.monkey2
+
+Fixed deprecated warnings in android project template.
+
+Updated android SDK to: Android Studio 3.1.2 ; Android SDK 27 (Oreo 8.1) ; NDK 16.1.4479499 ; Android SDK Tools 26.1.1
+
+Point/spot light now render quads.
+
 ***** Monkey-v2018.05 Mx2cc-v1.1.13 Ted2go-2.10 *****
 ***** Monkey-v2018.05 Mx2cc-v1.1.13 Ted2go-2.10 *****
 
 
 Added simple support for .hdr pixmap/texture/image loading (wont work on android).
 Added simple support for .hdr pixmap/texture/image loading (wont work on android).

+ 9 - 3
modules/mojo3d/assets/shaders/effects/godrays.glsl

@@ -62,10 +62,16 @@ void main(){
 		
 		
 		fragColor+=sample;
 		fragColor+=sample;
 	}
 	}
+	
+	gl_FragColor=vec4( fragColor * m_Exposure,1.0 );
 
 
-	float depth=texture2D( r_DepthBuffer,v_BufferCoords * r_BufferCoordScale ).r;
+/*
+	float depth=texture2D( r_DepthBuffer,v_BufferCoords ).r;
+	
+//	depth=1.0;
 	
 	
-//	gl_FragColor=vec4( v_SourceBufferCoords,0.0,1.0 );//fragColor*m_Exposure,1.0 );
+//	gl_FragColor=vec4( v_BufferCoords,0.0,1.0 );
 
 
-	gl_FragColor=vec4( depth,0.0,0.0,1.0 );//fragColor*m_Exposure,1.0 );
+	gl_FragColor=vec4( depth,0.0,0.0,1.0 );
+*/
 }
 }

+ 22 - 23
modules/mojo3d/render/renderer.monkey2

@@ -235,17 +235,32 @@ When a new renderer is created, the config setting `MOJO3D\_RENDERER` can be use
 		_gdevice.Shader=_deferredLightingShader
 		_gdevice.Shader=_deferredLightingShader
 		_gdevice.CullMode=CullMode.None
 		_gdevice.CullMode=CullMode.None
 		
 		
-		_gdevice.RenderTarget=_renderTarget1
-		
 		_runiforms.SetMat4f( "InverseProjectionMatrix",_invProjMatrix )
 		_runiforms.SetMat4f( "InverseProjectionMatrix",_invProjMatrix )
 		
 		
 		RenderQuad()
 		RenderQuad()
+	End
+	
+	Method RenderDeferredFog()
 		
 		
-		_gdevice.RenderTarget=_renderTarget0
+		If _scene.FogColor.a=0 Return
+		
+		_gdevice.ColorMask=ColorMask.All
+		_gdevice.DepthMask=False
+		_gdevice.DepthFunc=DepthFunc.Always
+		_gdevice.BlendMode=BlendMode.Alpha
+		_gdevice.RenderPass=0
+		
+		_gdevice.Shader=_deferredFogShader
+		_gdevice.CullMode=CullMode.None
+		
+		RenderQuad()
 	End
 	End
 	
 	
 	Method RenderOpaqueDeferred()
 	Method RenderOpaqueDeferred()
 
 
+		'write to all deferred buffers
+		_gdevice.RenderTarget=_renderTarget0
+		
 		_gdevice.ColorMask=ColorMask.All
 		_gdevice.ColorMask=ColorMask.All
 		_gdevice.DepthMask=True
 		_gdevice.DepthMask=True
 		_gdevice.DepthFunc=DepthFunc.LessEqual
 		_gdevice.DepthFunc=DepthFunc.LessEqual
@@ -254,11 +269,15 @@ When a new renderer is created, the config setting `MOJO3D\_RENDERER` can be use
 		
 		
 		RenderOpaqueOps()
 		RenderOpaqueOps()
 		
 		
+		'only write to accum buffer only from now on...
+		_gdevice.RenderTarget=_renderTarget1
+		
 		For Local light:=Eachin _scene.Lights
 		For Local light:=Eachin _scene.Lights
 			
 			
 			RenderDeferredLighting( light )
 			RenderDeferredLighting( light )
 		Next
 		Next
 		
 		
+		RenderDeferredFog()
 	End
 	End
 	
 	
 	Method RenderOpaqueForward()
 	Method RenderOpaqueForward()
@@ -315,30 +334,10 @@ When a new renderer is created, the config setting `MOJO3D\_RENDERER` can be use
 		
 		
 	End
 	End
 	
 	
-	Method RenderDeferredFog()
-		
-		If _scene.FogColor.a=0 Return
-		
-		_gdevice.ColorMask=ColorMask.All
-		_gdevice.DepthMask=False
-		_gdevice.DepthFunc=DepthFunc.Always
-		_gdevice.BlendMode=BlendMode.Alpha
-		_gdevice.RenderPass=0
-		
-		_gdevice.RenderTarget=_renderTarget1
-		_gdevice.Shader=_deferredFogShader
-		_gdevice.CullMode=CullMode.None
-		
-		RenderQuad()
-
-		_gdevice.RenderTarget=_renderTarget0
-	End
-	
 	Method RenderOpaque()
 	Method RenderOpaque()
 		
 		
 		If _deferred 
 		If _deferred 
 			RenderOpaqueDeferred()
 			RenderOpaqueDeferred()
-			RenderDeferredFog()
 		Else 
 		Else 
 			RenderOpaqueForward()
 			RenderOpaqueForward()
 		Endif
 		Endif

+ 14 - 13
modules/mojo3d/tests/effects.monkey2

@@ -31,7 +31,7 @@ Class MyWindow Extends Window
 		Super.New( title,width,height,flags )
 		Super.New( title,width,height,flags )
 		
 		
 		_scene=Scene.GetCurrent()
 		_scene=Scene.GetCurrent()
-		_scene.ClearColor=Color.Black
+		_scene.ClearColor=Color.Sky
 		
 		
 		'create camera
 		'create camera
 		'
 		'
@@ -46,18 +46,17 @@ Class MyWindow Extends Window
 
 
 		'create effects
 		'create effects
 		'
 		'
+		_godrays=New GodraysEffect
+		_godrays.Enabled=false
+		_godrays.Light=_light
+
 		_bloom=New BloomEffect
 		_bloom=New BloomEffect
-		_bloom.Enabled=True
+		_bloom.Enabled=False
 		_scene.AddPostEffect( _bloom )
 		_scene.AddPostEffect( _bloom )
 		
 		
 		_mono=New MonochromeEffect
 		_mono=New MonochromeEffect
 		_mono.Enabled=False
 		_mono.Enabled=False
 		_scene.AddPostEffect( _mono )
 		_scene.AddPostEffect( _mono )
-
-		_godrays=New GodraysEffect
-		_godrays.Enabled=false
-		_godrays.Weight=4.0
-		_godrays.Light=_light
 		
 		
 		_scene.AddPostEffect( _godrays )
 		_scene.AddPostEffect( _godrays )
 		
 		
@@ -73,22 +72,24 @@ Class MyWindow Extends Window
 		
 		
 		RequestRender()
 		RequestRender()
 		
 		
-		If Keyboard.KeyHit( Key.Key1 ) _bloom.Enabled=Not _bloom.Enabled
-		If Keyboard.KeyHit( Key.Key2 ) _mono.Enabled=Not _mono.Enabled
-		If Keyboard.KeyHit( Key.Key3 ) _godrays.Enabled=Not _godrays.Enabled
+		If Keyboard.KeyHit( Key.Key1 ) _godrays.Enabled=Not _godrays.Enabled
+		If Keyboard.KeyHit( Key.Key2 ) _bloom.Enabled=Not _bloom.Enabled
+		If Keyboard.KeyHit( Key.Key3 ) _mono.Enabled=Not _mono.Enabled
 		
 		
 		_scene.Update()
 		_scene.Update()
 		
 		
 		_scene.Render( canvas )
 		_scene.Render( canvas )
 		
 		
-		canvas.DrawText( "(1) Bloom="+_bloom.Enabled,0,0 )
-		canvas.DrawText( "(2) Monochrome="+_mono.Enabled,0,16 )
-		canvas.DrawText( "(3) Godrays="+_godrays.Enabled,0,32 )
+		canvas.DrawText( "(1) Godrays="+_godrays.Enabled,0,0 )
+		canvas.DrawText( "(2) Bloom="+_bloom.Enabled,0,16 )
+		canvas.DrawText( "(3) Monochrome="+_mono.Enabled,0,32 )
 	End
 	End
 	
 	
 End
 End
 
 
 Function Main()
 Function Main()
+	
+	SetConfig( "MOJO_OPENGL_PROFILE","es" )
 
 
 	New AppInstance
 	New AppInstance