3D 太阳系 - OpenGL 和 C#
2016-08-23
0 0 0
4.0 分
其他
如何获取积分?
翻译 maninwest@Codeforge 作者:Vasily Tserekh@CodeProject
这是个 3D 太阳系,使用 OpenGL 和 C# 实现。我尽量让它简单。它包含行星、卫星、太阳月亮和其他星星。我使用了 TAO命名空间,它是在 OpenGL dll 和 .NET Framework 之间的互操作。我也用了 Shadowengine - 一个我自己开发的小图形框架。使用它,我可以省去加载图形和初始化图形上下文的代码编写工作。
3D 编程员眼中的太阳系
3D 编程员需要将宇宙、轨道、星星等实体在程序设计环境中进行转化。宇宙是一个黑色背景,可以使用 OpenGL 的函数 Gl.glClearColor(0, 0, 0, 1);//red green blue alpha 。至于星星,可以使用点来替代。可以使用 OpenGL 处理绘制点的基元。你也可使用随机函数生成大量点,只要确保它们不在太阳系中即可。行星是有底纹的球体。它们有自己的轨道和旋转轴。你得使用 变量跟踪并更新,因为它们随着时间改变。如果不想使用3D max 制作球体,可以使用 OpenGL 二次曲线。卫星和行星一样,只是不饶太阳而是绕行星转。
使用代码
典型的 FPS 相机。
鼠标以屏幕中间为中心。
用户移动鼠标时,会计算离开始点的 delta X 和 Delta Y 。
这些 Delta X 和 Delta Y 被转化成角度
当你向前/向后移动相机时,相机会移动到角度指的方向。
这是个 3D 太阳系,使用 OpenGL 和 C# 实现。我尽量让它简单。它包含行星、卫星、太阳月亮和其他星星。我使用了 TAO命名空间,它是在 OpenGL dll 和 .NET Framework 之间的互操作。我也用了 Shadowengine - 一个我自己开发的小图形框架。使用它,我可以省去加载图形和初始化图形上下文的代码编写工作。
3D 编程员眼中的太阳系
3D 编程员需要将宇宙、轨道、星星等实体在程序设计环境中进行转化。宇宙是一个黑色背景,可以使用 OpenGL 的函数 Gl.glClearColor(0, 0, 0, 1);//red green blue alpha 。至于星星,可以使用点来替代。可以使用 OpenGL 处理绘制点的基元。你也可使用随机函数生成大量点,只要确保它们不在太阳系中即可。行星是有底纹的球体。它们有自己的轨道和旋转轴。你得使用 变量跟踪并更新,因为它们随着时间改变。如果不想使用3D max 制作球体,可以使用 OpenGL 二次曲线。卫星和行星一样,只是不饶太阳而是绕行星转。
使用代码
项目中包含对 ShadowEngine和 TAO.OpenGL 的引用.
项目类有:
Camara.cs典型的 FPS 相机。
鼠标以屏幕中间为中心。
用户移动鼠标时,会计算离开始点的 delta X 和 Delta Y 。
这些 Delta X 和 Delta Y 被转化成角度
当你向前/向后移动相机时,相机会移动到角度指的方向。
c#
opengl
太阳系
相关源码推荐
第186号:DX0110-小区物业管理系统源码
0
0
暂无评分
第219号:DX0149-小区物业管理系统源码
0
0
暂无评分
验证码识别
0
0
暂无评分
CSV数据分析工具
0
0
暂无评分
医院病历信息管理系统源码
0
0
暂无评分
暂无评论