SlideShare ist ein Scribd-Unternehmen logo
1 von 17
4. 13 보간을 이용한 3D 키프레임 애니메이션4.14 빠르고 간단한 스키닝 기법4.15 틈 메우기 – 스티칭과스키닝을 이용한 고급 애니메이션 [DevRookie]꽝매니아
개요 (4.13 보간을 이용한 3D 키프레임 애니메이션) 선형보간 정점들과 법선들의 보간 Hermit 스플라인 보간 정점들의스플라인 보간 Hermit 스플라인의 장점
개요 (4.14 빠르고 간단한 스키닝 기법) 다각형 개수가 적은 모델을 사용하는 이유 기법 요약
개요 (4.15 틈 메우기 – 스티칭과스키닝을 이용한 고급 애니메이션) 스티칭 스키닝
선형 보간 (Linear Interpolation) 보간 - 경제적으로 키 프레임 사이의 애니메이션을 만들기 위함. 혼합(Blending), 모핑(Morphing), 트위닝(Tweening) 두개의 인접한 키 프레임 사이에서 해당 선위에 위치 p(t)를 구하는 과정
정점들과 법선들의 보간 보간 기법에 의해 키 프레임들로 부터 새로운 프레임의 정점들을 계산 법선을보간하려 할 때에 차이가 그리 크지 않다면 정규화 시키지 않는다 각 키 프레임에 정점 법선 목록과 면 법선 목록을 개별 저장할 때 좀더 향상된다고 함. (왜? 면 법선은 후면 컬링을 위해서 항상 보간해줘야 좋지만 정점 법선은 필요에 따라 (광원 등) 사용자가 눈치 채기 어려우므로 보간을 안하게 할 수도 있다.) 요즘같이 프레임 잘 나오는 컴퓨터에서 정점 법선을보간하지 않으면 순간적이지 않으면 어색할 수 있을 것 같다.
Hermit 스플라인 보간 Spline Interpolation 은 원하는 위치에 두 키 프레임의 양쪽에 키프레임 하나를 더 고려해서 계산. Linear Interpolation 에 비해 복잡하지만 부드러운 보간이 가능.
Hermit 스플라인 보간 Hermit 는 이러한 Spline 보간 을 위한 방법 중 하나 3차원 곡선으로 보간할 수 있다. Alpha 값을 이용해서 곡선의 경향을 제어할 수 있는 장점
빠르고 간단한 스키닝 기법 적은 다각형을 가진 모델을 조작하기 위한 스키닝 기법 스킨 정점 안에 본 정점들을 관리하고 이것으로 스키닝 면을 재조작 객체의 정점 목록을 수정, 정렬하고 그에 맞는 면(face) 목록을 다시 매핑 왜 다각형 적은 모델을 사용해야 할까? 스키닝 굴곡의 매끄러움이 부족
빠르고 간단한 스키닝 기법 뼈대 정점 개수를 줄이는 어떻게 할 것인가? 책 내용처럼 자동화 할 경우 최소 거리 설정에 유념 (책에는 1e6!) 본을 만들때 스킨을 비율 축소하고 조각을 나눠 본을 만드는 경우를 사용하고 있지만 아티스트가 편한 쪽으로 해주는게좋을듯 하다. 책에서는 정점당 하나의 뼈대만 있다는 가정하에 제작.
틈 메우기 – 스티칭과스키닝을 이용한 고급 애니메이션 좀더 현실적인 유기체 애니메이션 제작을 위한 생각 뼈대의 움직임에 따라 표현되는 강체(Rigid body)의 어색함 부드러운 옷감, 피부의 케릭터 면을 표현하는 수단을 강구 스티칭(Stitching)과 스키닝(Skinning) 연속적인 메쉬의 연결에서 뼈대 구조의 움직임에 따른 관절부의 틈을 막는 방법
스티칭(Stitching) 두개의 뼈대의 움직임을 통해 생기는 메쉬의 틈을 덮는 방식 객체의 각 정점마다 영향이 가는 Bone 의 정보를 가지고 있는다. 뼈대와 스킨 정점들 간의 공간적 관계를 설정. 뼈대의 선회점이 해당 스킨 정점들의 국소 좌표계로 변환해서 계산한다.
스티칭(Stitching) 뼈대 정보 구조체에서 애니메이션 행렬, 역행렬, 최종 스티칭 행렬을 계산해서 가지고 있으면 해당 뼈대에 대한 스킨 정점들을 계산할 때 수행속도가 개선 될 수 있다. (왜? 스킨 정점들이 해당 뼈대의 국소 좌표계로 변환된 행렬의 역행렬로 변환 행렬이 되기 때문이다.) 스킨 정점들이 각 뼈대 별 국소 좌표 정보로 구조체에 가지고 있으면 역행렬 변환 계산이 줄어든다.
스키닝(Skinning) 관절을 많이 구부리면? 하나의 정점에 하나의 뼈대에 영향을 받게 하면서 발생. 스킨의 정점이 자신에게 영향을 주는 뼈들의 목록을 갖고, 해당 뼈대가 정점에 미치는 가중치 값을 갖는다. 여러 개의 뼈에 대해서 계산되는 가중치의 합을 1.0으로 계산하였다.
스키닝(Skinning) 현재 챕터에서는 각 행렬에 가중치를 곱한 값을 사용한다. 행렬들의 선형 보간에 의해 스키닝 한 상태이므로 보간 방법을 바꿔서 좀더 개선할 여지가 있다. 행렬 대신 사원수를 써준다. (GPG 5-12 참고) SLERP (구면 선형 보간)을 적용해 준다.
결론 유기체 애니메이션 을 위한 기하학 Interpolation Stitching Skinning 3DSMAX 에서 Biped Animation을 해보면 이해하기 쉽다. 뼈대와 스킨 간 가중치 연결 : 자동 vs수동 쉐이더를 통한 빠른 계산 (GPG 4권 참고)
이 페이지 까지 왔다면… 설명은 거의 다 한거 같은데… 소스를 잠깐 볼까요? 아니면 GPG 4권의 ‘5-12’ 내용을 맛보기로 잠깐… 관절의 스키닝 과정 중에 물리적으로 비틀어 지는 경향 발생(사탕껍질 변형) SLERP (구형 선형 보간(Sphere Linear Interpolation)) SLERP(p, q, t) := p pow( inv(p) q, t )

Weitere ähnliche Inhalte

Mehr von Young-jun Jeong

Gpg2권]4 9 하늘상자
Gpg2권]4 9 하늘상자Gpg2권]4 9 하늘상자
Gpg2권]4 9 하늘상자Young-jun Jeong
 
글꼴 렌더링 이야기
글꼴 렌더링 이야기글꼴 렌더링 이야기
글꼴 렌더링 이야기Young-jun Jeong
 
Udk]static mesh & material
Udk]static mesh & materialUdk]static mesh & material
Udk]static mesh & materialYoung-jun Jeong
 
Gpg2 2 1_10_드롭인디버그메모리관리자
Gpg2 2 1_10_드롭인디버그메모리관리자Gpg2 2 1_10_드롭인디버그메모리관리자
Gpg2 2 1_10_드롭인디버그메모리관리자Young-jun Jeong
 
Gpg2 dll로부터 c++_클래스_내보내기
Gpg2 dll로부터 c++_클래스_내보내기Gpg2 dll로부터 c++_클래스_내보내기
Gpg2 dll로부터 c++_클래스_내보내기Young-jun Jeong
 
[추천] 색인기법 김성현
[추천] 색인기법 김성현[추천] 색인기법 김성현
[추천] 색인기법 김성현Young-jun Jeong
 
정렬 알고리즘의 성능 분석
정렬 알고리즘의 성능 분석정렬 알고리즘의 성능 분석
정렬 알고리즘의 성능 분석Young-jun Jeong
 
점근적 복잡도 분석
점근적 복잡도 분석점근적 복잡도 분석
점근적 복잡도 분석Young-jun Jeong
 
알고리즘 기초사항
알고리즘 기초사항알고리즘 기초사항
알고리즘 기초사항Young-jun Jeong
 
기초 알고리즘 스터디 소개
기초 알고리즘 스터디 소개기초 알고리즘 스터디 소개
기초 알고리즘 스터디 소개Young-jun Jeong
 
Gpg1권] 4 5 3 d 충돌 검출
Gpg1권] 4 5 3 d 충돌 검출Gpg1권] 4 5 3 d 충돌 검출
Gpg1권] 4 5 3 d 충돌 검출Young-jun Jeong
 

Mehr von Young-jun Jeong (20)

Gpg2권]4 9 하늘상자
Gpg2권]4 9 하늘상자Gpg2권]4 9 하늘상자
Gpg2권]4 9 하늘상자
 
글꼴 렌더링 이야기
글꼴 렌더링 이야기글꼴 렌더링 이야기
글꼴 렌더링 이야기
 
점, 선, 면
점, 선, 면점, 선, 면
점, 선, 면
 
Kinect sdk사용하기
Kinect sdk사용하기Kinect sdk사용하기
Kinect sdk사용하기
 
Udk]static mesh & material
Udk]static mesh & materialUdk]static mesh & material
Udk]static mesh & material
 
Udk] sound (sound cue)
Udk] sound (sound cue)Udk] sound (sound cue)
Udk] sound (sound cue)
 
Udk] sound (sound cue)
Udk] sound (sound cue)Udk] sound (sound cue)
Udk] sound (sound cue)
 
삼각 함수
삼각 함수삼각 함수
삼각 함수
 
Gpg2 2 1_10_드롭인디버그메모리관리자
Gpg2 2 1_10_드롭인디버그메모리관리자Gpg2 2 1_10_드롭인디버그메모리관리자
Gpg2 2 1_10_드롭인디버그메모리관리자
 
Gpg2 dll로부터 c++_클래스_내보내기
Gpg2 dll로부터 c++_클래스_내보내기Gpg2 dll로부터 c++_클래스_내보내기
Gpg2 dll로부터 c++_클래스_내보내기
 
[추천] 색인기법 김성현
[추천] 색인기법 김성현[추천] 색인기법 김성현
[추천] 색인기법 김성현
 
문자열 검색 (1)
문자열 검색 (1)문자열 검색 (1)
문자열 검색 (1)
 
2010 독후감
2010 독후감2010 독후감
2010 독후감
 
Kinect pc
Kinect   pcKinect   pc
Kinect pc
 
Kinect pc
Kinect   pcKinect   pc
Kinect pc
 
정렬 알고리즘의 성능 분석
정렬 알고리즘의 성능 분석정렬 알고리즘의 성능 분석
정렬 알고리즘의 성능 분석
 
점근적 복잡도 분석
점근적 복잡도 분석점근적 복잡도 분석
점근적 복잡도 분석
 
알고리즘 기초사항
알고리즘 기초사항알고리즘 기초사항
알고리즘 기초사항
 
기초 알고리즘 스터디 소개
기초 알고리즘 스터디 소개기초 알고리즘 스터디 소개
기초 알고리즘 스터디 소개
 
Gpg1권] 4 5 3 d 충돌 검출
Gpg1권] 4 5 3 d 충돌 검출Gpg1권] 4 5 3 d 충돌 검출
Gpg1권] 4 5 3 d 충돌 검출
 

[Gpg1권]skinning

  • 1. 4. 13 보간을 이용한 3D 키프레임 애니메이션4.14 빠르고 간단한 스키닝 기법4.15 틈 메우기 – 스티칭과스키닝을 이용한 고급 애니메이션 [DevRookie]꽝매니아
  • 2. 개요 (4.13 보간을 이용한 3D 키프레임 애니메이션) 선형보간 정점들과 법선들의 보간 Hermit 스플라인 보간 정점들의스플라인 보간 Hermit 스플라인의 장점
  • 3. 개요 (4.14 빠르고 간단한 스키닝 기법) 다각형 개수가 적은 모델을 사용하는 이유 기법 요약
  • 4. 개요 (4.15 틈 메우기 – 스티칭과스키닝을 이용한 고급 애니메이션) 스티칭 스키닝
  • 5. 선형 보간 (Linear Interpolation) 보간 - 경제적으로 키 프레임 사이의 애니메이션을 만들기 위함. 혼합(Blending), 모핑(Morphing), 트위닝(Tweening) 두개의 인접한 키 프레임 사이에서 해당 선위에 위치 p(t)를 구하는 과정
  • 6. 정점들과 법선들의 보간 보간 기법에 의해 키 프레임들로 부터 새로운 프레임의 정점들을 계산 법선을보간하려 할 때에 차이가 그리 크지 않다면 정규화 시키지 않는다 각 키 프레임에 정점 법선 목록과 면 법선 목록을 개별 저장할 때 좀더 향상된다고 함. (왜? 면 법선은 후면 컬링을 위해서 항상 보간해줘야 좋지만 정점 법선은 필요에 따라 (광원 등) 사용자가 눈치 채기 어려우므로 보간을 안하게 할 수도 있다.) 요즘같이 프레임 잘 나오는 컴퓨터에서 정점 법선을보간하지 않으면 순간적이지 않으면 어색할 수 있을 것 같다.
  • 7. Hermit 스플라인 보간 Spline Interpolation 은 원하는 위치에 두 키 프레임의 양쪽에 키프레임 하나를 더 고려해서 계산. Linear Interpolation 에 비해 복잡하지만 부드러운 보간이 가능.
  • 8. Hermit 스플라인 보간 Hermit 는 이러한 Spline 보간 을 위한 방법 중 하나 3차원 곡선으로 보간할 수 있다. Alpha 값을 이용해서 곡선의 경향을 제어할 수 있는 장점
  • 9. 빠르고 간단한 스키닝 기법 적은 다각형을 가진 모델을 조작하기 위한 스키닝 기법 스킨 정점 안에 본 정점들을 관리하고 이것으로 스키닝 면을 재조작 객체의 정점 목록을 수정, 정렬하고 그에 맞는 면(face) 목록을 다시 매핑 왜 다각형 적은 모델을 사용해야 할까? 스키닝 굴곡의 매끄러움이 부족
  • 10. 빠르고 간단한 스키닝 기법 뼈대 정점 개수를 줄이는 어떻게 할 것인가? 책 내용처럼 자동화 할 경우 최소 거리 설정에 유념 (책에는 1e6!) 본을 만들때 스킨을 비율 축소하고 조각을 나눠 본을 만드는 경우를 사용하고 있지만 아티스트가 편한 쪽으로 해주는게좋을듯 하다. 책에서는 정점당 하나의 뼈대만 있다는 가정하에 제작.
  • 11. 틈 메우기 – 스티칭과스키닝을 이용한 고급 애니메이션 좀더 현실적인 유기체 애니메이션 제작을 위한 생각 뼈대의 움직임에 따라 표현되는 강체(Rigid body)의 어색함 부드러운 옷감, 피부의 케릭터 면을 표현하는 수단을 강구 스티칭(Stitching)과 스키닝(Skinning) 연속적인 메쉬의 연결에서 뼈대 구조의 움직임에 따른 관절부의 틈을 막는 방법
  • 12. 스티칭(Stitching) 두개의 뼈대의 움직임을 통해 생기는 메쉬의 틈을 덮는 방식 객체의 각 정점마다 영향이 가는 Bone 의 정보를 가지고 있는다. 뼈대와 스킨 정점들 간의 공간적 관계를 설정. 뼈대의 선회점이 해당 스킨 정점들의 국소 좌표계로 변환해서 계산한다.
  • 13. 스티칭(Stitching) 뼈대 정보 구조체에서 애니메이션 행렬, 역행렬, 최종 스티칭 행렬을 계산해서 가지고 있으면 해당 뼈대에 대한 스킨 정점들을 계산할 때 수행속도가 개선 될 수 있다. (왜? 스킨 정점들이 해당 뼈대의 국소 좌표계로 변환된 행렬의 역행렬로 변환 행렬이 되기 때문이다.) 스킨 정점들이 각 뼈대 별 국소 좌표 정보로 구조체에 가지고 있으면 역행렬 변환 계산이 줄어든다.
  • 14. 스키닝(Skinning) 관절을 많이 구부리면? 하나의 정점에 하나의 뼈대에 영향을 받게 하면서 발생. 스킨의 정점이 자신에게 영향을 주는 뼈들의 목록을 갖고, 해당 뼈대가 정점에 미치는 가중치 값을 갖는다. 여러 개의 뼈에 대해서 계산되는 가중치의 합을 1.0으로 계산하였다.
  • 15. 스키닝(Skinning) 현재 챕터에서는 각 행렬에 가중치를 곱한 값을 사용한다. 행렬들의 선형 보간에 의해 스키닝 한 상태이므로 보간 방법을 바꿔서 좀더 개선할 여지가 있다. 행렬 대신 사원수를 써준다. (GPG 5-12 참고) SLERP (구면 선형 보간)을 적용해 준다.
  • 16. 결론 유기체 애니메이션 을 위한 기하학 Interpolation Stitching Skinning 3DSMAX 에서 Biped Animation을 해보면 이해하기 쉽다. 뼈대와 스킨 간 가중치 연결 : 자동 vs수동 쉐이더를 통한 빠른 계산 (GPG 4권 참고)
  • 17. 이 페이지 까지 왔다면… 설명은 거의 다 한거 같은데… 소스를 잠깐 볼까요? 아니면 GPG 4권의 ‘5-12’ 내용을 맛보기로 잠깐… 관절의 스키닝 과정 중에 물리적으로 비틀어 지는 경향 발생(사탕껍질 변형) SLERP (구형 선형 보간(Sphere Linear Interpolation)) SLERP(p, q, t) := p pow( inv(p) q, t )