private TrailManager(final Node root) { this.root = root; trails = new HashMap<Spatial, TrailMesh>(); Renderer r = DisplaySystem.getDisplaySystem().getRenderer(); ts = r.createTextureState(); ts.setEnabled(true); Texture t1 = TextureManager.loadTexture( ResourceLocatorTool.locateResource(ResourceLocatorTool.TYPE_TEXTURE, "trail_y1.png"), Texture.MinificationFilter.Trilinear, Texture.MagnificationFilter.Bilinear); ts.setTexture(t1); bs = r.createBlendState(); bs.setBlendEnabled(true); bs.setSourceFunction(BlendState.SourceFunction.SourceAlpha); bs.setDestinationFunction(BlendState.DestinationFunction.One); bs.setTestEnabled(true); zs = r.createZBufferState(); zs.setWritable(false); cs = r.createCullState(); cs.setCullFace(CullState.Face.None); cs.setEnabled(true); }
/** Initializes the rootNodes RenderStates, initializes the Camera and */ private void init() { // we attach transparent objects to this node, so it must be // rendered in the transparent bucket objectsNode.setRenderQueueMode(Renderer.QUEUE_TRANSPARENT); CullState cs = DisplaySystem.getDisplaySystem().getRenderer().createCullState(); cs.setCullFace(Face.Back); cs.setEnabled(true); rootNode.setRenderState(cs); // create a first person controller to move the Camera with W,A,S,D and mouse look movementInput = new FirstPersonHandler(cam, 15.0f, 0.5f); // move the camera a bit backwards and up cam.setLocation(new Vector3f(2, 10, 15)); // create a Physics update callback, to simulate basic wind force wind = new PhysicsWindCallback( SceneSettings.get().getWindVariation(), SceneSettings.get().getWindForce()); getPhysicsSpace().addToUpdateCallbacks(wind); }