当前位置:天才代写 > tutorial > 其他教程 > Corange:基于SDL和OpenGL纯C语言3D游戏引擎

Corange:基于SDL和OpenGL纯C语言3D游戏引擎

2018-05-18 08:00 星期五 所属: 其他教程 浏览:1791

本资源由 伯乐在线 – 骷髅 整理

Corange

简介

C++编写的游戏引擎随处可见,而纯C语言编写的游戏引擎确实非常稀罕。
Corange是一个用C语言OpenGL标准编写的游戏引擎。在不牺牲性能前提下提供丰富的表现力、方便进行技术原型测试。它包括一个强劲的渲染器和一系列3D图形演示。

Youtube演示视频

特点

  • 小巧、简单、强劲、跨平台(Windows、Linux、Mac OSX)
  • 资源清晰易用 、UI、 实体管理机制
  • 流行的延迟渲染技术(Deferred rendering)
  • 内容

    这个项目是作者为了提高C语言技能进行的一系列3D图形方面的技术和效果的实验平台。它算不上是开箱可用的或者即插即用的,但是其中包含了大多数3D图形方面涉及到的内容:

  • 延迟渲染(Deferred Rendering)
  • 界面渲染
  • 文本渲染
  • 多光源
  • 后期效果处理(Post effect)
  • 屏幕空间环境光遮蔽(SSAO)
  • 阴影投射(Shadow Mapping)
  • 颜色纠正
  • 骨骼动画
  • 反向动力学
  • 碰撞检测
  • OpenCL支持
  • 资源、UI、实体管理机制
  • 地形
  • 支持dds、wav、bmp、obj、smd等格式的文件装载
  • 数学和网格
  • 等等…

    使用和发布

    此项目目前只算是个人项目,会存在大量的Bug,未完成的特性和有点混乱的代码。仍处于可能会有大规模改动的半成品阶段。作者更建议大家和一起沟通并加入项目开发,而不是直接使用。与Unity这样的游戏引擎相比,Corange更象是XNA那样使用各种图形API特性的框架。

    如果这个项目吸引了你,作者给出了下列事项可以帮助你快速开始:

  • 首先看看项目的demo代码:这可以让你对如何使用Corange有一个概念。
  • 文档确实少,所以先看头文件在看C文件。文档虽然少,但代码大部分时候还挺清晰的。
  • Corange不隐藏任何东西,OpenGL和SDL的调用都使用了命名空间以便你可以访问到这些基础接口。corange_init 和 corange_finish相当清晰和短小,你可以不直接调用它们而只使用你需要的部分。

    结构都没有使用它们的指针去做类型定义。这确实只是个人偏好问题,但作者承认这样做确实导致了更多的数据被压到堆栈中,只是现在还不想为这些事情烦心。

    资源、界面和实体的管理是引擎中重要的部分。它们主要是让你获取和保存资源(模型、纹理——文件系统中的对象)和实体(灯光、摄像机、引擎对象)和UI元素。他们在销毁时会清除内存,让你在代码的任何位置都能得到它们的指针。

    Corange的命名空间还有点乱,经常出现像”error”、”warning”、”vec2″和”image”这样的命名。它不算是一个通用的库,但作者仍试图能让使用者快速从中得到需要部分的代码。

    Demo

  • renderers:演示了 Shaders,阴影,和动画方面的渲染。
  • metaballs:使用 OpenCL/OpenGL 指令渲染的金属球。
  • noise:使用shader在屏幕上绘制基于噪声的图案。 可以产生重复的柏林噪声。
  • platformer:基本的动作游戏,有非常完整的注释。
  • sea:海面、船和碰撞检测。
  • scotland:演示了地形系统。
  • tessellation:演示了OpenGL 4的曲面细分技术。
  • 官方网站:http://www.theorangeduck.com/page/projects
    开源地址:http://github.com/orangeduck/Corange

     

      关键字:

    天才代写-代写联系方式