public JWaterTile(float centerX, float centerZ, float height, JTerrainTexture colorTexture) { this.X = centerX; this.Z = centerZ; this.Height = height; this.ColorTexture = colorTexture; }
/// <summary> /// GraphicsMode used for anitaliasing. /// </summary> public JGameWindow() : base(WIDTH, HEIGHT, new OpenTK.Graphics.GraphicsMode(32, 24, 0, 8), "JModelViewer", GameWindowFlags.Default, DisplayDevice.Default, 3, 0, GraphicsContextFlags.ForwardCompatible) { PlayerTexturePath = JFileUtils.GetPathToResFile("Cowboy\\CowboyTexture.png"); PlayerModelPath = JFileUtils.GetPathToResFile("Cowboy\\Cowboy.obj"); Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; DateTime buildDate = new DateTime(2000, 1, 1).AddDays(version.Build).AddSeconds(version.Revision * 2); string displayVersion = $"{version} ({buildDate})"; Console.WriteLine("JGameEngine v." + displayVersion); Console.WriteLine("OpenGL version: " + GL.GetString(StringName.Version)); Loader = new JLoader(); PlayerModelData = JObjFileLoader.LoadObj(PlayerModelPath); Console.WriteLine("Using .obj file: " + PlayerModelPath); PlayerModel = Loader.LoadToVAO(PlayerModelData.Vertices, PlayerModelData.TextureCoords, PlayerModelData.Normals, PlayerModelData.Indices); Console.WriteLine("Using .png texture file: " + PlayerTexturePath + "..."); JModelTexture texture = new JModelTexture(Loader.loadTexture(PlayerTexturePath)); TexturedModel = new JTexturedModel(PlayerModel, texture); Light = new JLight(new Vector3(0, 0, 0), new Vector3(1, 1, 1)); JTerrainTexture textureWaterDeep = new JTerrainTexture(Loader.loadTexture(JFileUtils.GetPathToResFile("Terrain\\WaterDeep.png"))); JTerrainTexture textureWaterShallow = new JTerrainTexture(Loader.loadTexture(JFileUtils.GetPathToResFile("Terrain\\WaterShallow.png"))); JTerrainTexture textureSand = new JTerrainTexture(Loader.loadTexture(JFileUtils.GetPathToResFile("Terrain\\Sand.png"))); JTerrainTexture textureGrassNatural = new JTerrainTexture(Loader.loadTexture(JFileUtils.GetPathToResFile("Terrain\\GrassNatural.png"))); JTerrainTexture textureGrassLush = new JTerrainTexture(Loader.loadTexture(JFileUtils.GetPathToResFile("Terrain\\GrassLush.png"))); JTerrainTexture textureMountainNatural = new JTerrainTexture(Loader.loadTexture(JFileUtils.GetPathToResFile("Terrain\\MountainNatural.png"))); JTerrainTexture textureMountainRocky = new JTerrainTexture(Loader.loadTexture(JFileUtils.GetPathToResFile("Terrain\\MountainRocky.png"))); JTerrainTexture textureSnow = new JTerrainTexture(Loader.loadTexture(JFileUtils.GetPathToResFile("Terrain\\Snow.png"))); JTerrainTexturePack texturePack = new JTerrainTexturePack(); texturePack.AddTerrainTexture(textureWaterDeep, 0.1f); texturePack.AddTerrainTexture(textureWaterShallow, 0.15f); texturePack.AddTerrainTexture(textureSand, 0.18f); texturePack.AddTerrainTexture(textureGrassNatural, 0.35f); texturePack.AddTerrainTexture(textureGrassLush, 0.45f); texturePack.AddTerrainTexture(textureMountainNatural, 0.6f); texturePack.AddTerrainTexture(textureMountainRocky, 0.7f); texturePack.AddTerrainTexture(textureSnow, 0.8f); MasterRenderer = new JMasterRenderer(texturePack); WaterBuffer = new JWaterFrameBuffer(this); WaterShader = new JWaterShader(); waterTiles = new List <JWaterTile>(); WaterTile = new JWaterTile(400, -400, 8, textureWaterShallow); waterTiles.Add(WaterTile); waterRenderer = new JWaterRenderer(Loader, WaterShader, MasterRenderer.projectionMatrix, WaterBuffer, WaterTile); terrain = new JPerlinTerrain(0, -1, Loader, texturePack); Entity = new JBoundedEntity(TexturedModel, new Vector3(50, 0, -50), new Vector3(0, 0, 1), 0.1f, Loader); Entity2 = new JBoundedEntity(TexturedModel, new Vector3(100, 0, -50), new Vector3(0, 0, 1), 0.1f, Loader); EntityList = new List <JBoundedEntity>(); EntityList.Add(Entity); EntityList.Add(Entity2); // Generate Trees JEntityGenerator entityGenerator = new JEntityGenerator(Loader, terrain, WaterTile); StaticEntities = entityGenerator.GenerateTrees(); Camera = new JCameraFree(); picker = new JMousePicker(Camera, MasterRenderer.projectionMatrix, terrain, this); LastFrameTime = GetCurrentTime(); }