阅读量:0
在C#中使用OpenGL着色器,你需要使用一个库来加载和编译OpenGL着色器代码。一个常用的库是SharpGL。下面是一个简单的示例,展示了如何在C#中使用SharpGL编写OpenGL着色器:
- 首先,确保你已经安装了SharpGL库。你可以通过NuGet包管理器安装它:
Install-Package SharpGL
创建一个新的C#控制台应用程序项目。
在项目中添加以下代码:
using System; using System.Text; using SharpGL; using SharpGL.OpenGL; class Program { static void Main(string[] args) { // 初始化OpenGL GL.Init(); // 创建一个窗口 GLControl control = new GLControl(); control.Size = new System.Drawing.Size(640, 480); control.MakeCurrent(); // 创建顶点着色器代码 string vertexShaderCode = @" attribute vec3 position; void main() { gl_Position = vec4(position, 1.0); } "; // 创建片段着色器代码 string fragmentShaderCode = @" void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); // 红色 } "; // 加载并编译顶点着色器 int vertexShader = GL.CreateShader(ShaderType.VertexShader); GL.ShaderSource(vertexShader, vertexShaderCode); GL.CompileShader(vertexShader); // 加载并编译片段着色器 int fragmentShader = GL.CreateShader(ShaderType.FragmentShader); GL.ShaderSource(fragmentShader, fragmentShaderCode); GL.CompileShader(fragmentShader); // 创建着色器程序 int shaderProgram = GL.CreateProgram(); GL.AttachShader(shaderProgram, vertexShader); GL.AttachShader(shaderProgram, fragmentShader); GL.LinkProgram(shaderProgram); // 使用着色器程序 GL.UseProgram(shaderProgram); // 设置顶点位置 float[] vertices = new float[] { -0.5f, -0.5