Blender에서 Collada 형식을 내보내고 더 복잡한 오브젝트와 텍스처를 사용하여 인덱스 "p"섹션에서 동일한 정점 정보이지만 다른 법선과 uv 좌표를 사용합니다.3D 모델에서 서로 다른 uv 좌표로 정점 위치가 중복되는 이유
중요한 두 가지 질문이 있습니다.
1 : 왜? 그 위치에 오직 1 개의 꼭지점 위치와 1 개의 UV 좌표 만 있어야합니까?
2 (가장 중요한 질문) :이 버텍스 정보가 버텍스 쉐이더에 고장 나면 어떻게 될까요? 예를 들어, 인덱스 1 정점과 인덱스 10 정점은 동일한 위치를 공유하지만 다른 법선 및 UV 좌표를 갖습니다. 인덱스 10이 먼저 나온 다음 인덱스 1이되면 어떻게 될까요? 그리고 그 반대의 경우에도 Pixel Shader 내부에서 변경되는 사항이 있습니까? 이것은 어떻게 나머지 파이프 라인에 영향을 줍니까?
감사합니다.
위대한 답변이지만 질문 1은 어떻게됩니까? – Mike5050
GPU는 '인터리브 된 버텍스 데이터'와 함께 작동합니다. 즉, 버텍스마다 모든 데이터가 형식 및 스트라이드로 정의 된 동일한 블록에 압축됩니다. 다른 법선, UV, 뼈 인덱스 또는 다른 정점 데이터를 사용하여 동일한 위치를 유지하려면 복제해야합니다 ('분할'이라고도 함). GPU는 "배열 구조"가 아닌 "구조체 배열"을 사용합니다. 여러 버텍스 버퍼 스트림을 사용하는 경우에도 버텍스 당 모든 버퍼에 대해 단일 인덱스 만 있습니다. –
오른쪽. 질문 1에 대한 나의 대답은 : 정점이 복제되지 않는다는 것입니다. 버텍스 (x, y, z, u1, v1)와 버텍스 (x, y, z, u2, v2)는 서로 다른 (u, v)이기 때문에 서로 다른 버텍스입니다. – Tommy