티스토리 뷰
reduction 이라고도 불리고, decimation 이라고도 불린다.
우선 이게 필요한 이유는, PMD 기본 vertex가 3만개 가량인데
bullet 으로는 soft body를 돌릴 수가 없다.
예전에는 crash가 났다고 하는데 지금 버전에서는 너무느리다.
결국 줄인 것으로 시뮬레이션 해서 그걸 원래 mesh 에 반영해야한다.
반영을 위해 skinning 과 비슷하게 가상이든 진짜든 bone 을 도입하여 weight를 준다고 한다.
그때문에 decimation 방법을 조사해봤는데
이걸로 LOD 도 구현하고 그림자 전용 mesh도 만들고 한다고 한다.
이걸 실시간을 하면 귀찮으니까 전처리 단계에서 최적화도 하고 에러도 수정하는 단계를 밟는다.
소스 공개 된 soft 중에 Skeleton mesh 즉 bone index 와 weight 를 알아먹는건 없는 것 같다.
simplygon 과 simpleLOD 가 skeleton 을 알아먹는다고 한다.
MeshLAB 은 소스 공개된 utility 인데, GPL 이고 잘 죽는다.
OpenMesh는 BSD 였는데, skeleton 을 지원하지 않는다.
Vertex 12855 개 비교적 간단해 보이는데, 불릿은 15 ms 를 잡아드셨다...
Metasequoia4 (유료 싸다)
Vertex 4000 정도, 아래는 Vertex 2000 정도이다.
놀랍게도 위에 결과가 괜찮은거다...
meshLab - Clustering Decimation 후 Quadric Edge Collapse Decimation 파라메터 해설 https://www.shapeways.com/tutorials/polygon_reduction_with_meshlab
1차로 Vertices가 1만으로 떨어지고 거기서 적용하는 것.
그냥 하니까 구멍 뚤린 이상한 괴물이 나온다
Vertex 2000
그냥 clustering 만으로 Vertex 2000
Simplygon
거리에 따라 볼수도 있고 상용답게 편하다 (기다리는 시간을 빼면)
Vertex 2500
Vertex 500
느리지만 어짜피 미리 빌드해두는 형태이다.
SimplygonLib 라고 있긴한데, Node 있고 License manager 있는 걸로 봐서 그냥 API인듯
CGAL (GPL) Lindstrom-Turk Cost and Placement Strategy https://doc.cgal.org/latest/Surface_mesh_simplification/index.html
시간 써가면서 환경 설정하고 해봤는데 Crash
CGAL_precondition( !lTopFaceExists || (lTopFaceExists && ( degree(target(pt, g), g) > 2 ) ) ) ; CGAL_precondition( !lBottomFaceExists || (lBottomFaceExists && ( degree(target(qb, g), g) > 2 ) ) ) ;
Instanct mesh
Maya 에도 있고 그런듯
https://www.doria.fi/bitstream/handle/10024/113553/SimplificationSurvey.pdf?sequence=2
http://graphics.stanford.edu/courses/cs468-10-fall/LectureSlides/08_Simplification.pdf
'Game > MMD' 카테고리의 다른 글
Boost spirit (0) | 2017.08.29 |
---|---|
Bullet (4) Softbody (2) (0) | 2017.08.24 |
Bullet (2) Softbody (0) | 2017.08.18 |
Bullet (1) (0) | 2017.08.14 |
Shadow mapping (7) (0) | 2017.07.28 |
- Total
- Today
- Yesterday