将静态方法用于OpenGL东西而不是初始化对象是否更有效?
因此,我没有一个包含一个模型数据的对象“模型”,而是使用了VAO的ID,因为我使用静态方法加载模型并返回了VAO ID。对于着色器来说是一样的事情:拥有着色器程序 object 还是仅拥有着色器程序的ID更好(静态方法创建着色器并返回ID)?这样有什么弊端吗?是更有效,还是我应该只使用对象?
(LWJGL3,Java)
答案 0 :(得分:1)
这真的取决于。如果这些方法做的是相同的事情,那么应该没有太大的区别。要真正实现重大改变,就需要有数百万种方法调用。然后,无论如何,JIT都应该参与进来
通常,依靠静态方法可以完成三件事:
因此,长话短说:您通常倾向于非静态解决方案,以避免上述所有缺点。