在这个浏览器和位图图形占主导地位的世界里-经过几十年的macintosh式的华丽装饰的窗口和漂亮的组件-我正在寻找一种方法来渲染固定大小的字符文本,在3d面板上绘制一个极其简化的"gui“,可以缩放和交互地调整大小,使内容变得很小,没有包装或更不可读性,到”面板“上,用户可以平铺在一起,”堆叠“,旋转,拖动等。
软件应该是可移植的或跨平台的。
看起来一个简单的,基本的3d图层是一个很好的选择,例如opengl,问题是:我对这些东西一无所知。
在不需要学习3d工具包的所有知识的情况下,完成任务的最简单方法是什么?
实现这一目标最合适的工具是什么?
java3d?或者它是过时的/缓慢的?qt工具包3d窗口小部件?
提前感谢您的任何提示
发布于 2010-01-02 17:11:21
OpenGL确实支持呈现文本,特别是:`
glRaster3f(GLfloat x, GLfloat y, GLfloat z);
将设置“栅格”位置,并且
glutBitmapCharacter(GLUT_BITMAP_9_BY_15, 'h');
将在那个“光栅”位置呈现一个h。但是,这需要学习OpenGL应用程序接口。
另一种选择是自己完成投影的所有数学运算,并将其渲染到一个与窗口大小相同的字符数组上。
Here是OpenGL用于其3D投影和变换的矩阵。
这通常会有相同的效果,而且您不需要所有额外的库。然而,这实际上会使你的核心程序变得更大,而且可能会稍微慢一点,因为它不像OpenGL那样是硬件加速的。
另一方面,Java3D实际上运行在OpenGL或Direct3D之上,这意味着运行它所需的库将更加广泛。然而,尽管它仍然是一个应用程序接口,但它似乎确实比OpenGL或Direct3D简单得多。
交互性是一个完全不同的问题。
再说一次,OpenGL确实有必要的支持。
gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ);
在给定适当的投影和模型视图矩阵的情况下,会将鼠标单击返回的窗口坐标转换为最前面的纹理元素的3空间坐标。
在这种情况下,我真的不知道java3D,甚至如果你计算自己的3D效果,你会使用什么。
总体而言,您确实有很多选择,但所有这些都需要大量的工作和考虑。
https://stackoverflow.com/questions/1990208
复制相似问题