7월, 2022의 게시물 표시

220726) 사원수(Quaternion), 오일러회전(Yaw,Pitch,Roll), 짐벌락(gimbal lock)

이미지
사원수(Quaternion) a+bi+cj+dk 형태의 수(a,b,c,d는 실수)이다. 다음과 같은 성질을 만족시킨다. ※ 사원수의 곱셈은 교환법칙을 만족시키지 않는다. 어떤 물체의 자세를 기준좌표계에 대하여 표현할 때, 단위벡터 (e1,e2,e3)에 대하여 θ만큼 회전한 자세는 사원수로 다음과 같이 표현한다. 사원수는 4개만의 적은 개수의 숫자로 회전을 표현하여 효율적인 계산을 할 수 있다. 오일러각도와 YawPitchRoll 축을 통한 회전에는 두 가지 방법이 존재한다. 1. 오일러 각도를 통한 회전(post-multiplication, 행렬을 뒤에 곱하는 방법) 2. YawPitchRoll을 통한 회전(pre-multiplication, 행렬을 앞에 곱하는 방법) ----- 오일러 각도 강체의 자세를 좌표축의 회전으로 표현하는 여러 방법 가운데 하나로, 3x3 회전행렬을 직관적으로 이해하고 행렬의 원소를 단 3개의 Parameter로 간략하게 표현하기 위해 사용하는 방법이다. (Z축을 기준으로 θ만큼 회전했을 때의 행렬) ----- Yaw, Pitch, Roll 강체의 자세를 '고정된' 회전축을 기준으로 회전을 표현하는 방법이다. Roll: x축을 기준으로 회전한 각도 Pitch: y축을 기준으로 회전한 각도 Yaw: z축을 기준으로 회전한 각도 이를 행렬으로 표현하면 다음과 같다. 짐벌락 현상(Gimbal lock) 같은방향으로 오브젝트의 두 회전 축이 겹치는 현상. 짐벌락이 발생하는 경위는 다음과 같다. 1. x축, y축, z축 각각의 회전행렬을 만든다. yaw(y축 회전각) pitch(x축), roll(z축) 2. 회전 행렬을 객체의 변환행렬과 각각 순서대(x, y, z)로 곱한다.(오일러각) 3. x축을 90도 틀고난 후 y축으로 90도 튼것과    y축을 90도 틀고난 후 z축으로 90도 튼것과의 회전 값이 같다. 4. 세 개의 축 각을 이용하여 항상 순서대로 회전을 하면 위와같이 한 개의 축이...

220725) 키프레임 애니메이션, 스키닝 애니메이션

이미지
키프레임 애니메이션 애니메이션에서 객체의 정보들을 보유한 두 개의 키프레임 사이의 객체들의 움직임을 보간하는 방법이다. (※프레임: 애니메이션에서 출력되는 한 장면, 초당 프레임개수가 클 수록 움직임이 부드럽다) (예시: 객체의 시간에 따른 위치를 선으로 표현, 선은 점 <키프레임> 에 대한 정보에 기반하여 그려진다) ----- 스키닝 애니메이션 메시를 구성하는 정점(Vertex) 을 ' 뼈대(Bone) '에 링크하여 뼈대 의 좌표에 따라 정점 을 움직이게 하는 기술. 뼈대 의 중량(weight) 에 따라 링크된 정점 에 영향을 미치는 정도가 달라지며, 한 정점 에 링크된 모든 뼈대 의 중량 의 합은 1.0이다. 정점 의 위치를 결정하는 최종변환 행렬은 그 정점 에 링크된 모든 뼈대 의 중량 과 변환행렬을 곱한 것들의 합이 된다. Stages for preparing a character (modeling, rigging, and skinning) 사진출처:  https://docs.unity3d.com/Manual/UsingHumanoidChars.html

220712) 포워드 렌더링, 디퍼드 렌더링, PBR(물리기반 렌더링), 퐁쉐이딩, Ambient Light, Diffuse Light, Specular Light

이미지
포워드 렌더링 전통적인 렌더링 방식, 3D공간에 존재하는 폴리곤을 픽셀화하여 그 픽셀마다 쉐이딩과 라이팅을 더한다. 장점 - 저사양에서도 작동 - PC에서는 안티앨리어스 처리를 하드웨어에서 지원받으므로 거의 완벽한 처리가 됨(반투명 처리도 문제없다) - 가장 오래된 렌더링 방식이기 때문에 생겨난 문제에 대한 해결책도 어느정도 존재함 - 해상도가 올라가도 요구하는 메모리가 디퍼드 렌더링에 비해 적음 단점 - 라이팅 연산이 느림 - 수많은 오브젝트가 있는 배경이나 폴리곤이 많은 모델을 상대로 하기 어렵다 - 그림자 처리가 어려움 - 화면 깊이값을 이용한 포스트 이펙트는 따로 처리해주어야 함 --- 디퍼드 렌더링 한 화면에 수많은 라이팅 효과를 넣기위해 사용하는 렌더링 기법, 라이팅 기법을 먼저 하지 않고 미루었다 실행하기 때문에 '지연 쉐이딩'  이라고도 부른다. [폴리곤 픽셀화->정보를 나누어 비디오 메모리에 저장->각종 쉐이더와 라이팅효과를 거쳐 화면에 표현] 하는 순서를 가진다. 장점 - 수많은 동적라이팅을 실시간으로 보여줄 수 있음 - 그림자를 손쉽게 그릴 수 있음 - 쉐이더를 간단하게 지원해줄 수 있음 - 픽셀정보를 메모리에 저장함으로서 생기는 이점 활용가능(ex:화면의 깊이값을 이용한 특수효과 등) - 수많은 오브젝트와 복잡한 모델링을 표현할 때 유리 단점 - 뒤에 그려지는 오브젝트 정보가 비디오 메모리에서 소실됨 (알파가 빠지는 오브젝트 표현x) - 요구하는 하드웨어 사양이 높음 - 해상도가 올라갈수록 요구 비디오 메모리가 기하급수적으로 늘어남 - 안티앨리어스를 구현하기 까다로움 --- PBR(물리 기반 렌더링) 물리 기반 쉐이딩(PBS)이라고도 불리는 물리 기반 렌더링(PBR)은 조명과 재질 속성의 상호 작용 방식을 정확하게 구현하는 쉐이딩 및 렌더링 기법. PBS는 쉐이딩에 특화된 것이고, PBR은 렌더링과 조명을 위한 기법으로 3D 모델링 워크플로우에 따라 적절히 사용할 수 있다. 두 가지 모두 물리적으로 정확한 지점에서...