.OBJ 파일에 꼭짓점 색상 정보를 어떻게 포함시킬 수 있습니까?


25

내보내는 .obj 파일에 정점 색상에 대한 데이터가 없습니다. .obj 파일에 색상 정보를 포함시키는 방법이 있습니까? 그렇지 않다면 대안은 무엇입니까?

답변:


9

블렌더는 PLY 파일 (.ply)을 내보낼 수 있으며, 텍스트 기반이며 구문 분석이 매우 쉽고 정점 색상을 포함합니다. 어려운 방법은 꼭짓점 색상을 포함하도록 OBJ 내보내기 코드를 변경하는 것입니다 (따라서 obj 호환성을 손상시킵니다).


8
잘못된 방법은 OBJ 수출을 변경하는 것입니다. 작업에 적합한 도구를 사용하십시오. 정점 색상을 원한다면 Wavefront OBJ는 분명히 사용하거나 남용하려는 도구가 아닙니다.
Martin Sojka

6
왜 잘못된 방법입니까? 만약 그가 OBJ 수출업자가 자신의 것을 만들기 만한다면, 나는 그것이 어떻게 "잘못"되었는지 알지 못한다. 누군가에게 항상 잘못된 길 이므로 잘못된 길은 어떤 일도하지 않는 것입니다.
Ravachol

.obj 형식은 재료 정보를 저장하기 위해 .mtl 파일을 사용하지만, 아는 한 면당 하나의 재료 만 지원합니다. 또한 .obj는
위키피디아

3
OBJ가 고정 된 사양이기 때문에 잘못되었습니다. 추가 작업 을 수행하기 위해 내보내기를 변경하기 시작하면 더 이상 OBJ 내보내기가 아니며 다른 것입니다. 거기에서 그것은 거의 모든 멀티 헤드 짐승으로 변할 수 있습니다. 그래도 좋은 대답은 PLY에 대해 들어 본 적이 없습니다.
엔지니어

@NickWiggill PLY는 반드시 좋은 선택은 아닙니다. 어쩌면 당신은 그 이유를 들어 보지 못했을 것입니다. 그것은이다 훨씬 더 복잡 OBJ 이상 과 하나가 합리적으로 정적 모델에 사용할 필요가있는 것보다 더 많은 유연성을 할 수 있습니다. 추가 유연성을 필요로하는 경우, 어쩌면 당신은 잘 확립 등 파서와 더 인기있는 파일 형식을 사용한다 COLLADA
bobobobo

18

Vertex Coloring을 용이하게하는 Wavefront의 * .obj의 풍미가 있습니다. "MeshLab"(무료) 및 "MeshMixer"(Autodesk에서도 무료)를 내보낼 수있는 두 가지 응용 프로그램을 알고 있습니다. 아래 그림과 같이 각 정점 정의 직후에 ..

(* .obj의 조각)

####
#
# OBJ File Generated by Meshlab
#
####
# Object VERTEXPAINT_004_OBJ.obj
#
# Vertices: 284
# Faces: 281
#
####
mtllib ./VERTEXPAINT_004_OBJ.obj.mtl

vn 0.029683 0.730087 -0.682709
v 1220.094482 -572.500000 177.713943 0.984314 0.764706 1.000000  

# "3 vals for Vert and 3 vals for Col"

vn 0.000000 0.858139 -0.513418
v 1291.571533 -609.439636 -28.628490 0.921569 0.219608 1.000000
vn 0.303129 0.896367 -0.323480

meshlab을 사용하여 "Vertex Based Ambient Occlusion"을 생성 한 다음 "MeshMixer"로 엽니 다.

이것은 버텍스 컬러링이 쉐이더의 출현과 함께 다시 온다고 생각합니다. 이미지 맵이 발견 될 때 버텍스 컬러링이 무시되는 것처럼 보이는 것은 재미 있습니다. 이제 우리는 "Vertex Colouring"의 귀환을 보게 될 것입니다! 이것이 유용한 지 알려주세요!


아, 알겠습니다 그들은 3 수레로 정점 당 색상에 압정으로 고정 v 정점 위치 지정. 현존하는 OBJ 파서와의 호환성을 (정말로) 깨지 않는 영리한 방법
bobobobo

+1 최근에 획득 한 obj 파일에서 이러한 색상의 정점을 정확히 발견했습니다. 에 따르면 문제 · OBJ 정점 색칠 구문 분석 문제 # 2083 · mrdoob / three.js를 , 색상은 일반적이며, 0 1까지의 어떤에서 당신이에 대한 실제 문서를 알고 있습니까 빨강, 녹색, 파랑 순서대로 그것을지지하는 사람들? 그것을 구현하는 오픈 소스 코드는 어떻습니까? 실제로 널리 사용되는 obj에 대한 서면 표준이 있습니까?
nealmcb

Aha- 내 질문 중 하나에 대답하기 위해 MeshLab 은 무료 일뿐만 아니라 오픈 소스 (GPL) 및 교차 플랫폼 :)
nealmcb

7

Wavefront OBJ는 색상 그룹 이 동일한 색상의 재질을 지원합니다 .

주요 내용은 다음과 같습니다.

newmtl redMtl
Kd 1.00 0.00 0.00
Ks 0.50 0.50 0.50
Ns 18.00

Kd는 확산 성분 Ks specular입니다.

이들은 .obj 파일과 함께 제공되는 .mtl 파일 내에 지정됩니다. .obj 파일 안에는 다음과 같은 문장이 있습니다.

usemtl redMtl
f 1/5/1 30/39/2 20/29/3
f 20/29/4 30/39/5 31/41/6
f 35/48/7 26/35/8 2/6/9

이는 지정된면이 redMtl 재질을 사용해야 함을 의미합니다. obj 파일을 파싱 할 때 버텍스 별 색상으로 변환됩니다.

다른 색상이 많으면 다른 재질이 많지만 할 수는 있습니다.

다음은 특정 얼굴 그룹에 다른 재질을 할당하는 방법에 대한 비디오입니다 . 원하는 경우 메쉬의 각면에 다른 재질을 지정할 수 있습니다.


5
불행히도 그것은 버텍스 당 색칠이 아닌 얼굴 당 색칠만을 허용합니다.
솜털
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.