2017-04-03 14 views
1

블렌더의 BufferGeometry와 텍스처 파일을 사용하여 내 보낸 three.js json 모델 파일이 있습니다.three.js json 파일에서 포인트 제거하기

오브젝트에 json 파일 자체 내보내기를 처리하여 정리해야하는 노이즈가 있습니다 (일부 정점을 제거해야하지만 이것은 스무딩 또는 데시 메이션 작업이 아닙니다. 즉, 이 작업을 위해 다른 곳보다 json 데이터).

데이터 관점에서 파일 작업을 할 때 두 가지/세 가지 질문이 있습니다.

  1. 포인트 데이터를 제외하고 파일에 어떤 작업을해야합니까? 나는 상응하는 자외선과 법선이 있어야한다고 생각하니? 그러나 인덱스는 어떻습니까?
  2. 목록에서 포인트를 제거하는 대신 null로 설정할 수 있습니까? 거기에 데이터가 없더라도 인덱스에 무언가를 맵핑 할 것인가?
  3. 추정치 2. 나는 json 파일에서 각 배열의 데이터를 일관되게 제거하지 않으므로 블렌더 또는 유사한 것으로 돌아 가지 않고 인덱스를 다시 계산할 수있는 방법이 있습니까? 이 작업을 수행해야합니까 - 색인 배열을 모두 제거해도됩니까?
내가 추가해야

,이 점 제거는 현재 사용하지 않는 브라우저에서 (현재 파이썬) 서버 측을 수행되고 있지만,이를 해결하기위한 더 좋은 방법이 있다면 잠재적으로는 브라우저에서 수행 할 수있다. 또한 모델은 약 250k vertitude에서 상당히 크다.

답변

0

나는 (서버에서) 꼭지점을 제거하는 현재의 방법이 올바른 방법이라고 생각한다. 모든 정점 항목에 대한

  1. 만 관련 특성 (법선, UV를) 제거하지해야하지만, 그래, 당신의 색인은 잠재적으로 대폭 업데이트하고, 필요합니다. 여러 개의 삼각형 중 공유 꼭지점을 고려하십시오. 그걸 어떻게 설명 할 건데? 브라우저에서 해결하려는 것보다 훨씬 어려운 문제가있는 것 같습니다.
  2. 아니요. 꼭지점 목록에는 값이 채워 져야합니다. 메소드가 완전히 파괴적이지 않기를 원한다면, 원하지 않는 꼭지점을 무시하도록 색인을 조정할 수 있지만, 이는 작은 작업이 아닙니다.
  3. 세 가지 드로잉 모드 : THREE.TrianglesDrawMode, THREE.TriangleStripDrawModeTHREE.TriangleFanDrawMode이 있습니다. THREE.TrianglesDrawMode의 공유 꼭지점의 경우 색인 생성이 필요합니다. 색인 생성을 제거하려면 모든 삼각형을 꼭지점의 이산 된 삼중 항으로 정의해야합니다 (잠재적으로 중복 데이터가 많음). THREE.TriangleStripDrawModeTHREE.TriangleFanDrawMode의 경우 일부 꼭지점은 공유되지만 버퍼에있는 순서는 중요합니다. 이를 수행하기 위해 지오메트리를 설정하는 것은 인덱스를 리팩토링하는 것만 큼 어렵습니다.

내가 물어볼 필요가 있습니다. 잡음이있는 정점을 제거하지 말고 왜 조정하려고합니까? 훨씬 더 간단한 수학을 사용하면 훨씬 간단하게 작업 할 수 있습니다. 다시 인덱싱하는 것에 대해 걱정할 필요가 없습니다.

+0

여기에 노이즈 감소와 관련이없는 것으로 간주되는 두 가지 사항 (모델이 복잡하고 다른 시스템에서 생성됨)이 있습니다. 블렌더를 통해 스크립트를 작성하는 것이 전체 원시 데이터를 수동으로 처리하는 것보다 훨씬 빠르고 쉽다고 모든 것이 고려되었습니다. 3 가지 데이터 만 사용해도 좋았지 만 Blender는 전반적으로 가장 좋았고 가장 빠른 옵션이었으며 이미 완성 된 파이썬 작업은 믹서기로 쉽게 이전 할 수있었습니다. – CoderChris