2
0
Эх сурвалжийг харах

Updated tests for mega renderer.

Mark Sibly 7 жил өмнө
parent
commit
f0222be5cf

+ 10 - 19
modules/mojo3d/tests/anisotropic.monkey2

@@ -7,8 +7,6 @@ Namespace myapp
 
 #Import "assets/"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
@@ -21,8 +19,6 @@ Class MyWindow Extends Window
 	
 	Field _camera:Camera
 	
-	Field _light:Light
-	
 	Field _ground:Model
 	
 	Method New( title:String="Simple mojo app",width:Int=640,height:Int=480,flags:WindowFlags=WindowFlags.Resizable )
@@ -33,24 +29,19 @@ Class MyWindow Extends Window
 		
 		'create scene
 		'		
-		_scene=Scene.GetCurrent()
+		_scene=New Scene
 		
-		_scene.EnvColor=Color.Black
-		_scene.ClearColor=Color.Black
-		_scene.AmbientLight=Color.Black
+		'for a totally 'black' scene
+		_scene.ClearColor=Color.Black		'clears screen to black
+		_scene.AmbientLight=Color.Black		'disables all ambient light
+		_scene.EnvColor=Color.Black			'disables all environmental reflections
 
 		'create camera
 		'
-		_camera=New Camera
-		_camera.Near=1
-		_camera.Far=1000
+		_camera=New Camera( Self )
 		_camera.Move( 0,2,0 )
+		New FlyBehaviour( _camera )
 
-		'create light
-		'
-		'_light=New Light
-		'_light.RotateX( 90 )
-		
 		'createa simple 'grid' texture
 		'
 		Local pixmap:=New Pixmap( 16,16 )
@@ -75,12 +66,12 @@ Class MyWindow Extends Window
 	End
 	
 	Method OnRender( canvas:Canvas ) Override
-
+		
 		RequestRender()
 		
-		util.Fly( _camera,Self )
+		_scene.Update()
 		
-		_scene.Render( canvas,_camera )
+		_scene.Render( canvas )
 	End
 	
 End

+ 5 - 12
modules/mojo3d/tests/bloom.monkey2

@@ -6,8 +6,6 @@ Namespace myapp
 
 #Import "assets/"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
@@ -38,15 +36,13 @@ Class MyWindow Extends Window
 		
 		'create camera
 		'
-		_camera=New Camera
-		_camera.Near=.1
-		_camera.Far=100
+		_camera=New Camera( self )
 		_camera.Move( 0,10,-10 )
+		New FlyBehaviour( _camera )
 		
 		'create light
 		'
 		_light=New Light
-
 		_light.RotateX( 90 )
 		
 		Local material:=New PbrMaterial( Color.Black )
@@ -58,18 +54,15 @@ Class MyWindow Extends Window
 	End
 	
 	Method OnRender( canvas:Canvas ) Override
-	
-		RequestRender()
 		
-		If Keyboard.KeyHit( Key.Space ) _donut.Visible=Not _donut.Visible
+		RequestRender()
 		
 		_donut.Rotate( .1,.2,.3 )
 		
-		util.Fly( _camera,Self )
+		_scene.Render( canvas )
 		
-		_scene.Render( canvas,_camera )
+		canvas.DrawText( "FPS="+App.FPS,Width,0,1,0 )
 		
-		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
 	End
 	
 End

+ 4 - 6
modules/mojo3d/tests/bouncyball_gltf2.monkey2

@@ -30,9 +30,7 @@ Class MyWindow Extends Window
 		
 		'create camera
 		'
-		_camera=New Camera
-		_camera.Near=.1
-		_camera.Far=100
+		_camera=New Camera( Self )
 		_camera.Move( 0,10,-5 )
 		
 		New FlyBehaviour( _camera )
@@ -50,7 +48,7 @@ Class MyWindow Extends Window
 		
 		_model.Animator.Animate( 0 )
 		
-		_model.Move( 0,10,0 )
+		_model.Move( 0,7,0 )
 		
 '		_model.Mesh.FitVertices( New Boxf( -1,1 ),False )
 	End
@@ -61,9 +59,9 @@ Class MyWindow Extends Window
 		
 		_scene.Update()
 		
-		_scene.Render( canvas,_camera )
+		_scene.Render( canvas )
 		
-		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
+		canvas.DrawText( "FPS="+App.FPS,0,0 )
 	End
 	
 End

+ 8 - 12
modules/mojo3d/tests/cubes.monkey2

@@ -6,8 +6,6 @@ Namespace myapp
 
 #Import "assets/"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
@@ -26,26 +24,25 @@ Class MyWindow Extends Window
 		
 		Print opengl.glGetString( opengl.GL_VERSION )
 		
-		SwapInterval=0
-		
 		_scene=Scene.GetCurrent()
 		
 		_scene.ClearColor=Color.Sky
 		
 		'create camera
 		'
-		_camera=New Camera
+		_camera=New Camera( Self )
 		_camera.Near=.1
-		_camera.Far=100
+		_camera.Far=1000
 		_camera.Move( 0,10,-10 )
 		
+		New FlyBehaviour( _camera )
+		
 		'create light
 		'
 		_light=New Light
-
 		_light.Rotate( 30,60,0 )
 		
-		'Create donut - metallic silver...
+		'Create cube
 		'
 		Local cube:=Model.CreateBox( New Boxf( -1,1 ),1,1,1,New PbrMaterial( Color.White ) )
 		
@@ -59,16 +56,15 @@ Class MyWindow Extends Window
 		Next
 		
 		cube.Destroy()
-		
 	End
 	
 	Method OnRender( canvas:Canvas ) Override
-	
+		
 		RequestRender()
 		
-		util.Fly( _camera,Self )
+		_scene.Update()
 		
-		_scene.Render( canvas,_camera )
+		_scene.Render( canvas )
 		
 		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
 	End

+ 30 - 36
modules/mojo3d/tests/cubeseam.monkey2

@@ -7,8 +7,6 @@ Namespace myapp
 
 #Import "assets/"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
@@ -27,65 +25,61 @@ Class MyWindow Extends Window
 
 		Super.New( title,width,height,flags )
 		
-		'little mini cubemap
-		Local pixmap:=New Pixmap( 4,3 )
-		pixmap.Clear( Color.Black )
-		pixmap.SetPixelARGB( 1,0,$ffff0000 )
-		pixmap.SetPixelARGB( 1,1,$ff00ff00 )
-		pixmap.SetPixelARGB( 1,2,$ff0000ff )
-		pixmap.SetPixelARGB( 0,1,$ffffff00 )
-		pixmap.SetPixelARGB( 2,1,$ffff00ff )
-		pixmap.SetPixelARGB( 3,1,$ff00ffff )
-		Local cubemap:=New Texture( pixmap,TextureFlags.Cubemap|TextureFlags.FilterMipmap )		'seamless
-'		Local cubemap:=New Texture( pixmap,TextureFlags.Cubemap )								'seamed
-		
 		_scene=Scene.GetCurrent()
 		
-		_scene.EnvTexture=cubemap
-'		_scene.SkyTexture=cubemap
-		
 		_scene.AmbientLight=Color.Black
 		
 		_scene.ClearColor=Color.Black
 		
-		Local bloom:=New BloomEffect
-		bloom.Passes=4
+		ToggleEnv()
 		
 		'create camera
 		'
-		_camera=New Camera
-		_camera.Near=.1
-		_camera.Far=100
-		_camera.Move( 0,10,-10 )
-		
-		'create light
-		'
-		'_light=New Light
-		'_light.RotateX( 90 )	'aim directional light 'down' - Pi/2=90 degrees.
+		_camera=New Camera( Self )
+		_camera.Move( 0,0,-5 )
+		New FlyBehaviour( _camera )
 		
-		'create donut - metallic silver...
+		'create white donut
 		'		
-'		Local material:=New PbrMaterial( Color.White,1,0 )	'shiny metallic white
-		Local material:=New PbrMaterial( Color.White,0,1 )	'rough non-metallic white
+		Local material:=New PbrMaterial( Color.White,1,1 )
 		
 		_donut=Model.CreateTorus( 2,.5,48,24,material )
+	End
+	
+	Method ToggleEnv()
+		
+		Global _filter:TextureFlags=Null
+		
+		_filter=_filter ? Null Else TextureFlags.FilterMipmap
+			
+		'little mini cubemap
+		Local pixmap:=New Pixmap( 4,3 )
+		pixmap.Clear( Color.Black )
+		pixmap.SetPixelARGB( 1,0,$ffff0000 )
+		pixmap.SetPixelARGB( 1,1,$ff00ff00 )
+		pixmap.SetPixelARGB( 1,2,$ff0000ff )
+		pixmap.SetPixelARGB( 0,1,$ffffff00 )
+		pixmap.SetPixelARGB( 2,1,$ffff00ff )
+		pixmap.SetPixelARGB( 3,1,$ff00ffff )
+		Local cubemap:=New Texture( pixmap,TextureFlags.Cubemap|_filter )
+		
+		_scene.EnvTexture=cubemap
 		
-		_donut.Move( 0,10,0 )
 	End
 	
 	Method OnRender( canvas:Canvas ) Override
 	
 		RequestRender()
 		
-		If Keyboard.KeyHit( Key.Space ) _donut.Visible=Not _donut.Visible
+		If Keyboard.KeyHit( Key.Space ) ToggleEnv()
 		
 		_donut.Rotate( .1,.2,.3 )
 		
-		util.Fly( _camera,Self )
+		_scene.Update()
 		
-		_scene.Render( canvas,_camera )
+		_scene.Render( canvas )
 		
-		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
+		canvas.DrawText( "Hit <space> to toggle cubemap filtering (ie: seamless cubemaps)",0,0 )
 	End
 	
 End

+ 18 - 19
modules/mojo3d/tests/donut.monkey2

@@ -7,12 +7,19 @@ Namespace myapp
 
 #Import "assets/"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
 
+Function Main()
+	
+	New AppInstance
+	
+	New MyWindow
+	
+	App.Run()
+End
+
 Class MyWindow Extends Window
 	
 	Field _scene:Scene
@@ -27,21 +34,23 @@ Class MyWindow Extends Window
 
 		Super.New( title,width,height,flags )
 		
-		_scene=Scene.GetCurrent()
+		SetConfig( "MOJO3D_RENDERER","forward" )
+		
+		_scene=New Scene
 		
 		_scene.ClearColor=Color.Sky
 		
 		'create camera
 		'
-		_camera=New Camera
-		_camera.Near=.1
-		_camera.Far=100
+		_camera=New Camera( Self )
 		_camera.Move( 0,10,-10 )
 		
+		New FlyBehaviour( _camera )
+		
 		'create light
 		'
 		_light=New Light
-		_light.RotateX( 90 )
+		_light.Rotate( 75,15,0 )
 		
 		'create donut - metallic silver...
 		
@@ -56,24 +65,14 @@ Class MyWindow Extends Window
 	
 		RequestRender()
 		
-		If Keyboard.KeyHit( Key.Space ) _donut.Visible=Not _donut.Visible
-		
 		_donut.Rotate( .1,.2,.3 )
 		
-		util.Fly( _camera,Self )
+		_scene.Update()
 		
-		_scene.Render( canvas )',_camera )
+		_camera.Render( canvas )
 		
 		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
 	End
 	
 End
 
-Function Main()
-
-	New AppInstance
-	
-	New MyWindow
-	
-	App.Run()
-End

+ 18 - 24
modules/mojo3d/tests/ducks.monkey2

@@ -7,8 +7,6 @@ Namespace myapp
 
 #Import "assets/"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
@@ -21,8 +19,6 @@ Class MyWindow Extends Window
 	
 	Field _light:Light
 	
-	Field _light2:Light
-	
 	Field _ground:Model
 	
 	Field _ducks:=New Stack<Model>
@@ -31,34 +27,29 @@ Class MyWindow Extends Window
 
 		Super.New( title,width,height,flags )
 		
-		Print "GL_VERSION="+opengl.glGetString( opengl.GL_VERSION )
-		
-		'SwapInterval=0
+		SetConfig( "MOJO3D_RENDERER","forward" )
 		
 		'create scene
 		'		
-		_scene=Scene.GetCurrent()
+		_scene=New Scene
 		
-		_scene.ClearColor=Color.Sky
+		'for softer shadows
+		'
+		_scene.ShadowAlpha=.6
 		
 		'create camera
 		'
-		_camera=New Camera
-		_camera.Viewport=New Recti( 0,0,640,480 )
-		_camera.Near=.1
-		_camera.Far=50
-		_camera.FOV=90
+		_camera=New Camera( Self )
 		_camera.Move( 0,15,-20 )
 		
 		New FlyBehaviour( _camera )
 		
 		'create light
+		'
 		_light=New Light
-		_light.Rotate( 75,15,0 )
-		_light.Move( 0,20,0 )
-		_light.Range=40
 		_light.CastsShadow=True
-
+		_light.Rotate( 75,15,0 )
+		
 		'create ground
 		'
 		_ground=Model.CreateBox( New Boxf( -50,-1,-50,50,0,50 ),1,1,1,New PbrMaterial( Color.Green,0,1 ) )
@@ -84,9 +75,11 @@ Class MyWindow Extends Window
 				copy.RotateY( i )
 				
 				copy.Move( 0,0,6+m*16 )
-				
+
 				copy.Scale=New Vec3f( 1 )
 				
+'				copy.Alpha=1-m
+				
 				For Local j:=0 Until copy.Materials.Length
 				
 					Local material:=Cast<PbrMaterial>( copy.Materials[j].Copy() )
@@ -95,6 +88,7 @@ Class MyWindow Extends Window
 					material.RoughnessFactor=i/360.0
 					
 					copy.Materials[j]=material
+					
 				Next
 				
 				_ducks.Push( copy )
@@ -109,19 +103,19 @@ Class MyWindow Extends Window
 
 		RequestRender()
 		
+		_ducks[0].Rotate( 0,-.01,0 )
+		
 		_scene.Update()
 		
-		_scene.Render( canvas )
+		_camera.Render( canvas )
 
-		canvas.Scale( Width/640.0,Height/480.0 )
-		
-		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
+		canvas.DrawText( "FPS="+App.FPS,Width,0,1,0 )
 	End
 	
 End
 
 Function Main()
-
+	
 	New AppInstance
 	
 	New MyWindow

+ 8 - 10
modules/mojo3d/tests/fishes.monkey2

@@ -6,8 +6,6 @@ Namespace myapp
 
 #Import "assets/fish.glb"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
@@ -20,8 +18,6 @@ Class MyWindow Extends Window
 	
 	Field _light:Light
 	
-	Field _light2:Light
-	
 	Field _ground:Model
 	
 	Field _ducks:=New Stack<Model>
@@ -32,18 +28,21 @@ Class MyWindow Extends Window
 		
 		Print "GL_VERSION="+opengl.glGetString( opengl.GL_VERSION )
 		
-		'SwapInterval=0
+'		SetConfig( "MOJO3D_RENDERER_DEFERRED",1 )
+		
+		SwapInterval=1
 		
 		'create scene
 		'		
-		_scene=Scene.GetCurrent()
+		_scene=New Scene
 		
 		_scene.ClearColor=Color.Sky
 		
+		_scene.ShadowAlpha=.5
+		
 		'create camera
 		'
-		_camera=New Camera
-		_camera.Viewport=New Recti( 0,0,640,480 )
+		_camera=New Camera( Self )
 		_camera.Near=.1
 		_camera.Far=50
 		_camera.FOV=90
@@ -54,7 +53,6 @@ Class MyWindow Extends Window
 		'create light
 		_light=New Light
 		_light.Rotate( 75,15,0 )
-		_light.Move( 0,20,0 )
 		_light.Range=40
 		_light.CastsShadow=True
 
@@ -110,7 +108,7 @@ Class MyWindow Extends Window
 		
 		_scene.Update()
 		
-		_scene.Render( canvas,_camera )
+		_scene.Render( canvas )
 
 		canvas.Scale( Width/640.0,Height/480.0 )
 		

+ 2 - 6
modules/mojo3d/tests/glb_test.monkey2

@@ -6,8 +6,6 @@ Namespace myapp
 
 #Import "assets/platform.glb"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
@@ -32,9 +30,7 @@ Class MyWindow Extends Window
 		
 		'create camera
 		'
-		_camera=New Camera
-		_camera.Near=.1
-		_camera.Far=100
+		_camera=New Camera( Self )
 		_camera.Move( 0,10,-10 )
 		
 		New FlyBehaviour( _camera )
@@ -57,7 +53,7 @@ Class MyWindow Extends Window
 		
 		_scene.Update()
 		
-		_scene.Render( canvas,_camera )
+		_scene.Render( canvas )
 		
 		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
 	End

+ 19 - 19
modules/mojo3d/tests/makequad.monkey2

@@ -1,4 +1,9 @@
 
+#rem
+
+Very simple demo showing how to make a custom mesh.
+
+#end
 #Import "<std>"
 #Import "<mojo>"
 #Import "<mojo3d>"
@@ -19,39 +24,34 @@ Class MyWindow Extends Window
 	
 	Method New()
 		
-		'get scene
+		'create scene
 		'
-		_scene=Scene.GetCurrent()
+		_scene=New Scene
 
 		'create camera
 		'
-		_camera=New Camera
-		_camera.Near=.1
-		_camera.Far=100
+		_camera=New Camera( Self )
 		_camera.Move( 0,0,-2.5 )
 		
 		'create light
 		'
 		_light=New Light
+		_light.Rotate( 60,30,0 )
 		
 		'create quad mesh
 		'
-		Local vertices:=New Vertex3f[4]
-		vertices[0].position=New Vec3f( -1, 1,0 )
-		vertices[1].position=New Vec3f(  1, 1,0 )
-		vertices[2].position=New Vec3f(  1,-1,0 )
-		vertices[3].position=New Vec3f( -1,-1,0 )
+		Local vertices:=New Vertex3f[](
+			New Vertex3f( -1, 1,0 ),
+			New Vertex3f(  1, 1,0 ),
+			New Vertex3f(  1,-1,0 ),
+			New Vertex3f( -1,-1,0 ) )
 
-		Local indices:=New UInt[6]
-		indices[0]=0
-		indices[1]=1
-		indices[2]=2
-		indices[3]=0
-		indices[4]=2
-		indices[5]=3
+		Local indices:=New UInt[]( 0,1,2,0,2,3 )
 		
 		Local mesh:=New Mesh( vertices,indices )
 		
+		'Update mesh normals since we haven't provided them ourselves
+		'
 		mesh.UpdateNormals()
 		
 		'create model for the mesh
@@ -64,12 +64,12 @@ Class MyWindow Extends Window
 	End
 	
 	Method OnRender( canvas:Canvas ) Override
-
+		
 		RequestRender()
 		
 		_model.RotateY( 1 )
 		
-		_scene.Render( canvas,_camera )
+		_scene.Render( canvas )
 
 		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
 	End

+ 10 - 8
modules/mojo3d/tests/morpher.monkey2

@@ -7,8 +7,6 @@ Namespace myapp
 
 #Import "assets/"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
@@ -96,20 +94,23 @@ Class MyWindow Extends Window
 		
 		'create scene
 		'		
-		_scene=Scene.GetCurrent()
+		_scene=New Scene
 		
 		_scene.ClearColor=Color.Sky
 		
 		'create camera
 		'
 		_camera=New Camera
+		
 		_camera.Move( 0,0,-5 )
 		
+		New FlyBehaviour( _camera )
+		
 		'create light
 		'
 		_light=New Light
-		_light.RotateX( 90 )
-		_light.CastsShadow=True
+		
+		_light.Rotate( 75,15,0 )
 		
 		Local mesh1:=Mesh.CreateBox( New Boxf( -1,1 ),8,8,8 )
 		
@@ -126,6 +127,7 @@ Class MyWindow Extends Window
 		Local material:=New PbrMaterial( Color.Green )
 		
 		_morpher=New Morpher( mesh1,mesh2,material )
+		
 		_morpher.Visible=True
 		
 	End
@@ -133,10 +135,10 @@ Class MyWindow Extends Window
 	Method OnRender( canvas:Canvas ) Override
 
 		RequestRender()
-
-		util.Fly( _camera,Self )
 		
-		_scene.Render( canvas,_camera )
+		_camera.Viewport=Rect
+
+		_scene.Render( canvas )
 
 		canvas.Scale( Width/640.0,Height/480.0 )
 		

+ 16 - 20
modules/mojo3d/tests/particles.monkey2

@@ -6,8 +6,6 @@ Namespace myapp
 
 #Import "assets/"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
@@ -32,12 +30,16 @@ Class MyWindow Extends Window
 		
 		_scene.SkyTexture=Texture.Load( "asset::miramar-skybox.jpg",TextureFlags.FilterMipmap|TextureFlags.Cubemap )
 		
+		_scene.FogColor=Color.Sky
+		_scene.FogNear=20
+		_scene.FogFar=1000
+		
 		'create camera
 		'
-		_camera=New Camera
-		_camera.Near=.1
-		_camera.Far=100
+		_camera=New Camera( Self )
+		_camera.Near=.01
 		_camera.Move( 0,1,-1 )
+		New FlyBehaviour( _camera )
 		
 		'create light
 		'
@@ -46,7 +48,7 @@ Class MyWindow Extends Window
 		
 		'create ground
 		'
-		_ground=Model.CreateBox( New Boxf( -50,-1,-50,50,0,50 ),1,1,1,New PbrMaterial( Color.Brown*.5 ) )
+		_ground=Model.CreateBox( New Boxf( -50,-1,-50,50,0,50 ),1,1,1,New PbrMaterial( Color.Green * .5 ) )
 		
 		_particles=New ParticleSystem( 15000 )
 		_particles.RotateX( -90 )	'point upwards!
@@ -60,36 +62,30 @@ Class MyWindow Extends Window
 		pbuffer.Fade=0.0			'how long before paticle starts fading out in seconds.
 		pbuffer.Colors=New Color[]( Color.White,Color.Yellow,Color.Orange,Color.Red )
 		pbuffer.ConeAngle=30		'angle of particle emission cone.
-		pbuffer.MinVelocity=10.0	'min particle velocity.
-		pbuffer.MaxVelocity=10.0	'max particle velocity.
-		pbuffer.MinSize=24.0		'min particle size.
-		pbuffer.MaxSize=32.0		'max particle size.
-		
+		pbuffer.MinVelocity=15.0	'min particle velocity.
+		pbuffer.MaxVelocity=20.0	'max particle velocity.
+		pbuffer.MinSize=32.0		'min particle size.
+		pbuffer.MaxSize=64.0		'max particle size.
 		
 		For Local an:=0 Until 360 Step 45
+			
 			Local pivot:=New Entity
 			pivot.RotateY( an )
 			pivot.MoveZ( 20 )
+			pivot.Visible=True
 			
 			_particles.Copy( pivot )
 		Next
 		
-		_particles.SetDynamicProperty( "blah",New IntStack )
-		
-		_particles.GetDynamicProperty<IntStack>( "blah" ).Push( 10 )
-		
-		
-		'particles.AddParticles( 5000 )
-		
 	End
 	
 	Method OnRender( canvas:Canvas ) Override
 	
 		RequestRender()
 		
-		util.Fly( _camera,Self )
+		_scene.Update()
 		
-		_scene.Render( canvas,_camera )
+		_scene.Render( canvas )
 		
 		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
 	End

+ 9 - 10
modules/mojo3d/tests/pbrspheres.monkey2

@@ -7,8 +7,6 @@ Namespace myapp
 
 #Import "assets/"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
@@ -29,17 +27,18 @@ Class MyWindow Extends Window
 
 		Super.New( title,width,height,flags )
 		
-		_scene=Scene.GetCurrent()
+		_scene=New Scene
 		
 		_scene.SkyTexture=Texture.Load( "asset::miramar-skybox.jpg",TextureFlags.FilterMipmap|TextureFlags.Cubemap )
 		
 		'create camera
 		'
-		_camera=New Camera
-		_camera.Near=.1
-		_camera.Far=100
+		_camera=New Camera( Self )
+		_camera.Near=.01
 		_camera.Move( 0,10,-10 )
 		
+		New FlyBehaviour( _camera )
+		
 		'create light
 		'
 		_light=New Light
@@ -62,14 +61,14 @@ Class MyWindow Extends Window
 	End
 	
 	Method OnRender( canvas:Canvas ) Override
-	
+		
 		RequestRender()
 		
-		util.Fly( _camera,Self )
+		_scene.Update()
 		
-		_scene.Render( canvas,_camera )
+		_scene.Render( canvas )
 		
-		canvas.DrawText( "FPS="+App.FPS,Width/2,0,.5,0 )
+		canvas.DrawText( "FPS="+App.FPS,Width,0,1,0 )
 	End
 	
 End

+ 1 - 2
modules/mojo3d/tests/shapes.monkey2

@@ -7,8 +7,6 @@ Namespace myapp
 
 #Import "assets/"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
@@ -59,6 +57,7 @@ Class MyWindow Extends Window
 		'
 		_light=New Light
 		_light.RotateX( 75,15 )
+		_light.CastsShadow=true
 		
 		'create ground
 		'

+ 24 - 33
modules/mojo3d/tests/sprites.monkey2

@@ -7,18 +7,23 @@ Namespace myapp
 
 #Import "assets/"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
 
+Function Main()
+	
+	New AppInstance
+	
+	New MyWindow
+	
+	App.Run()
+End
+
 Class MyWindow Extends Window
 	
 	Field _scene:Scene
 	
-	Field _fog:FogEffect
-	
 	Field _camera:Camera
 	
 	Field _light:Light
@@ -31,32 +36,28 @@ Class MyWindow Extends Window
 
 		Super.New( title,width,height,flags )
 		
-		Print opengl.glGetString( opengl.GL_VERSION )
+'		SetConfig( "MOJO3D_RENDERER","forward" )
 		
-		SwapInterval=0
-		
-		_scene=Scene.GetCurrent()
+		_scene=New Scene
 		
 		_scene.SkyTexture=Texture.Load( "asset::miramar-skybox.jpg",TextureFlags.FilterMipmap|TextureFlags.Cubemap )
 		
-		'create fog
-		'
-		_fog=New FogEffect
-		_fog.Near=0
-		_fog.Far=50
-		_scene.AddPostEffect( _fog )
+		_scene.FogColor=Color.Sky
+		_scene.FogNear=10
+		_scene.FogFar=30
 		
 		'create camera
 		'
-		_camera=New Camera
+		_camera=New Camera( Self )
 		_camera.Near=.1
 		_camera.Far=100
 		_camera.Move( 0,10,-10 )
+		New FlyBehaviour( _camera )
 		
 		'create light
 		'
 		_light=New Light
-		_light.Rotate( 60,45,0 )	'aim directional light 'down' - Pi/2=90 degrees.
+		_light.Rotate( 60,45,0 )
 		
 		'create ground
 		'
@@ -68,13 +69,13 @@ Class MyWindow Extends Window
 		
 		material.AlphaDiscard=1.0/255.0
 		
-		For Local i:=0 Until 10000
+		For Local i:=0 Until 1000
 			
 			Local sprite:=New Sprite( material )
 			
 			sprite.Move( Rnd(-50,50),0,Rnd(-50,50) )
 			
-			sprite.Scale=New Vec3f( Rnd(2,3),Rnd(4,5),1 )
+			sprite.Scale=New Vec3f( Rnd(4,5),Rnd(5,6),1 )
 			
 			sprite.Handle=New Vec2f( .5,0 )
 			
@@ -83,11 +84,11 @@ Class MyWindow Extends Window
 			_sprites.Push( sprite )
 		Next
 		
-		For Local i:=0 Until 100
+		For Local i:=0 Until 1'00
 			
-'			Local box:=Model.CreateBox( New Boxf( -5,0,-5,5,Rnd(2,10),5 ),1,1,1,New PbrMaterial( New Color( Rnd(),Rnd(),Rnd() ) ) )
+			Local box:=Model.CreateBox( New Boxf( -5,0,-5,5,Rnd(2,10),5 ),1,1,1,New PbrMaterial( New Color( Rnd(),Rnd(),Rnd() ) ) )
 			
-'			box.Move( Rnd(-50,50),0,Rnd(-50,50) )
+			box.Move( Rnd(-50,50),0,Rnd(-50,50) )
 
 		next			
 		
@@ -97,22 +98,12 @@ Class MyWindow Extends Window
 	
 		RequestRender()
 		
-		util.Fly( _camera,Self )
+		_scene.Update()
 		
-		_scene.Render( canvas,_camera )
+		_scene.Render( canvas )
 		
 		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
 	End
 	
 End
 
-Function Main()
-	
-'	SetConfig( "MOJO_OPENGL_PROFILE","es" )
-	
-	New AppInstance
-	
-	New MyWindow
-	
-	App.Run()
-End

+ 23 - 11
modules/mojo3d/tests/terrainmesh.monkey2

@@ -5,9 +5,11 @@ Namespace myapp
 #Import "<mojo>"
 #Import "<mojo3d>"
 
-#import "assets/terrain_256.png"
+#Import "assets/miramar-skybox.jpg"
+
+#Import "assets/terrain_256.png"
+#Import "assets/mossy-ground1.pbr@/mossy-ground1.pbr"
 
-#Import "util"
 
 Using std..
 Using mojo..
@@ -29,8 +31,11 @@ Class MyWindow Extends Window
 		
 		'create scene
 		'		
-		_scene=Scene.GetCurrent()
-		_scene.ClearColor=Color.Sky
+		_scene=New Scene
+		_scene.SkyTexture=Texture.Load( "asset::miramar-skybox.jpg",TextureFlags.FilterMipmap|TextureFlags.Cubemap )
+		_scene.FogColor=Color.White *.7
+		_scene.FogNear=75
+		_scene.FogFar=100
 		
 		'create camera
 		'
@@ -38,23 +43,28 @@ Class MyWindow Extends Window
 		_camera.Near=.1
 		_camera.Far=100
 		_camera.Move( 0,15,-20 )
-		Local fly:=New FlyBehaviour( _camera )
+		New FlyBehaviour( _camera )
 		
 		'create light
 		'
 		_light=New Light
-		_light.RotateX( 60 )
+		_light.RotateX( 45 )
 
 		'create terrain
 		'
+		'box
+		Local terrainBox:=New Boxf( -256,0,-256,256,32,256 )
+		
 		'heightmap
-		Local terrain_hmap:=Pixmap.Load( "asset::terrain_256.png" )
+		Local terrainHMap:=Pixmap.Load( "asset::terrain_256.png" )
 
 		'material		
-		Local terrain_material:=New PbrMaterial( Color.Green )
+		Local terrainMaterial:=PbrMaterial.Load( "asset::mossy-ground1.pbr" )
+		terrainMaterial.ScaleTextureMatrix( 64,64 )
 		
 		'model+mesh
-		_terrain=Model.CreateTerrain( terrain_hmap,New Boxf( -256,0,-256,256,32,256 ),terrain_material )
+		_terrain=Model.CreateTerrain( terrainHMap,terrainBox,terrainMaterial )
+
 		_terrain.CastsShadow=False
 		
 	End
@@ -63,13 +73,15 @@ Class MyWindow Extends Window
 
 		RequestRender()
 		
+		_camera.Viewport=Rect
+		
 		_scene.Update()
 		
-		_scene.Render( canvas,_camera )
+		_scene.Render( canvas )
 
 		canvas.Scale( Width/640.0,Height/480.0 )
 		
-		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
+		canvas.DrawText( "FPS="+App.FPS,Width,0,1,0 )
 	End
 	
 End

+ 0 - 42
modules/mojo3d/tests/util.monkey2

@@ -1,42 +0,0 @@
-
-Namespace util
-
-Function Fly( entity:Entity,view:View )
-	
-	Const rspeed:=1.0
-
-	If Keyboard.KeyDown( Key.Up )
-		entity.RotateX( rspeed )
-	Else If Keyboard.KeyDown( Key.Down )
-		entity.RotateX( -rspeed )
-	Endif
-	
-	If Keyboard.KeyDown( Key.Q )
-		entity.RotateZ( rspeed )
-	Else If Keyboard.KeyDown( Key.W )
-		entity.RotateZ( -rspeed )
-	Endif
-	
-	If Keyboard.KeyDown( Key.Left )
-		entity.RotateY( rspeed,True )
-	Else If Keyboard.KeyDown( Key.Right )
-		entity.RotateY( -rspeed,True )
-	Endif
-
-	If Mouse.ButtonDown( MouseButton.Left )
-		If Mouse.X<view.Width/3
-			entity.RotateY( rspeed,True )
-		Else If Mouse.X>view.Width/3*2
-			entity.RotateY( -rspeed,True )
-		Else
-			entity.Move( New Vec3f( 0,0,.1 ) )
-		Endif
-	Endif
-	
-	If Keyboard.KeyDown( Key.A )
-		entity.MoveZ( .1 )
-	Else If Keyboard.KeyDown( Key.Z )
-		entity.MoveZ( -.1 )
-	Endif
-		
-End

+ 4 - 2
modules/mojo3d/tests/walker_gltf2.monkey2

@@ -59,11 +59,13 @@ Class MyWindow Extends Window
 	
 		RequestRender()
 		
+		_camera.Viewport=Rect
+		
 		_scene.Update()
 		
-		_scene.Render( canvas,_camera )
+		_scene.Render( canvas )
 		
-		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
+		canvas.DrawText( "FPS="+App.FPS,Width,0,1,0 )
 	End
 	
 End

+ 6 - 10
modules/mojo3d/tests/water.monkey2

@@ -7,8 +7,6 @@ Namespace myapp
 
 #Import "assets/"
 
-#Import "util"
-
 Using std..
 Using mojo..
 Using mojo3d..
@@ -33,15 +31,15 @@ Class MyWindow Extends Window
 		
 		'create camera
 		'
-		_camera=New Camera
-		_camera.Near=.1
-		_camera.Far=100
+		_camera=New Camera( self )
 		_camera.Move( 0,10,-10 )
 		
+		New FlyBehaviour( _camera )
+		
 		'create light
 		'
 		_light=New Light
-		_light.RotateX( 90 )	'aim directional light 'down' - Pi/2=90 degrees.
+		_light.Rotate( 54,144,0 )	'calibrated so specular highlight matches sun on sky texture!
 		
 		'create water material
 		'
@@ -68,11 +66,9 @@ Class MyWindow Extends Window
 	
 		RequestRender()
 		
-		util.Fly( _camera,Self )
-		
-		_scene.Render( canvas,_camera )
+		_scene.Update()
 		
-		canvas.DrawText( "Width="+Width+", Height="+Height+", FPS="+App.FPS,0,0 )
+		_camera.Render( canvas )
 	End
 	
 End