SharpGL 简介与使用指南

SharpGL 是一个允许开发者在 Windows Forms 或 WPF 应用程序中轻松使用 OpenGL 的项目。它包含了所有 OpenGL 函数直到最新的 4.2 版本,所有主要的扩展,一个强大的场景图和 Visual Studio 的项目模板。这意味着拥有了创建引人入胜的 3D 应用程序或将现有代码移植到新平台所需的所有工具。

如果没有时间阅读 SharpGL 的介绍,可以查看 以快速上手。

让先看一些截图来直观了解 SharpGL 的功能:

  • 卡通渲染(Cel Shading) - 这是最新的示例,它展示了如何使用现代 OpenGL 特性,如顶点缓冲和着色器。
  • 径向模糊(Radial Blur) - 径向模糊示例展示了如何使用标准的 OpenGL 函数创建高级光照效果。
  • 犹他茶壶WPF示例 - 在 WPF 应用程序中直接进行OpenGL渲染,无需空气空间或 Windows Forms 主机对象。
  • 纹理示例 - 通过使用纹理类等类来加速 OpenGL 开发,将图像数据加载和转换为 OpenGL 纹理。
  • 点击测试示例 - 通过从 IBoundable 派生场景元素,可以让自己的自定义类参与点击测试。

SharpGL 是一个类库集合,让能够在代码中使用 OpenGL 功能。类库包括:

  • SharpGL - 包含主要的OpenGL对象,这个对象包装了所有的 OpenGL 函数、枚举和扩展。
  • SharpGL.SceneGraph - 包含所有 OpenGL 对象和场景元素的包装器 - 灯光、材质、纹理、NURBs、着色器等。
  • SharpGL.WinForms - 包含Windows Forms控件。
  • SharpGL.WPF- 包含 WPF 控件。
  • SharpGL.Serialization - 包含用于从 3D Studio Max 文件、Discreet obj 文件和 trueSpace 文件加载几何和数据的类。

这些库之间,SharpGL 提供了对所有当前 OpenGL 函数、所有主要扩展和一系列高级功能的丰富对象的包装。可以使用 SharpGL 进行“传统”的 OpenGL 绘图,或者使用 SceneGraph 来实现更具体的应用程序任务。

如何使用 SharpGL 非常简单!如果有如下代码块: glLineWidth(3.0f); glPointSize(2.0f); 那么使用 SharpGL 可以这样写: OpenGL gl = openGLCtrl1.OpenGL; gl.LineWidth(3.0f); gl.PointSize(2.0f); 这是第一个基本规则 - 任何以 'gl' 或 'glu' 开头的 OpenGL 函数都是 SharpGL.OpenGL 对象的成员函数,'gl' 或 'glu' 被移除。

这处理了最基本的函数 - 然而,这个规则有一个例外。下面的代码: glColor3f(0.5f, 0.5f, 0.5f); glVertex3f(2.0f, 3.0f, 4.0f); glVertex4f(2.0f, 1.0f, 10.0f, 1.0f); 将被写成: gl.Color3(0.5f, 0.5f, 0.5f); gl.Vertex3(2.0f, 3.0f, 4.0f); gl.Vertex4(2.0f, 1.0f, 10.0f, 1.0f); 注意函数名后没有 'f'。这是第二个基本规则 - SharpGL 包装器函数从不带有类型后缀。

这处理了以基本类型为参数的函数。对于其他类型的函数,还有一件事要记住。下面的代码: glPolygonMode(GL_FRONT, GL_FILL); 可以写成: gl.PolygonMode(OpenGL.GL_FRONT, OpenGL.GL_FILL); 或者: gl.PolygonMode(PolygonFace.Front, PolygonMode.Fill); 这描述了最后一个基本规则。OpenGL 常量都被定义为 SharpGL.OpenGL 类的常量成员,并且具有完全相同的名字。

使用 SharpGL 编码非常简单。将注意到的一些好处包括:

  • 代码提示和 Intellisense - 所有核心 OpenGL 函数都有完整的文档,这意味着在输入时可以获得所需的信息 - 减少查阅《红宝书》的时间,提高生产力。
  • 核心函数的枚举 - 通过使用类型安全的枚举来提高可读性和减少错误。
  • 扩展和核心支持到 4.2 - 所有主要的扩展函数都可用,弃用的函数被标记为弃用,已经进入标准的扩展在扩展形式和核心形式中都存在。

第一 SharpGL 应用程序可以在五分钟内运行 - 这里是如何做到的:

  1. 安装 SharpGL Visual Studio 扩展 - 下载 SharpGL Visual Studio 扩展并解压。双击 *.vsix 文件 - 安装确认将显示出来。选择 'Install'。
  2. 运行 Visual Studio 并创建一个新项目 - 运行 Visual Studio 并选择 'New Project'。将看到在 C# 下有两个新的模板 - SharpGLWindows Forms应用程序和 SharpGL WPF 应用程序。选择首选的平台。
  3. 运行应用程序 - 按 Ctrl-F5 或按 'Run'。新 SharpGL 应用程序运行起来,显示一个旋转的金字塔。默认情况下有三个函数:
    • OpenGLDraw - 用于进行 OpenGL 渲染。
    • OpenGLInitialized - 用于执行任何 OpenGL 初始化。
    • Resize - 用于创建投影变换。

随模板提供的代码为做了基本的工作 - 并且源代码中提供了许多示例应用程序作为自己项目的基线。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485