public string AddUpdateFragmentShader(string fileName) { try { if (shaders.ContainsKey(fileName)) { if (shaderDefault != shaders[fileName]) { shaders[fileName].Dispose(); shaders[fileName] = shaderDefault; } } var sFragmentShd = ShaderLoader.ShaderStringFromFileWithIncludes(fileName, false); var shader = ShaderLoader.FromStrings(TextureToFrameBuffer.VertexShaderScreenQuad, sFragmentShd); shaders[fileName] = shader; return(shader.LastLog); } catch { try { var sFragmentShd = ShaderLoader.ShaderStringFromFileWithIncludes(fileName, true); var shader = ShaderLoader.FromStrings(TextureToFrameBuffer.VertexShaderScreenQuad, sFragmentShd); shaders[fileName] = shader; return(shader.LastLog); } catch (ShaderException e) { throw new ShaderLoadException(e.Message + Environment.NewLine + e.ShaderLog); } } }
public Renderer() { Camera.FarClip = 500; Camera.Position = new Vector3(15, 7, 21); Camera.Heading -= (float)(0.32 * Math.PI); Camera.Tilt += (float)(0.08 * Math.PI); var sVertex = Encoding.UTF8.GetString(Shaders.vertex); var sFragment = Encoding.UTF8.GetString(Shaders.fragment); _shader = ShaderLoader.FromStrings(sVertex, sFragment); _materialTexture = TextureLoader.FromBitmap(MaterialManager.Instance.GetMaterialsAsBitmap()); _materialTexture.FilterNearest(); _chunkVertexArrayObjects = new List <VertexArrayObject>(); _particleCounts = new List <int>(); _materialBuffers = new List <BufferObject>(); _extentBuffers = new List <BufferObject>(); GL.Enable(EnableCap.CullFace); GL.Enable(EnableCap.DepthTest); GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill); GL.ClearColor(new Color4(0.9f, 0.9f, 0.99f, 1)); }
private static void InitShader() { const string sVertexShader = @" #version 130 out vec2 uv; void main() { const vec2 vertices[4] = vec2[4](vec2(-1.0, -1.0), vec2( 1.0, -1.0), vec2( 1.0, 1.0), vec2(-1.0, 1.0)); vec2 pos = vertices[gl_VertexID]; uv = pos * 0.5 + 0.5; gl_Position = vec4(pos, 0.0, 1.0); }" ; const string sFragmentShd = @"#version 430 core uniform sampler2D image; in vec2 uv; void main() { gl_FragColor = abs(texture(image, uv)); }" ; _shaderProgram = ShaderLoader.FromStrings(sVertexShader, sFragmentShd); }
private void LoadShader() { string sVertexShader = @" #version 430 core out vec3 pos; void main() { const vec3 vertices[4] = vec3[4](vec3(-0.9, -0.8, 0.5), vec3( 0.9, -0.9, 0.5), vec3( 0.9, 0.8, 0.5), vec3(-0.9, 0.9, 0.5)); pos = vertices[gl_VertexID]; gl_Position = vec4(pos, 1.0); }" ; string sFragmentShd = @" #version 430 core in vec3 pos; out vec4 color; void main() { color = vec4(pos + 1.0, 1.0); }" ; //read shader from file //string fileName = @"..\..\..\GLSL pixel shader\Hello world.glsl"; //try //{ // using (StreamReader sr = new StreamReader(fileName)) // { // sFragmentShd = sr.ReadToEnd(); // sr.Dispose(); // } //} //catch { }; shader = ShaderLoader.FromStrings(sVertexShader, sFragmentShd); }
private MyVisual() { string sVertexShader = LoadShader("vertex.glsl"); string sFragmentShd = LoadShader("fragment.glsl"); //read shader from file shaderProgram = ShaderLoader.FromStrings(sVertexShader, sFragmentShd); }
public RenderShaderComponent(string vertex, string fragment, Box2D rect) { try { shader = ShaderLoader.FromStrings(vertex, fragment); } catch (ShaderCompileException e) { Console.WriteLine(e.Message); Console.WriteLine(e.ShaderLog); } Rect = rect; }
public VisualContext() { GL.Disable(EnableCap.DepthTest); GL.ClearColor(1, 0, 0, 0); surface = new RenderSurfacePingPong(); copyToScreen = new TextureToFrameBuffer(); shaderDefault = ShaderLoader.FromStrings(TextureToFrameBuffer.VertexShaderScreenQuad, TextureToFrameBuffer.FragmentShaderChecker); }
public VisualPlane() { var sVertex = Encoding.UTF8.GetString(Resourcen.plane_vert); var sFragment = Encoding.UTF8.GetString(Resourcen.plane_frag); shdPlane = ShaderLoader.FromStrings(sVertex, sFragment); var mesh = Meshes.CreateQuad(2, 2, 1, 1); plane = VAOLoader.FromMesh(mesh, shdPlane); }
public PlayerTrail() { var window = Framework.Game.Instance.Window; fbo = new FBO(Texture2dGL.Create(window.Width, window.Height)); fbo.Texture.WrapFunction = TextureWrapFunction.MirroredRepeat; try { shader = ShaderLoader.FromStrings( DefaultShader.VertexShaderScreenQuad, DefaultShader.FragmentShaderCopy); } catch (ShaderException e) { Console.WriteLine(e.ShaderLog); } }
public MyVisual() { var sVertex = Encoding.UTF8.GetString(Resourcen.vertex); var sFragment = Encoding.UTF8.GetString(Resourcen.fragment); try { shader = ShaderLoader.FromStrings(sVertex, sFragment); } catch (ShaderException e) { PrintShaderException(e); } }
//public delegate void ShaderLoadedHandler(); //public event ShaderLoadedHandler ShaderLoaded; public ShaderFileDebugger(string vertexFile, string fragmentFile, byte[] vertexShader = null, byte[] fragmentShader = null) { if (File.Exists(vertexFile) && File.Exists(fragmentFile)) { shaderWatcherVertex = new FileWatcher(vertexFile); shaderWatcherVertex.Changed += (s, e) => form.Close(); shaderWatcherFragment = new FileWatcher(fragmentFile); shaderWatcherFragment.Changed += (s, e) => form.Close(); } else { var sVertex = ReferenceEquals(null, vertexShader) ? string.Empty : Encoding.UTF8.GetString(vertexShader); var sFragment = ReferenceEquals(null, fragmentShader) ? string.Empty : Encoding.UTF8.GetString(fragmentShader); shader = ShaderLoader.FromStrings(sVertex, sFragment); //ShaderLoaded?.Invoke(); //is null because we are in the constructor } }
public ResourceVertFragShaderString(string sVertex, string sFragment) { shader = ShaderLoader.FromStrings(sVertex, sFragment); }