Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        5年前关闭。
                                                                                            
                
        
我非常喜欢jMonkey,因为它将游戏开发所需的一切都集成到一个软件包中,并提供了合理的文档支持和许多示例。您可以下载它,然后在几分钟内开始制作游戏(基于修改后的示例)。它是开源的

我不喜欢jMonkey的是Java。如果要进行大量快速向量/四元数/矩阵数学运算,这是非常有限的。在C ++中,您可以为此数学运算符重载。在Java中,通过访问对象元素和分配新对象(您通常无法避免)会失去很多性能。始终使用getter和setter来保护对象属性非常不便,而不是直接访问数字。

因此,我想知道是否有功能如此丰富的东西,例如jMonkey(物理引擎,场景图,着色器,各种3D网格/纹理格式的导入,网络...),但是在C ++中,您可以编写:

Vector1 += scalar1*Vector2*Vector3;


代替

Vector1.add(  vector2.mul( Vector3 ).mul( scalar1 ) );


不用担心构造新对象

我做了一些测试:


在带有-02优化的C ++中,我在1个处理器中获得了double3的fmul(融合乘加)

在Java中,如果我只使用的本地操作,大约需要4-6个刻度
Vectro3f(未分配)
创建新对象时约10个滴答声。有时由于Vectro3f类的体系结构而无法避免创建新对象,对于使用分量x,y,z,w是受保护变量的四元数,则更糟。

最佳答案

看看Simple Fast Media Library (SFML),它甚至在这里有一个标签:sfml

10-08 05:21