블로그 이미지
이태원에서 사는 다섯식구의 무직 가장. 흰둥에미

카테고리

분류 전체보기 (184)
Itaewon (2)
ryu's?? (1)
20121210이전 (20)
20130827이전 (147)
soo'study (13)
Total40,648
Today1
Yesterday364

'Vertex'에 해당되는 글 1건

  1. 2013.02.15 ASE GeoObject (1)

GeoOjbect 구조

 - GEOMOBJECT {   NOTE_TM, MESH, MATERIAL, ...   }

   Mesh : GeoObject의 가장 핵심, Vertex 정보와 Face정보를 가짐.

   Material REF : 적용되는 Material의 번호를 의미


Mesh 구조

 - D3D : 모든 정보들이 모여져서 저장되는 Vertex 구조

            (하나의 Vertex의 좌표, 법선, 컬러, 텍스쳐 정보등이 모두 들어감)

   3DMax : 모든 정보들이 분리되어 저장되는 Vertex 구조

               (PVertex, CVertex, TVertex, PIndex, CIndex, TIndex)


Vertex 정보

 - TVertex와 TIndex는 텍스쳐 좌표 정보를 가진 Vertex를 의미, 다른 Vertex들처럼 Y와 Z값을 바꾸지 않음.

   TVertex의 2개 좌표만을 사용(UV좌표계), 단 V값은 1.f - Y를 해서 생성.

   D3D에서 다중 텍스쳐가 ASE의 Mapping Channel임.

 - CVertex와 CIndex는 정점의 색상 정보, 중복이 되는 CVertex는 제거

 - PVertex와 PIndex는 정점의 좌표와 그 인덱스

   출력되어 나오는 Vertex의 좌표 정보는 모두 Vertex에 NodeTM이 곱해져서 나온 좌표들, 따라서 Vertex를 읽어들이고 난 후,

   NodeTM의 역행렬로 Transform해줘야, Local좌표계로 맞춰짐.

더보기

 - Vertex와 Index 정보들의 3가지 문제점

   Vertex의 중복 : Vertex 리스트 중 똑같은 정보를 가진 Vertex가 존재, 중복 Vertex는 하나로 줄여주고, 그 Index의 값을 변경

   Vertex의 미사용 : Vertex 리스트에 존재하지만, Index에는 한번도 나타나지 않음, 미사용된 Vertex를 찾아서 제거

   잘못된 Mesh정보의 문제 : Mesh의 최소단위인 Face설정을 위해서는 3개의 Vertex가 필요한데, 잘못된 Vertex를 인덱싱

                                        잘못된 Mesh를 찾아서 제거.

 - 최적화 : 중복된 Vertex의 제거, 잘못된 Face의 제거, 출력에 최적화되게 Vertex들을 정렬


Normal 정보

 - 각 Face마다 1개의 Face Normal과 3개의 Vertex Normal이 존재.

   Face Normal은 은면 제거를 위해, Vertex Normal은 광원 처리를 위해 사용.

 - D3D로 변환시 문제 : 3DMax는 하나의 Vertex에 여러 개의 Normal이 존재, 하지만 D3D는 하나의 Vertex에 하나의 Normal이 존재

                                같은 Vertex라도, Normal값이 다르다면, Vertex를 둘로 나누어줌.

 - Normal값 검사 : Normal값은 float의 자료형을 가지므로, 일반 비교 연산을 통하여 같은지 검사는 무의미

                          실수 비교를 위한 EPSILON을 이용하거나, 두 Normal을 내적하여 일치함으로 간주하는 경계값을 설정하여 비교.

 - Normal값의 직접 계산 : FaceNormal과 SmoothingGroup을 이용하여 직접 계산

                                    Vertex가 접한 모든 Face들의 FaceNormal의 평균값을 VertexNormal로 사용.

                                                                                    (각진 부분에서는 원하지 않는 효과 발생)

 - Normal은 NodeTM의 역행렬을 이용하여, 변환할 필요 없음.

                                    



'20130827이전 > 3DDataExport' 카테고리의 다른 글

ASE Material  (0) 2013.02.16
ASE GeoObject  (1) 2013.02.15
3.ASE Node  (0) 2013.02.14
2. ASE Lexer와 Parser  (0) 2013.02.04
1. 3D Data Exporting 개요  (0) 2013.02.04
Posted by 흰둥에미

최근에 달린 댓글

최근에 받은 트랙백

글 보관함