如何创建JT 3D文件格式的查看器

3
我希望创建一个可以查看/渲染JT文件格式的查看器。我知道有一个名为JT2Go的查看器,但我想要创建自己的查看器,因为JT2Go不是开源的。
我并不需要像JT2GO一样拥有很高的需求和功能,我只想渲染3D文件,不需要分层或选择单个组件。只需要一个平面查看器。

你是否曾经找出如何从JT文件中提取三角形和材料信息?如果是,请分享一下您是如何完成的。我也在尝试做同样的事情,但我很难弄清楚如何从JT文件中获取数据。 - Davido
帕瑞,你最终成功开发出了查看器吗?提前感谢你。 - user736736
嗨,完成了。不,我们的需求改变了,我们开始使用Open GL进行工作。 - Pranay Airan
5个回答

4

我有那个规格,你能在查看器部分提供更多细节吗?我对那部分感到困惑,我想知道一旦我从JT上读取东西,我将如何在屏幕上显示它? - Pranay Airan

3

您可以从这里使用Java库:http://www.johannes-raida.de/jnetcad。 据我所见,它应该支持JT版本8文件。我使用了DXF导入库并感到非常满意。API相同,因此您可以访问所有三角形及其坐标、法线、颜色和图层。


2

您还可以使用Open Cascade库。它是一个开源的C++库(LGPL),主要设计用于CAD。目前,它还支持读取JT文档的面(三角形): http://www.opencascade.org/support/applications/jt_assistant/ Jt助手还可以可视化JT文档。该应用程序的C++代码是开源的(GPL)。与Jt2Go相比,Jt助手的优点之一是可以显示JT文档的不同层(组)。


1
你可以尝试将该文件格式添加到开放资产导入库中以提供支持:

http://assimp.sourceforge.net/

也被不幸的缩写ASSIMP所知。他们已经有一个查看器,所以一旦你将格式添加到导入库中,你就完成了。此外,您还将为现有的开源库添加了对另一种格式的支持。


谢谢,你能否提供更多关于查看器部分的解决方案?你提供的那个只在Windows上运行。查看器是如何工作的?在3D图形领域中它被称为什么? - Pranay Airan

0

如果要在程序中加载文件并查看它们,您基本上需要实现OpenGL。每个对象都是一个由浮点值组成的数组,表示其几何形状(顶点)。因此,一旦您提取了这些信息,只需使用标准的OpenGL调用进行渲染即可。例如,将您的顶点放入紧密打包的数组(浮点数的单维数组)中:

vertexX, vertexY, vertexZ, normalX, normalY, normalZ

这个浮点数数组代表您的模型的所有面。每个面有三个顶点,上述行为一个顶点。一旦您拥有了一个浮点数数组,呈现就很简单。

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);

glVertexPointer(3, GL_FLOAT, sizeof(vertices[0])*6, &vertices[0]);
glNormalPointer(GL_FLOAT, sizeof(vertices[0])*6, &vertices[3]);

glColor4f(R, G, B, 1); //range 0-1
glDrawArrays(GL_TRIANGLES, 0, numVertices); //number of floats in array divided by 6

glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);

然后将其放入您的OpenGL-ES 1.1渲染循环中。如果可以,请告诉我这是否正常工作。此外,如果您已经使用JT文件格式,请分享如何读取。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接