针对具有目标相机的C ++ 3d矢量/矩阵库的建议

时间:2009-05-15 16:05:20

标签: c++ 3d vector matrix

我正在编写一个非常简单的三维粒子软件渲染系统,但我只对编码粒子系统和光栅化器感兴趣,所以我正在寻找的是从三维粒子坐标到相机的最简单方法,屏幕坐标,但具有可变FOV和目标(看)相机等功能。

任何其他功能,例如点到点的距离,边界体积等都是一个奖励,但易用性对我来说比功能更重要。

唯一的许可证要求是它是免费的(如在啤酒中)。

4 个答案:

答案 0 :(得分:2)

你可能想要一个场景图库。存在许多C ++场景图库。 OpenScenegraph很受欢迎,Coin3D(免费用于非商业用途)是OpenInventor规范的一个实现,它们中的任何一个都可能适合您的需要,因为它听起来不像您需要任何尖端的支持。还有Panda3D,如果你使用Python,我听说这很好。

你可以在像OpenGL这样的直接低级工具包中完成所有这些工作,但是如果没有任何经验,使用OpenGL需要花费更长的时间来处理任何场景图库。

在选择场景图库时,可能只是根据您喜欢的API来个人偏好。

答案 1 :(得分:1)

使用基本变换完成查看,与完成模型转换的方式相同。如果你想在GLU中使用像gluLookAt()这样的便利函数,那么我不知道,但是制作你自己的函数真的很容易。

如果你想制作自己的Look At功能等,那么我可以推荐eigen这是一个非常容易使用的C ++线性代数库。

答案 2 :(得分:1)

如果您只是专注于粒子系统的渲染部分,我会选择已建立的3D渲染库。

根据您的描述,您可以考虑尝试将粒子光栅化添加到Irrlicht中的一个或两个软件渲染器中。这样做的另一个好处是,您可以将结果与已存在的DX / OGL粒子效果渲染器进行比较。所有的管道/摄像机管理/等都将为您完成。

答案 3 :(得分:0)

您可能还想查看Armadillo C++ library