3

我想玩一些图形的东西。简单的动画和东西。我也想玩光线追踪。我需要帮助找到一个可以帮助我做这些事情的图书馆。我有几个要求:

  • 必须能够进行光线追踪
  • 必须用于高级语言(python、.NET 等)。请不要使用 C/C++
  • 必须有良好的文档,最好有例子。

有谁知道我可以用来鬼混的好图书馆?

4

5 回答 5

6

看看 blender.org - 这是一个具有 python 脚本功能的开源 3d 项目。

于 2009-04-23T07:01:28.510 回答
5

我首先想到的是流行的开源 POV Raytracer (www.povray.org)。POV 场景完全由脚本文件定义,有些人编写了 Python 代码来轻松生成它们。

http://code.activestate.com/recipes/205451/

http://jabas-unblog.blogspot.com/2007/04/easy-procedural-graphics-python-and-pov.html

于 2009-04-23T08:01:06.027 回答
4

我不知道有任何库可以满足您的要求(至少除非我决定为我自己的跟踪器发布代码......)。

无论如何,编写示踪剂实际上并不难。我强烈建议您获取 Glassner 的“An Introduction to Ray Tracing”的副本。它以相对容易理解的术语介绍了实际数学,并且还有一整节关于“如何编写光线追踪器”。

无论如何,“库”本身并没有那么多用处——几乎每个光线追踪器都有自己的内部库,但它们是特定于追踪器的。它们通常包括:

  1. 表示 3D 对象的基类
  2. 每个几何图元的子类
  3. 矢量和矩阵类(3D 和 4D)
  4. 纹理函数和/或类
  5. 各种类型的光类(点光源、聚光灯等)

对于我自己的跟踪器,我实际上使用了javax.vecmath上面 #3 的包,但必须根据 Glassner 书为 #1 和 #2 编写我自己的代码。整个代码不到 2k 行,而大多数单独的类大约有 40 行长。

于 2009-04-23T07:14:57.307 回答
2

我相信很少有人使用XNA Game Studio将光线追踪器放在一起。

可以在以下位置看到一个带有代码的示例:

定制软件 » 光线追踪 - 材料

于 2009-04-23T07:40:00.007 回答
2

开发良好的开源光线追踪器是

对于实时 3D(当然取决于语言),JMonkeyEngine (Java) 不确定这是否满足您的“高级语言”要求。

您也可以考虑使用 3D 游戏脚本语言,例如GameCoreBlitzBasic

于 2009-04-23T07:56:02.467 回答