2011-02-09 4 views
2

JT 파일 형식을 보거나 렌더링 할 수있는 뷰어를 만들고 싶습니다. JT2Go는 오픈 소스가 아니기 때문에 1 뷰어를 사용할 수 있지만 JT2Go는 1 개를 직접 만들고 싶습니다.JT 3D 파일 형식의 뷰어를 만드는 방법

내 요구 사항이 너무 높지 않아서 JT2GO의 기능이 필요 없으며 3D 파일을 렌더링하고 개별 구성 요소를 레이어하거나 선택하지 않아도됩니다. 그냥 비행기 뷰어. 의 사양을 얻어서

+0

JT 파일에서 삼각형 및 재료 정보를 추출하는 방법을 알아 냈습니까? 그렇다면 어떻게 성취했는지 공유해주십시오. 같은 종류의 작업을 수행하려고하지만 JT 파일에서 데이터를 가져 오는 방법을 찾는 데 문제가 있습니다. – Davido

+0

패리, 당신은 마지막으로 뷰어를 개발에 성공 했습니까? 미리 감사드립니다. –

+0

히 우리가 우리의 요구 사항이 변경 did't 수행하지 않으며 우리는 당신이 보는 부분에 대한 좀 더 자세한 내용을 던질 수 있습니까 그 사양이 공개 GL –

답변

4

시작 :

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

하고 파일을 읽기 위해 라이브러리를 작성합니다. 스펙은 크지 만 곧장 구현됩니다. 전 메모리에서 전체 데이터 구조를 유지하지 않고 파일의 요소에 액세스 할 수 있어야한다고 생각합니다.

뷰어 부분을 프로그래밍 할 때 OpenGL을 직접 사용하지 말고 장면 그래프 라이브러리를 사용하십시오.

http://assimp.sourceforge.net/

이 또한 불행한 약어 ASSIMP으로 알고

+0

작업을 시작 ?? 나는 그 부분에 혼란 스럽다. 일단 내가 스크린에서 JT를 읽었을 때 나는 그걸 어떻게 보여줄 것인가? –

0

열기 자산 라이브러리 가져 오기에이 파일 형식에 대한 지원을 추가하려고 할 수도 있습니다 (OpenSceneGraph 내 마음에 나타나는 첫 번째입니다). 이미 뷰어가 있으므로 가져 오기 라이브러리에 형식을 추가하면 완료됩니다. 또한 기존 오픈 소스 라이브러리에 다른 형식에 대한 지원이 추가됩니다.

+0

덕분에 당신은 뷰어 부분에 좀 더 솔루션 당신이 Windows에서만 작동을주는 일을 줄 수 있습니까 ?? 시청자가 정확히 어떻게 작동하고 3D 그래픽 영역에서 무엇이라고 불 립니까? –

0

로드 한 파일을 보려면 기본적으로 프로그램에서 OpenGL을 구현해야합니다. 각 객체는 기하학을 나타내는 부동 소수점 값의 배열입니다 (정점). 따라서 일단이 정보를 가져 오면 표준 OpenGL 호출을 사용하여 렌더링하면됩니다.

vertexX, vertexY, vertexZ, normalX, normalY, normalZ 

수레의이 배열은 모델의 모든면을 나타냅니다 예를 들어, 밀집 배열로 (수레의 단일 차원 배열을) 당신의 정점을 넣어. 위의 선은 하나의 정점 인 얼굴 당 3 개의 꼭지점입니다. 일단 플로트 배열을 가지고 있으면 렌더링하기가 간단합니다.

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 파일 형식을 읽는 방법을 공유하십시오.

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)입니다. Jt 어시스턴트의 장점 중 하나는 Jt2Go와 비교하면 JT 문서의 여러 레이어 (그룹)를 표시 할 수 있다는 것입니다.

관련 문제