mirror of
				https://github.com/Dejvino/roadtrip
				synced 2025-11-04 00:45:20 +00:00 
			
		
		
		
	Map: added grass and depth-of-field filter.
This commit is contained in:
		
							parent
							
								
									94faf05d7e
								
							
						
					
					
						commit
						a32565ef00
					
				
							
								
								
									
										23
									
								
								assets/Materials/Generated/grass-Material_001.j3m
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								assets/Materials/Generated/grass-Material_001.j3m
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					Material MyMaterial : Common/MatDefs/Light/Lighting.j3md {
 | 
				
			||||||
 | 
					    MaterialParameters {
 | 
				
			||||||
 | 
					        DiffuseMap : Models/grass.png
 | 
				
			||||||
 | 
					        GlowColor : 0.0 0.0 0.0 1.0
 | 
				
			||||||
 | 
					        Specular : 0.0 0.0 0.0 1.0
 | 
				
			||||||
 | 
					        Diffuse : 0.9258238 0.9258238 0.9258238 1.0
 | 
				
			||||||
 | 
					        UseMaterialColors : true
 | 
				
			||||||
 | 
					        ParallaxHeight : 0.05
 | 
				
			||||||
 | 
					        Ambient : 0.9258238 0.9258238 0.9258238 1.0
 | 
				
			||||||
 | 
					        Shininess : 12.5
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    AdditionalRenderState {
 | 
				
			||||||
 | 
					      FaceCull Off
 | 
				
			||||||
 | 
					      Wireframe Off
 | 
				
			||||||
 | 
					      DepthWrite On
 | 
				
			||||||
 | 
					      PolyOffset 0.0 0.0
 | 
				
			||||||
 | 
					      AlphaTestFalloff 0.0
 | 
				
			||||||
 | 
					      Blend PremultAlpha
 | 
				
			||||||
 | 
					      PointSprite Off
 | 
				
			||||||
 | 
					      ColorWrite On
 | 
				
			||||||
 | 
					      DepthTest On
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								assets/Models/grass.j3o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/Models/grass.j3o
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										3
									
								
								assets/Models/grass.j3odata
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								assets/Models/grass.j3odata
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					#
 | 
				
			||||||
 | 
					#Fri Jan 27 21:02:15 CET 2017
 | 
				
			||||||
 | 
					ORIGINAL_PATH=Models/grass.scene
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								assets/Models/grass.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/Models/grass.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 554 B  | 
@ -41,7 +41,8 @@ javac.classpath=\
 | 
				
			|||||||
    ${libs.jme3-test-data.classpath}:\
 | 
					    ${libs.jme3-test-data.classpath}:\
 | 
				
			||||||
    ${libs.jme3-libraries-oggvorbis.classpath}:\
 | 
					    ${libs.jme3-libraries-oggvorbis.classpath}:\
 | 
				
			||||||
    ${libs.jme3-libraries-lwjgl-minimum.classpath}:\
 | 
					    ${libs.jme3-libraries-lwjgl-minimum.classpath}:\
 | 
				
			||||||
    ${libs.jme3-libraries-terrain.classpath}
 | 
					    ${libs.jme3-libraries-terrain.classpath}:\
 | 
				
			||||||
 | 
					    ${libs.jme3-libraries-effects.classpath}
 | 
				
			||||||
# Space-separated list of extra javac options
 | 
					# Space-separated list of extra javac options
 | 
				
			||||||
javac.compilerargs=
 | 
					javac.compilerargs=
 | 
				
			||||||
javac.deprecation=false
 | 
					javac.deprecation=false
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								screenshot.png
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								screenshot.png
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 773 KiB After Width: | Height: | Size: 706 KiB  | 
@ -10,6 +10,8 @@ import com.jme3.light.AmbientLight;
 | 
				
			|||||||
import com.jme3.light.DirectionalLight;
 | 
					import com.jme3.light.DirectionalLight;
 | 
				
			||||||
import com.jme3.material.Material;
 | 
					import com.jme3.material.Material;
 | 
				
			||||||
import com.jme3.math.*;
 | 
					import com.jme3.math.*;
 | 
				
			||||||
 | 
					import com.jme3.post.FilterPostProcessor;
 | 
				
			||||||
 | 
					import com.jme3.post.filters.DepthOfFieldFilter;
 | 
				
			||||||
import com.jme3.scene.Geometry;
 | 
					import com.jme3.scene.Geometry;
 | 
				
			||||||
import com.jme3.scene.Node;
 | 
					import com.jme3.scene.Node;
 | 
				
			||||||
import com.jme3.scene.Spatial;
 | 
					import com.jme3.scene.Spatial;
 | 
				
			||||||
@ -53,6 +55,9 @@ public class RoadTrip extends GameApplication implements ActionListener {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    int score = 0;
 | 
					    int score = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private FilterPostProcessor fpp;
 | 
				
			||||||
 | 
					    DepthOfFieldFilter dofFilter;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void initializeGame() {
 | 
					    public void initializeGame() {
 | 
				
			||||||
        super.initializeGame();
 | 
					        super.initializeGame();
 | 
				
			||||||
@ -101,6 +106,16 @@ public class RoadTrip extends GameApplication implements ActionListener {
 | 
				
			|||||||
        chaseCam = new ChaseCamera(cam, player.node, inputManager);
 | 
					        chaseCam = new ChaseCamera(cam, player.node, inputManager);
 | 
				
			||||||
        chaseCam.setDefaultDistance(60f);
 | 
					        chaseCam.setDefaultDistance(60f);
 | 
				
			||||||
        chaseCam.setSmoothMotion(true);
 | 
					        chaseCam.setSmoothMotion(true);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        fpp = new FilterPostProcessor(assetManager);
 | 
				
			||||||
 | 
					        //fpp.setNumSamples(4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        dofFilter = new DepthOfFieldFilter();
 | 
				
			||||||
 | 
					        dofFilter.setFocusRange(5f);
 | 
				
			||||||
 | 
					        dofFilter.setFocusDistance(6f);
 | 
				
			||||||
 | 
					        dofFilter.setBlurScale(0.6f);
 | 
				
			||||||
 | 
					        fpp.addFilter(dofFilter);
 | 
				
			||||||
 | 
					        viewPort.addProcessor(fpp);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	protected void addGameMenu()
 | 
						protected void addGameMenu()
 | 
				
			||||||
@ -203,6 +218,10 @@ public class RoadTrip extends GameApplication implements ActionListener {
 | 
				
			|||||||
        Vector3f playerLocation = player.node.getWorldTranslation();
 | 
					        Vector3f playerLocation = player.node.getWorldTranslation();
 | 
				
			||||||
        Vector3f newLocation = new Vector3f(playerLocation).add(new Vector3f(-1f, 1.5f, 2.4f).mult(20f));
 | 
					        Vector3f newLocation = new Vector3f(playerLocation).add(new Vector3f(-1f, 1.5f, 2.4f).mult(20f));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        float focusDist = cam.getLocation().distance(player.node.getWorldTranslation()) / 10f;
 | 
				
			||||||
 | 
					        dofFilter.setFocusDistance(focusDist * 1.1f);
 | 
				
			||||||
 | 
					        dofFilter.setFocusRange(focusDist * 0.9f);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
        for (VehicleNode vehicle : gameWorldState.vehicles) {
 | 
					        for (VehicleNode vehicle : gameWorldState.vehicles) {
 | 
				
			||||||
            vehicle.update(tpf);
 | 
					            vehicle.update(tpf);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -12,6 +12,8 @@ import com.jme3.material.Material;
 | 
				
			|||||||
import com.jme3.math.ColorRGBA;
 | 
					import com.jme3.math.ColorRGBA;
 | 
				
			||||||
import com.jme3.math.Vector2f;
 | 
					import com.jme3.math.Vector2f;
 | 
				
			||||||
import com.jme3.math.Vector3f;
 | 
					import com.jme3.math.Vector3f;
 | 
				
			||||||
 | 
					import com.jme3.post.FilterPostProcessor;
 | 
				
			||||||
 | 
					import com.jme3.post.filters.DepthOfFieldFilter;
 | 
				
			||||||
import com.jme3.renderer.Camera;
 | 
					import com.jme3.renderer.Camera;
 | 
				
			||||||
import com.jme3.scene.Node;
 | 
					import com.jme3.scene.Node;
 | 
				
			||||||
import com.jme3.scene.Spatial;
 | 
					import com.jme3.scene.Spatial;
 | 
				
			||||||
@ -47,7 +49,7 @@ public class GameWorldView {
 | 
				
			|||||||
    private final Camera camera;
 | 
					    private final Camera camera;
 | 
				
			||||||
    private final Node rootNode;
 | 
					    private final Node rootNode;
 | 
				
			||||||
    private final PhysicsSpace physicsSpace;
 | 
					    private final PhysicsSpace physicsSpace;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    public TerrainView terrain = new TerrainView(new TerrainDataProvider());
 | 
					    public TerrainView terrain = new TerrainView(new TerrainDataProvider());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public GameWorldView(GameWorldState gameWorldState, AssetManager assetManager, Camera camera, Node rootNode, PhysicsSpace physicsSpace) {
 | 
					    public GameWorldView(GameWorldState gameWorldState, AssetManager assetManager, Camera camera, Node rootNode, PhysicsSpace physicsSpace) {
 | 
				
			||||||
@ -171,12 +173,13 @@ public class GameWorldView {
 | 
				
			|||||||
        
 | 
					        
 | 
				
			||||||
        final Spatial treeModel = assetManager.loadModel("Models/tree.j3o");
 | 
					        final Spatial treeModel = assetManager.loadModel("Models/tree.j3o");
 | 
				
			||||||
        final Spatial houseModel = assetManager.loadModel("Models/house1.j3o");
 | 
					        final Spatial houseModel = assetManager.loadModel("Models/house1.j3o");
 | 
				
			||||||
 | 
					        final Spatial grassModel = assetManager.loadModel("Models/grass.j3o");
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        final FineTerrainGrid terrainGrid = terrain.terrainGrid;
 | 
					        final FineTerrainGrid terrainGrid = terrain.terrainGrid;
 | 
				
			||||||
        terrainGrid.addListener(new TerrainGridListener() {
 | 
					        terrainGrid.addListener(new TerrainGridListener() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void gridMoved(Vector3f newCenter) {
 | 
					            public void gridMoved(Vector3f newCenter) {   
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
@ -240,10 +243,29 @@ public class GameWorldView {
 | 
				
			|||||||
                        modelPhysics.isActive();
 | 
					                        modelPhysics.isActive();
 | 
				
			||||||
                        modelInstance.addControl(modelPhysics);
 | 
					                        modelInstance.addControl(modelPhysics);
 | 
				
			||||||
                        modelPhysics.setPhysicsLocation(pos);
 | 
					                        modelPhysics.setPhysicsLocation(pos);
 | 
				
			||||||
                        physicsSpace.add(modelPhysics);
 | 
					                        //physicsSpace.add(modelPhysics);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    objects.attachChild(modelInstance);
 | 
					                    objects.attachChild(modelInstance);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                for (int i = 0; i < rand.nextInt(10000); i++) {
 | 
				
			||||||
 | 
					                    Vector3f pos = new Vector3f((rand.nextFloat() - 0.5f) * 128f, 0f, (rand.nextFloat() - 0.5f) * 128f).addLocal(quad.getWorldTranslation());
 | 
				
			||||||
 | 
					                    pos.addLocal(0f, getHeight(quad, pos), 0f);
 | 
				
			||||||
 | 
					                    Vector3f scale = Vector3f.UNIT_XYZ;
 | 
				
			||||||
 | 
					                    Spatial modelInstance;
 | 
				
			||||||
 | 
					                    switch ("grass") {
 | 
				
			||||||
 | 
					                        case "grass":
 | 
				
			||||||
 | 
					                            modelInstance = grassModel.clone();
 | 
				
			||||||
 | 
					                            float s = 0.2f + rand.nextFloat() * 2f;
 | 
				
			||||||
 | 
					                            scale = new Vector3f(s, s, s);
 | 
				
			||||||
 | 
					                            break;
 | 
				
			||||||
 | 
					                        default:
 | 
				
			||||||
 | 
					                            throw new RuntimeException("Unhandled object type");
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    modelInstance.setLocalTranslation(pos);
 | 
				
			||||||
 | 
					                    modelInstance.setLocalScale(scale);
 | 
				
			||||||
 | 
					                    objects.attachChild(modelInstance);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user