编写图形化程序最成熟和最受支持的解决方案是什么?
我一直在使用C++和OpenGL/GLUT,但我想尝试一种更灵活和更有表现力的方法。
Ruby和处理?巨蟒和食人魔?哪些事情对你来说效果很好?
发布于 2009-12-15 09:06:01
如果你只是对实验感兴趣,我建议你为你已经熟悉的动态语言选择一个具有绑定的3D框架。
我在一两年前就开始用Ruby/OpenGL做实验,这很容易上手。
如果您真的想要构建一个项目(无论出于什么原因),我建议您选择一个基于以下各项组合的框架
的许可
如果您希望您的项目能够在不同的操作系统上轻松运行,那么您可能希望选择一个用Java语言编写的框架(因为Java虚拟机可以在任何地方运行),并使用Ruby (jRuby)或JavaScript (因为这些语言在那里得到了很好的支持)进行绑定。然而,这将限制您可用的框架。(这是我对OSS + linux的偏见)。
维基百科有一个list of game engines。基于几个标准,我用jMonkeyEngine (v2)开始了一个项目,我发现它很容易使用和控制Rhino (一种JVM JavaScript实现)。
我最近看到了另一个基于Java的框架的演示文稿,它绑定了几种语言,看起来非常酷(灵感来自Ogre引擎),但我忘记了它的名字,在列表中找不到它。
在做C#的时候,我确实考虑过同时针对dotNet和Mono的跨平台运行的项目/框架,但要获得(Tao?)的开发版本太麻烦了。框架和Mono Lua绑定运行。也许事情已经改变了。
总而言之,选择一个框架,它可以运行在您想要的环境中,并具有您想要使用的动态语言的绑定。即使您想要使用的动态语言可用的框架库代码非常少,如果您能够使用底层语言,您也可以很容易地扩展它。如果您精通C++,那么Java和C#应该不会太麻烦。
发布于 2009-12-15 08:20:37
考虑到您熟悉C++,您可以尝试一下Lua。Lua是一种动态语言,可以嵌入到任何C/C++程序中。它在游戏行业非常受欢迎。
发布于 2010-04-20 19:15:07
我想提一下Python和PyOpenGL作为一个考虑的选项。
如果您已经熟悉OpenGL,那么PyOpenGL基本上就是一个用Python语言编写的API包装器。一开始,我很惊讶Python和C++中的代码看起来是如此相似。如下所示(注意,我也在使用Pyglet):
def setup_render(self):
'''First rendering setup'''
glClearColor(0.0, 0.0, 0.0, 1.0)
glClearDepth(1.0)
glEnable(GL_LIGHTING)
glEnable(GL_DEPTH_TEST)
glEnable(GL_ALPHA_TEST)
glEnable(GL_CULL_FACE)
def draw(self, time_passed):
'''Drawing events'''
if self.has_exit:
pyglet.app.exit()
return
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glUseProgram(self.shader.program)
self.set_lights()
# Draw objects here
glTranslate(0, 0, -10)
glScale(5.0, 5.0, 5.0)
glutSolidSphere(1, 16, 16)看看它与C++代码有多相似。
我能够用Python语言快速学习PyOpenGL,并实现了一个少于200行的四元数类。如果你对Python感到满意,我会毫不犹豫地推荐你去看看。
顺便说一句,PyOpenGL's API documentation也比official one的可读性强得多。
https://stackoverflow.com/questions/1904454
复制相似问题