Пример #1
0
        void CreateShaders()
        {
            vertexShaderHandle   = GL.CreateShader(ShaderType.VertexShader);
            fragmentShaderHandle = GL.CreateShader(ShaderType.FragmentShader);

            GL.ShaderSource(vertexShaderHandle, vertexShaderSource);
            GL.ShaderSource(fragmentShaderHandle, fragmentShaderSource);

            GL.CompileShader(vertexShaderHandle);
            GL.CompileShader(fragmentShaderHandle);

            Console.WriteLine(GL.GetShaderInfoLog(vertexShaderHandle));
            Console.WriteLine(GL.GetShaderInfoLog(fragmentShaderHandle));

            shaderProgramHandle = GL.CreateProgram();

            GL.AttachShader(shaderProgramHandle, vertexShaderHandle);
            GL.AttachShader(shaderProgramHandle, fragmentShaderHandle);

            for (int i = 0; i < attribs.Length; i++)
            {
                GL.BindAttribLocation(shaderProgramHandle, i, attribs[i]);
            }

            GL.LinkProgram(shaderProgramHandle);
            Console.WriteLine(GL.GetProgramInfoLog(shaderProgramHandle));
            GL.UseProgram(shaderProgramHandle);

            uniformManager.addUniforms(
                new UniformMatrix4f("projectionMatrix", projectionMatrix),
                new UniformMatrix4f("modelviewMatrix", modelviewMatrix),
                transformMatrixUniform = new UniformMatrix4f("transform", transformMatrix),
                new Uniform3f("ambientColor", ambientColor),
                new Uniform3f("lightColor", lightColor),
                new Uniform3f("lightDirUnit", lightDirUnit),
                new Uniform1f("time", time),
                new Uniform1f("random", random),
                new Uniform1f("textureSamples", textureSampler)
                );
            uniformManager.init(shaderProgramHandle);
        }
Пример #2
0
        void CreateShaders()
        {
            vertexShaderHandle = GL.CreateShader( ShaderType.VertexShader );
            fragmentShaderHandle = GL.CreateShader( ShaderType.FragmentShader );

            GL.ShaderSource( vertexShaderHandle, vertexShaderSource );
            GL.ShaderSource( fragmentShaderHandle, fragmentShaderSource );

            GL.CompileShader( vertexShaderHandle );
            GL.CompileShader( fragmentShaderHandle );

            Console.WriteLine( GL.GetShaderInfoLog( vertexShaderHandle ) );
            Console.WriteLine( GL.GetShaderInfoLog( fragmentShaderHandle ) );

            shaderProgramHandle = GL.CreateProgram();

            GL.AttachShader( shaderProgramHandle, vertexShaderHandle );
            GL.AttachShader( shaderProgramHandle, fragmentShaderHandle );

            for ( int i = 0; i < attribs.Length; i++ )
                GL.BindAttribLocation( shaderProgramHandle, i, attribs[i] );

            GL.LinkProgram( shaderProgramHandle );
            Console.WriteLine( GL.GetProgramInfoLog( shaderProgramHandle ) );
            GL.UseProgram( shaderProgramHandle );

            uniformManager.addUniforms(
                new UniformMatrix4f( "projectionMatrix", projectionMatrix ),
                new UniformMatrix4f( "modelviewMatrix", modelviewMatrix ),
                transformMatrixUniform = new UniformMatrix4f( "transform", transformMatrix ),
                new Uniform3f( "ambientColor", ambientColor ),
                new Uniform3f( "lightColor", lightColor ),
                new Uniform3f( "lightDirUnit", lightDirUnit ),
                new Uniform1f( "time", time ),
                new Uniform1f( "random", random ),
                new Uniform1f( "textureSamples", textureSampler )
            );
            uniformManager.init( shaderProgramHandle );
        }