2014-05-23 7 views
21

현재 나는 OBJ 형식으로 3D 모델을 내보내기위한 SolidWorks 추가 기능 만들기에 종사하고 있습니다. "무료 OBJ 수출"SolidWorks to OBJ 내보내기

라고 여러 지불 플러그인가 1 무료 :

OBJ가 열려 매우 간단한 형식에게 내가 봤 한

및 솔루션을 기존에 대한 다음과 같은 정보를 발견 그것은 근거로 삼았습니다. 그러나 데칼은 수출하지 않습니다.

데칼

수출 데칼은이다 (당신이 총알의 흔적, 혈액 방울 등처럼 프로그래밍 3D로, 솔리드 웍스의 맥락에서 멀리 이동하는 경우) 메인 질감 위에 그릴 이미지입니다 프로젝트의 중요한 부분.

나는 모든 VBA 코드를 C#으로 다시 작성했습니다.

이제 수출용 데칼의 문제점을 파악하게되었습니다. 문서 Solidworks API가 다소 부족합니다.

IDecalIRendererMaterial에서 inherided 클래스 :

는 문서와 링크드 인에 대한 몇 가지 질문을 읽고 일주일 후 나는 다음과 같은 발견했다. 그러므로 나는 모든 데칼의 목록을하고 다음 정보를 얻을 수 있습니다 :

  • Yposition
  • Xposition
  • 높이 나는 또한 IFace2 개체의 목록을 얻을 수

FaceDecalProperties을 얻으십시오.

  • TextureTranslationU
  • TextureTranslationV
  • TextureTranslationX
  • TextureTranslationY
  • TextureUScale
  • TextureVScale
: IFaceDecalProperties 다음 정보를 제공합니다

무엇인지, 무엇을 의미하며 사용법은 무엇인지 모르겠습니다.

OBJ 형식은 직접 데칼을 지원하지 않습니다.

하나의 파일에서 연결 텍스처 및 데칼에이 매개 변수를 사용하려면 어떻게해야합니까? 나는 렌더러의 소스 코드를 가지고 있지 않기 때문에 데칼을 얼굴에 그리기 위해 Z-fighting의 문제를 해결하고 싶습니다.

+1

이 교과서 페이지는이 절차에서 전통적으로 나타내는 u, v, x 및 y에 대한 아이디어를 제공한다고 생각합니다. 나는 다소 익숙해졌지만 익숙하지 않습니다. https://encrypted.google.com/books?id=4gBUz_IkkSsC&lpg=PA390&ots=mAxE7Fwop1&dq=uvxy%20texture&pg=PA390#v=onepage&q=uvxy%20texture&f=false – minopret

+1

GitHub에 코드를 게시하는 것에 대해 생각해 보셨습니까? 동일한 작업을 수행하는 C# 매크로 또는 플러그인 개발에 기여하고 싶습니다. – sentenza

답변

2

이 컨텍스트에서 TextureTranslationX 및 TextureTranslationY의 의미는 확실하지 않지만 TextureTranslationU 및 TextureTranslationV는 모델의 텍스처 좌표를 거의 참조합니다.

일반적으로 (U, V) 텍스처 좌표는 [0,1] 사이에서 지정되며 이미지가 표면에 매핑되는 방법을 결정합니다. (U, V) = (0,0)은 일반적으로 텍스처 이미지의 가장 왼쪽 상단 픽셀입니다.

당신은 같은 정점의 집합이 그래서 경우 :

(X, Y, Z) 공간에 사각형을 정의하고 이러한 정점이 (가) 다음 (U, V) 텍스처 좌표를 한
v 0 0 0 
v 1 0 0 
v 0 1 0 
v 1 1 0 

:

그러면 우리가 실제로 이미지를 의미하는 "텍스처"가 사각형의 (꼭지점) (0, 0, 0) 정점에 적용되도록 정사각형에 적용됩니다.

TectureUScale 및 TextureVScale은 직사각형이 아닌 텍스처 이미지를 허용하는 스케일링 매개 변수를 참조 할 가능성이 높습니다.

OBJ로 변환하는 측면에서 http://en.wikipedia.org/wiki/Wavefront_.obj_file을 참조하십시오. 위에서 사용 된 형식은 파일 형식 사양과 일치합니다. 마지막 조각을 배치하는 것입니다

newmtl texture1 
Ka 1.000 1.000 1.000 # Only ambient to keep things simple 
Kd 0.000 0.000 0.000 # Disable diffuse component 
Ks 0.000 0.000 0.000 # Disable specular component 
illum 1    # Only color and ambient are enabled 
map_Ka texture.tga # Ambient texture map 

:

는 또한 문서를 따라 .TGA 파일에 텍스처 이미지를 저장하고 같은 다음 보이는 .mtl 파일을 작성해야합니다

usemtl [texture1] 

.obj 파일의 정점 및 텍스처 좌표 정의가 나오기 전에.

같은 너비와 높이를 가진 바둑판 패턴으로 정사각형처럼 매우 단순한 것으로 시작할 것입니다.