static void Main() { var renderer = new Renderer(); var game = new Game(renderer); var vertShaderString = File.ReadAllText("Assets/Shaders/basic.vert"); var fragShaderString = File.ReadAllText("Assets/Shaders/basic.frag"); RawModel model; using (var reader = new StreamReader("Assets/Models/dragon.obj")) { model = new RawModel(ObjParser.LoadModel(reader)); } var textureData = new ImageSharpTexture("Assets/Textures/white.png"); var shaderSet = new ShaderSet(vertShaderString, fragShaderString); renderer.Initialize(true); var mesh = renderer.CreateMesh(model, textureData, shaderSet); var entity = new RenderableEntity(new Transform(new Vector3(0, -5, -10), new Vector3(), 1), mesh); entity.InitializeMesh(renderer); game.AddEntity(entity); game.AddEntity(new CameraController()); game.RunMainLoop(); renderer.DisposeGraphicsDevices(); }
public SpriteRenderer(SpriteShader _shader) { UIQuad = Loader.LoadToVAO(Geometry.GetVertex(Geometries.Quad), Geometry.GetVertexName(Geometries.Quad)); shader = _shader; shader.Start(); shader.Stop(); }
public Entity(string objectFileName = null, string textureFileName = null, string ext = ".png") { var vertex = OBJLoader.LoadOBJModel(objectFileName); RawModel rawModel = Loader.LoadToVAO(vertex, objectFileName); model = new TexturedModel(rawModel, Loader.LoadTexture(textureFileName, ext)); }
public void Render(Entity entity, StaticShader shader) { TexturedModel texturedModel = entity.TexturedModel; RawModel model = texturedModel.RawModel; GL.BindVertexArray(model.vaoID); GL.EnableVertexAttribArray(0); GL.EnableVertexAttribArray(1); GL.EnableVertexAttribArray(2); Matrix4 transformationMatrix = Maths.CreateTransformationMatrix( entity.Position, entity.RotationX, entity.RotationY, entity.RotationZ, entity.Scale); shader.LoadTransformationMatrix(ref transformationMatrix); ModelTexture modelTexture = entity.TexturedModel.Texture; shader.LoadShineVariables(modelTexture.ShineDamper, modelTexture.Reflectivity); GL.ActiveTexture(TextureUnit.Texture0); GL.BindTexture(TextureTarget.Texture2D, texturedModel.Texture.TextureID); GL.DrawElements(PrimitiveType.Triangles, model.vertexCount, DrawElementsType.UnsignedInt, 0); GL.DisableVertexAttribArray(0); GL.DisableVertexAttribArray(1); GL.DisableVertexAttribArray(2); GL.BindVertexArray(0); }
public void BindCharacter(RawModel character) { GL.Disable(EnableCap.DepthTest); GL.BindVertexArray(character.vaoID); GL.EnableVertexAttribArray(0); GL.EnableVertexAttribArray(1); }
public void Render(Matrix4 viewMatrix, Matrix4 projectionMatrix) { if (bPostConstructor) { shader = PoolProxy.GetResource <ObtainShaderPool, ShaderAllocationPolicy <SkyboxShader>, string, SkyboxShader>(String.Format("{0}{1},{0}{2}", ProjectFolders.ShadersPath, "skyboxVS.glsl", "skyboxFS.glsl")); model = new RawModel(attribs); cubemap = ProxyTextureLoader.LoadCubemap(new string[] { ProjectFolders.SkyboxTexturesPath + "/Day/" + "right.bmp", ProjectFolders.SkyboxTexturesPath + "/Day/" + "left.bmp", ProjectFolders.SkyboxTexturesPath + "/Day/" + "top.bmp", ProjectFolders.SkyboxTexturesPath + "/Day/" + "bottom.bmp", ProjectFolders.SkyboxTexturesPath + "/Day/" + "back.bmp", ProjectFolders.SkyboxTexturesPath + "/Day/" + "front.bmp" }); bPostConstructor = false; } shader.startProgram(); cubemap.BindTexture(OpenTK.Graphics.OpenGL.TextureUnit.Texture0); shader.SetTransformationMatrices(Matrix4.Identity, viewMatrix, projectionMatrix); shader.SetCubemap(0); VAOManager.renderBuffers(model.Buffer, OpenTK.Graphics.OpenGL.PrimitiveType.Triangles); shader.stopProgram(); }
public void RenderModel(RawModel model) { GL.BindVertexArray(model.vaoID); GL.EnableVertexArrayAttrib(model.vaoID, 0); GL.DrawElements(BeginMode.Triangles, model.vertexCount, DrawElementsType.UnsignedInt, 0); GL.DisableVertexArrayAttrib(model.vaoID, 0); GL.BindVertexArray(0); }
public Terrain(int gridX, int gridZ, Loader loader, ModelTexture texture) { this.texture = texture; x = gridX * SIZE; z = gridZ * SIZE; model = GenerateTerrain(loader); }
public void Render(RawModel model) { GL.BindVertexArray(model.VaoID); GL.EnableVertexAttribArray(0); GL.DrawArrays(PrimitiveType.Triangles, 0, model.VertexCount); GL.DisableVertexAttribArray(0); GL.BindVertexArray(0); }
public Actor(RawModel model, ITexture texture, BasicShader shader) { ComponentScale = new Vector3(1); ComponentTranslation = new Vector3(0); ComponentRotation = new Vector3(0); this.texture = texture; rawModel = model; this.shader = shader; }
public SkyboxRenderer(SkyboxShader _shader, Matrix4 projectionMatrix) { start = Settings.GetSetting(Settings.ConfigSettings.SKYBOX_FILE_PREFIX); cube = Loader.LoadToVAO(VERTICES, 3); skyboxTextureID = Loader.LoadCubeMap(TEXTURES_FILES, start); shader = _shader; shader.Start(); shader.LoadProjectionMatrix(projectionMatrix); shader.Stop(); }
private void PrepareTerrain(Terrain terrain) { RawModel model = terrain.model; GL.BindVertexArray(model.vaoID); GL.EnableVertexAttribArray(0); GL.EnableVertexAttribArray(1); GL.EnableVertexAttribArray(2); BindTextures(terrain); shader.LoadShineVariables(1, 0); }
private void prepareTerrain(Terrain terrain) { RawModel rawModel = terrain.model; Gl.BindVertexArray(rawModel.vaoID); Gl.EnableVertexAttribArray(0); Gl.EnableVertexAttribArray(1); Gl.EnableVertexAttribArray(2); bindTextures(terrain); shader.loadVariables(1, 0); }
public RawModel LoadToVao(float[] positions, int[] indicies, float[] uvs) { int vaoId = CreateVao(); BindIndiciesBuffer(indicies); StoreDataInAttributeArray(0, positions, 3); StoreDataInAttributeArray(1, uvs, 2); UnbindVao(); _model = new RawModel(vaoId, indicies.Length, uvs.Length / 2); return(_model); }
public Entity(RawModel model, Shader shader, Vector3 position = new Vector3(), float rotX = 1, float rotY = 1, float rotZ = 1, float scale = 1) { Position = position; Model = model; Scale = scale; RotX = rotX; RotY = rotY; RotZ = rotZ; EnityMatrix = Maths.CreateTransmatrix(new Vector3(Position.X, Position.Y, Position.Z), rotX, rotY, rotZ, scale); Shader = shader; }
private void GlControl_ContextCreated(object sender, GlControlEventArgs e) { Gl.MatrixMode(MatrixMode.Projection); Gl.LoadIdentity(); Gl.Ortho(0.0, 1024, 768, 0.0, 0.0, 1); Gl.MatrixMode(MatrixMode.Modelview); Gl.LoadIdentity(); Loader = new Loader(); Renderer = new Renderer(); Model = Loader.Load(canvas); }
public void Render(TexturedModel texturedModel) { RawModel model = texturedModel.Model; GL.BindVertexArray(model.VaoID); GL.EnableVertexAttribArray(0); GL.EnableVertexAttribArray(1); GL.ActiveTexture(TextureUnit.Texture0); GL.BindTexture(TextureTarget.Texture2D, texturedModel.Texture.textureID); GL.DrawElements(PrimitiveType.Triangles, model.VertexCount, DrawElementsType.UnsignedInt, 0); GL.DisableVertexAttribArray(0); GL.DisableVertexAttribArray(1); GL.BindVertexArray(0); }
//he changes the render function but Im going to make 2 seperate ones public void RenderTexturedModel(TexturedModel texturedModel) { RawModel model = texturedModel.Model; GL.BindVertexArray(model.vaoID); GL.EnableVertexArrayAttrib(model.vaoID, 0); GL.EnableVertexArrayAttrib(model.vaoID, 1); GL.ActiveTexture(TextureUnit.Texture0); GL.BindTexture(TextureTarget.Texture2D, texturedModel.ModelTexture.TextureID); GL.DrawElements(BeginMode.Triangles, model.vertexCount, DrawElementsType.UnsignedInt, 0); GL.DisableVertexArrayAttrib(model.vaoID, 0); GL.DisableVertexArrayAttrib(model.vaoID, 1); GL.BindVertexArray(0); }
private void prepareTexturedModel(TexturedModel model) { RawModel rawModel = model.rawModel; Gl.BindVertexArray(rawModel.vaoID); Gl.EnableVertexAttribArray(0); Gl.EnableVertexAttribArray(1); Gl.EnableVertexAttribArray(2); ModelTexture texture = model.modelTexture; shader.loadVariables(texture.shineDamper, texture.reflectivity); Gl.ActiveTexture(TextureUnit.Texture0); // activate texture Gl.BindTexture(TextureTarget.Texture2d, model.modelTexture.textureId); // pass coords }
private void prepareTerrain(Terrain terrain) { RawModel rawModel = terrain.model; Gl.BindVertexArray(rawModel.vaoID); Gl.EnableVertexAttribArray(0); Gl.EnableVertexAttribArray(1); Gl.EnableVertexAttribArray(2); ModelTexture texture = terrain.texture; shader.loadVariables(texture.shineDamper, texture.reflectivity); Gl.ActiveTexture(TextureUnit.Texture0); Gl.BindTexture(TextureTarget.Texture2d, texture.textureId); }
public void render(TexturedModel texturedModel) { RawModel model = texturedModel.rawModel; Gl.BindVertexArray(model.vaoID); Gl.EnableVertexAttribArray(0); Gl.EnableVertexAttribArray(1); Gl.ActiveTexture(TextureUnit.Texture0); Gl.BindTexture(TextureTarget.Texture2d, texturedModel.modelTexture.textureId); Gl.DrawElements(PrimitiveType.Triangles, model.vertexCount, DrawElementsType.UnsignedInt, IntPtr.Zero); Gl.DisableVertexAttribArray(0); Gl.DisableVertexAttribArray(1); Gl.BindVertexArray(0); }
private void prepareTerrain(Terrain terrain) { RawModel rawModel = terrain.Model; GL.BindVertexArray(rawModel.VaoID); GL.EnableVertexAttribArray(0); GL.EnableVertexAttribArray(1); GL.EnableVertexAttribArray(2); ModelTexture texture = terrain.Texture; shader.LoadShineVariables(texture.shineDamper, texture.reflectivity); GL.ActiveTexture(TextureUnit.Texture0); GL.BindTexture(TextureTarget.Texture2D, terrain.Texture.textureID); }
public void Start() { loader = new Loader(); shader = new StaticShader(); cam = new Camera(); renderer = new Renderer(WIDTH, HEIGHT, shader); model = OBJLoader.LoadObjFile("Resources\\stall.obj", loader); //model = loader.LoadToVAO(vertices, textureCoords, indicies); modelTexture = new ModelTexture(loader.LoadTexture("Resources\\stallimage.jpg")); texturedModel = new TexturedModel(model, modelTexture); entity = new Entity(texturedModel, new Vector3(0, 0, -25), 0, 0, 0, 1); Run(FPS_CAP); }
public Game(int width, int height) { this.Window = new GameWindow(width, height, new OpenTK.Graphics.GraphicsMode(new OpenTK.Graphics.ColorFormat(), 2, 4, 4)); this.Loader = new Loader(); this.model = this.Loader.LoadRawModel(this.vertices, this.textureCoords, null, this.indices); this.ComputeShader = new Shaders.ComputeShader(@"..\..\..\Shaders\ComputeShader.glsl"); this.StaticShader = new StaticShader(); //string[] cubeMap = new string[] //{ // "../../../res/right.jpg", // "../../../res/left.jpg", // "../../../res/top.jpg", // "../../../res/bottom.jpg", // "../../../res/back.jpg", // "../../../res/front.jpg", //}; string[] cubeMap = new string[] { "../../../res/right.png", "../../../res/left.png", "../../../res/top.png", "../../../res/bottom.png", "../../../res/back.png", "../../../res/front.png", }; this.SkyboxTex = this.Loader.LoadCubeTexture(cubeMap); this.Init(); //this.cameraViewMatrix *= Matrix4.CreateTranslation(-0.5f, 0.0f, 0.0f); this.cameraViewMatrix = Matrix4.Identity; //this.cameraViewMatrix *= Matrix4.CreateRotationX((float)Math.PI / 10); //this.cameraViewMatrix *= Matrix4.CreateTranslation(0.0f, 100.0f, 100.0f); //this.cameraViewMatrix *= Matrix4.CreateTranslation(3.0f, 3.0f, 5.0f); //this.cameraViewMatrix *= Matrix4.CreateTranslation(0.0f, 100.0f, 10.0f); this.cameraViewMatrix *= Matrix4.CreateRotationX(MathHelper.DegreesToRadians(10)); //this.cameraViewMatrix *= Matrix4.CreateRotationX(-MathHelper.DegreesToRadians(50)); this.cameraViewMatrix *= Matrix4.CreateTranslation(0.0f, -10.0f, 60.0f); this.cameraViewMatrix *= Matrix4.CreateRotationY(MathHelper.DegreesToRadians(RotY)); }
public void render(TexturedModel texturedModel, StaticShader shader) { RawModel model = texturedModel.rawModel; Gl.BindVertexArray(model.vaoID); Gl.EnableVertexAttribArray(0); Gl.EnableVertexAttribArray(1); // uncomment lines to see shape //Matrix4f mat = Maths.createTransformationMatrix(new Vertex3f(0, 0, 0), 0, 0, 0, 1); //shader.loadTransformationMatrix(mat); Gl.ActiveTexture(TextureUnit.Texture0); // activate texture Gl.BindTexture(TextureTarget.Texture2d, texturedModel.modelTexture.textureId); // pass coords Gl.DrawElements(PrimitiveType.Triangles, model.vertexCount, DrawElementsType.UnsignedInt, IntPtr.Zero); Gl.DisableVertexAttribArray(0); Gl.DisableVertexAttribArray(1); Gl.BindVertexArray(0); }
private void RenderBasePass() { if (PostConstructor) { CollisionBoxModel = new RawModel(ProxyModelLoader.LoadModel(CollisionBoxPath)); DefaultTexture = ProxyTextureLoader.LoadSingleTexture(ProjectFolders.TextureAtlasPath + "\\default.jpg"); DefaultShader = new BasicShader(ProjectFolders.ShadersPath + "\\basicVS.glsl", ProjectFolders.ShadersPath + "\\basicFS.glsl"); PostConstructor = false; } if (actor != null && !bComponentHierarchyIsDirty) { actor.Render(EditorCamera.ViewMatrix, projectionMatrix); } skybox.Render(EditorCamera.ViewMatrix, projectionMatrix); }
public void render(Entity entity, StaticShader shader) { TexturedModel model = entity.model; RawModel rawModel = model.rawModel; Gl.BindVertexArray(rawModel.vaoID); Gl.EnableVertexAttribArray(0); Gl.EnableVertexAttribArray(1); Matrix4f transformationMatrix = Maths.createTransformationMatrix(entity.position, entity.rotX, entity.rotY, entity.rotZ, entity.scale); shader.loadTransformationMatrix(transformationMatrix); Gl.ActiveTexture(TextureUnit.Texture0); Gl.BindTexture(TextureTarget.Texture2d, model.modelTexture.textureId); Gl.DrawElements(PrimitiveType.Triangles, rawModel.vertexCount, DrawElementsType.UnsignedInt, IntPtr.Zero); Gl.DisableVertexAttribArray(0); Gl.DisableVertexAttribArray(1); Gl.BindVertexArray(0); }
private void prepareTexturedModel(TexturedModel model) { RawModel rawModel = model.rawModel; Gl.BindVertexArray(rawModel.vaoID); Gl.EnableVertexAttribArray(0); Gl.EnableVertexAttribArray(1); Gl.EnableVertexAttribArray(2); ModelTexture texture = model.modelTexture; if (texture.isHasTransparency) { MasterRenderer.disableCulling(); } shader.loadFakeLighting(texture.isUseFakeLighting); shader.loadVariables(texture.shineDamper, texture.reflectivity); Gl.ActiveTexture(TextureUnit.Texture0); // activate texture Gl.BindTexture(TextureTarget.Texture2d, model.modelTexture.textureId); // pass coords }
public void PrepareTexturedModel(TexturedModel texturedModel) { if (texturedModel.hasTransparency) { MasterRenderer.DisableCulling(); } RawModel model = texturedModel.rawModel; GL.BindVertexArray(model.vaoID); GL.EnableVertexAttribArray(0); GL.EnableVertexAttribArray(1); GL.EnableVertexAttribArray(2); shader.LoadUseFakeLightingVariable(texturedModel.useFakeLighting); shader.LoadShineVariables(texturedModel.shineDamper, texturedModel.reflectivity, texturedModel.luminosity); shader.LoadEnviromentMap(1); GL.ActiveTexture(TextureUnit.Texture1); GL.BindTexture(TextureTarget.TextureCubeMap, SkyboxRenderer.skyboxTextureID); texturedModel.BindTexture(OpenTK.Graphics.OpenGL4.TextureUnit.Texture0); }
public Game() { this.Display = new DisplayManager(1280, 720); this.Loader = new Loader(); this.StaticShader = new StaticShader(); this.Renderer = new Renderer(this.StaticShader); //this.TestModel = this.Loader.LoadToVAO(vertices, textureCoords, indices); this.TestModel = OBJLoader.LoadModelOBJ("dragon", this.Loader); this.texture = new ModelTexture(this.Loader.LoadTexture("white")); //this.texture.Reflectivity = 1; //this.texture.ShineDamper = 10; this.texturedModel = new TexturedModel(this.TestModel, this.texture); this.entity = new Entity(this.texturedModel, new Vector3(0, 0f, -25f), 0, 0, 0, 0.1f); this.light = new Light(new Vector3(0, 0, -30f), new Vector3(1f, 1f, 1f)); this.camera = new Camera(); this.Init(); }