Example #1
0
 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);
         }
     }
 }
Example #2
0
        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));
        }
Example #3
0
        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);
        }
Example #4
0
        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;
 }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        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);
            }
        }
Example #10
0
        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);
            }
        }
Example #11
0
        //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
            }
        }
Example #12
0
 public ResourceVertFragShaderString(string sVertex, string sFragment)
 {
     shader = ShaderLoader.FromStrings(sVertex, sFragment);
 }