资 源 简 介
翻译 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 二次曲线。卫星和行星一样,只是不饶太阳而是绕行星转。使用代码项目中包含对 ShadowEngine和 TAO.OpenGL 的引用. 项目类有: Camara.cs典型的 FPS 相机。鼠标以屏幕中间为中心。用户移动鼠标时,会计算离开始点的 delta X 和 Delta Y 。这些 Delta X 和 Delta Y 被转化成角度当你向前/向后移动相机时,相机会移动到角度指的方向。