程序星场发生器


15

是否有人知道任何程序生成星场的代码?

理想情况下,我希望它是基于物理学的,这样我就可以拥有逼真的行星和卫星。最好的方法是使用C ++,开源并与Ogre3d兼容。

如果没有可用的内容,我不害怕编写大学论文中的代码。


2
你所说的“田野”是什么意思?一簇恒星,一个星系,一簇星系?只有一颗有行星的恒星?
Maik Semder 2011年

2
我想为游戏创建一个天空盒。我希望夜空表现得更真实一些。由于恒星不变,因此您可以从恒星目录(或随机生成)为它们生成静态的天窗图像。行星缓慢移动,因此您可以定期地更新它们的位置。月亮会发生很大变化,因此您会在程序上更频繁地生成它。月亮还需要进行一些图像处理,因为它将远远大于一个像素。
杰伊(Jay)

1
这有很多好的材料:vterrain.org/Atmosphere
杰伊(Jay)

2
您需要的很多东西都将取决于您的行进速度,是sub-c还是super-luminal,是纯天窗还是整个星系中飞行?你的规模是多少?
Patrick Hughes

1
我不需要模仿相对论效应。没有任何事情会那么快。飞行模拟器的osgEphemeris似乎是一个很好的起点
杰伊(Jay)

Answers:


11

我认为,产生一个星空(远距离)和行星和卫星(“短距离”)应该是两个不同的层。至于星空,我发现这对我的游戏很有用:http : //alexcpeterson.com/spacescape。这样可以照顾您的远距离静态星空。它是用C ++和开源语言编写的。

至于“短程”的东西。我找到了一些太阳系模拟器的资源,但是从我的一眼看,如果您想创建一个与我们自己的系统不同的太阳系,它们看起来就不太通用。我把链接放在最后。

实际上,为行星创建通用系统并不难。研究一下您的开普勒,您可以对行星的位置进行一些很好的估计。http://en.wikipedia.org/wiki/Kepler%27s_laws_of_planetary_motion。大概只是坚持简单的非偏心轨道就可以了:)

这是我发现的太阳系模拟器的一些链接。

http://astro.berkeley.edu/~dperley/programs/ssms.html

http://code.google.com/p/solar-system-cpp/


您的工具看起来真的很有帮助。感谢您的分享
周杰伦

3
不是我的工具,我只是使用它:) Spacescape工具的全部功劳归功于Alex C Peterson
MichaelHouse
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.