2014-10-20 6 views
0

Blender에서 Collada 메쉬 설명 파일을 익스포트 한 후 이상한 문제가 있음을 발견했습니다.Collada를 사용하여 블렌더에서 내 보낸 파일과 이상한 동작을 보임 수출업자

문맥을 살펴 봅시다. 저는 비행기에서 간단한 텍스처 맵핑을 적용하기로 한 매우 간단한 프로젝트를 만들었습니다.

여기 enter image description here

은 재료 구성의 사진입니다 : 여기

출력의 화면입니다

enter image description here

당신이 볼 수 있듯이, 물질 확산 구성 요소는 모두 동일하다 0.7 (Kd 0.7 0.7 0.7)이다.

그리고 재료에 부착 마지막으로 질감

은 :

enter image description here

그것은 'floor_COLOR.jpg'이다.

# Blender MTL File: 'bumped_plane.blend' 
# Material Count: 1 

newmtl PlaneMtl 
Ns 96.078431 
Ka 0.000000 0.000000 0.000000 
Kd 0.70000 0.70000 0.70000 //Material diffuse components 
Ks 0.889474 0.889474 0.889474 
Ni 1.000000 
d 1.000000 
illum 2 
map_Kd floor_COLOR.jpg 

당신이 모든 자료 데이터가 조직 수준에서 존경 볼 수 있듯이 :

이제

, 여기에 최초의 파면 OBJ 로더 (재료 부분)에서 출력 파일의 우리 모두가 확산 물질 구성 요소가 0.7이고 확산 맵은 'floor_COLOR.jpg'입니다. 이제

의이 콜라다 수출에서 내 보낸 파일의 코드 조각을 살펴보기로하자,하지만 질감없이 처음에 (의이 확산 물질의 구성 요소에 초점을 맞출 수 있도록) :

[...] 

<diffuse> 
    <color sid="diffuse">0.7 0.7 0.7 1</color> 
</diffuse> 

[...] 

을 당신이 볼 수 있듯이 나는 모든 확산 물질 데이터를 정확하게 복구했습니다.

그러나 나는 다음과 같은 결과를 텍스처 매핑을 사용하여 내 파일을 내보낼 수 있는지 알고 :

[...] 

<image id="floor_COLOR_jpg" name="floor_COLOR_jpg"> 
    <init_from>floor_COLOR.jpg</init_from> 
</image> 

[...] 

<diffuse> 
    <texture texture="floor_COLOR_jpg-sampler" texcoord="UVMap"/> 
</diffuse> 

[...] 

좋아, 내가 경로와 내 텍스처의 종류를 회복하지만 어디 확산 물질의 구성 요소가됩니다? 나를 위해

결과가 같은 것을 같아야

diffuse_color = gl_LightSource.diffuse * gl_FrontMaterial.diffuse * dot(NormalDir, LightDir) 
diffuse_color *= fragment_color_from_diffuse_texture //Here 'floor_COLOR.jpg' (sampler2D) 
'gl_FrontMaterial.diffuse'은 물질 성분을 확산 지칭

(Kd를 :

<diffuse> 
<texture texture="floor_COLOR_jpg-sampler" texcoord="UVMap"/> 
<color sid="diffuse">0.7 0.7 0.7 1</color> 
</diffuse> 

디퓨즈 퐁 쉐이딩 방정식은 다음과 같다)! 이 내보내기로

나는 방정식이 같아야 인상을 가지고

diffuse_color = gl_LightSource.diffuse * fragment_color_from_diffuse_texture * dot(NormalDir, LightDir) 

하지만 해결되지입니다!

그래서 왜 확산 재료 구성 요소가 사라 졌습니까?

미리 도움 주셔서 감사합니다.

답변

0

수출업자는 그런 식으로 설계된 것으로 보입니다. 이것은 collada file specifications과 일치하거나 일치하지 않을 수 있습니다. (나는 이것을 읽지 않았다)

블렌더에서 이미지 텍스처를 지정하여 확산 색상에 영향을주고 이미지와 확산 색상 간의 혼합량을 제어 할 수 있습니다. collada로 내보낼 때 확산되는 색상의 효과를 나타내는 이미지는 항상 확산 색상의 유일한 소스로 내보내집니다.

developers that work on collada이 의도적인지 묻는 것이 좋거나 정확하지 않다고 생각하면 bug report을 제출하는 것이 좋습니다.

+0

감사합니다. 나는 버그 보고서를 제출할 것이다. – user1364743