如何创建 JT 3D 文件格式的查看器[已关闭]

问题描述 投票:0回答:5

我想创建一个可以查看/渲染 JT 文件格式的查看器。我知道有 1 个可用的 JT2Go 查看器,但我想为自己创建 1 个,因为 JT2GO 不是开源的。

我的要求不是那么高,我不需要JT2GO具有的功能,我只想渲染3D文件,不需要分层或选择单个组件。只是一个平面观众。

opengl graphics 3d jupiter-tessellation
5个回答
4
投票

首先获取规格:

http://www.plm.automation.siemens.com/en_us/Images/JT_v95_File_Format_Reference_Rev-A_tcm1023-111987.pdf

并编写一个库来读取文件。该规范看起来很大,但实施起来很简单。我认为应该可以访问文件的元素,而无需将整个数据结构保留在内存中。

在编写查看器部分时,不要直接使用OpenGL,而是使用场景图形库。 (我第一个想到的就是 OpenSceneGraph)


3
投票

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


2
投票

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


1
投票

您可以尝试向开放资源导入库添加对此文件格式的支持:

http://assimp.sourceforge.net/

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


-1
投票

要在加载文件后查看文件,您基本上需要在程序中实现 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 文件格式。

© www.soinside.com 2019 - 2024. All rights reserved.