목록Categories (1099)
KoreanFoodie's Study
이 강의는 유투브에 무료로 공개되어 있는 한정현 교수님의 컴퓨터 그래픽스 강좌를 정리한 글입니다. 자세한 내용은 강의를 직접 들으시거나 책을 구입하셔서 확인해 보세요. 강의 자료는 깃헙 링크에 올라와 있습니다. 요약 : 1. 캐릭터 애니메이션을 구현할 때는 일반적으로 스켈레톤을 많이 사용한다. 각 뼈는 서로 부모 자식 관계를 맺고 있으며 뼈에 있는 각 vertex 는 해당 뼈의 Bone Space 에 정의된 좌표를 가질 수 있다. 2. Forward Kinematics 는 Skeleton 의 Hierarchy 에서 부모로부터 자식까지, Top-Down traversal 방식으로 움직임을 적용하는 방식이다. 각 뼈가 독립적으로 움직인다고 가정하고, 해당 Bone Space 에서 Character Space..
이 강의는 유투브에 무료로 공개되어 있는 한정현 교수님의 컴퓨터 그래픽스 강좌를 정리한 글입니다. 자세한 내용은 강의를 직접 들으시거나 책을 구입하셔서 확인해 보세요. 강의 자료는 깃헙 링크에 올라와 있습니다.요약 : 1. 오브젝트 피킹(Object Picking)을 하면, 스크린 스페이스에서 Ray 를 z 축 방향 안쪽으로 쏜 다음, 처음으로 부딪히는 오브젝트를 선택되었다고 인식한다. 이 Ray 를 Object Space 로 바꾸기 위해 3번의 변환(Screen -> Camera -> World -> Object)을 진행해야 한다(각 Ray 에 대해 Object 별로 Ray 가 생성) 2. 오브젝트 피킹에는 Ray Intersection(폴리곤 메시에서 Ray 가 삼각형 안에 있는지 체크) 과 Boun..
이 강의는 유투브에 무료로 공개되어 있는 한정현 교수님의 컴퓨터 그래픽스 강좌를 정리한 글입니다. 자세한 내용은 강의를 직접 들으시거나 책을 구입하셔서 확인해 보세요. 강의 자료는 깃헙 링크에 올라와 있습니다. 요약 : 1. 오일러 변환은 주 축(Principal Axes)을 기준으로 일정 각도의 회전을 연속적으로 적용할 때 사용할 수 있다. 그런데 오일러 변환의 결과값은 교환법칙이 성립하지 않는다. 2. 키프레임 보간을 할 때, 오일러 변환은 어색한 결과를 보여줄 수 있는데, 이를 해결하기 위해 쿼터니언을 사용한다. 쿼터니언은 사원수를 이용한다. 3. 쿼터니언을 이용하면 임의의 축에 대해 𝛉 만큼의 각도로 점/벡터를 회전시키는 회전 행렬을 쉽게 만들어 낼 수 있다(qpq*). 그리고 쿼터니언 사이의 보..
이 강의는 유투브에 무료로 공개되어 있는 한정현 교수님의 컴퓨터 그래픽스 강좌를 정리한 글입니다. 자세한 내용은 강의를 직접 들으시거나 책을 구입하셔서 확인해 보세요. 강의 자료는 깃헙 링크에 올라와 있습니다.요약 : 1. 출력 병합 단계에서는 Fragment Shader 를 통해 전달받은 픽셀을 보여줄지 말지, 혹은 어떻게 보여줄지를 결정한다. 이때 3 가지의 버퍼를 사용한다(Color Buffer, Depth Buffer, Stencil Buffer) 2. Z-buffering 을 이용해 z 값을 이용한 컬링을 스크린 스페이스에서 수행할 수 있다. 이때, 어떤 물체를 먼저 렌더링하는지와 관계없이 결과값은 동일하다. 3. 알파 블렌딩(Alpha Blending) 을 이용하면 투명한 오브젝트들이 겹쳐져 ..
이 강의는 유투브에 무료로 공개되어 있는 한정현 교수님의 컴퓨터 그래픽스 강좌를 정리한 글입니다. 자세한 내용은 강의를 직접 들으시거나 책을 구입하셔서 확인해 보세요. 강의 자료는 깃헙 링크에 올라와 있습니다. 요약 : 1. Fragment Shader 는 Texturing 과 Lighting 을 수행하는데, Lighting 의 대표적인 모델로는 퐁 라이팅 모델(Phong Lighting Model 이 있다). 2. 퐁 라이팅 모델에서, 빛은 4 가지의 요소를 더한 행렬로 표현된다 : Diffuse(난반사), Specular(정반사), Ambient(주변광), Emissive(자체 발광). 3. Specular 에 필요한 View 벡터의 경우, Vertex Shader 가 월드 공간에서 구한 View 벡..
이 강의는 유투브에 무료로 공개되어 있는 한정현 교수님의 컴퓨터 그래픽스 강좌를 정리한 글입니다. 자세한 내용은 강의를 직접 들으시거나 책을 구입하셔서 확인해 보세요. 강의 자료는 깃헙 링크에 올라와 있습니다. 요약 : 1. Fragment Shader 는 Texturing 과 Lighting 을 수행한다. 이때, 우리는 각 픽셀에 적절한 텍스쳐 값을 입히는 과정에서 Nearest point sampling 과 Bilinear sampling 을 선택하여 적용할 수 있다. 2. 텍스쳐링을 위해, 텍스쳐 공간을 normalize 시키게 되는데, 이때의 결과를 Texture Coordinates 라고 부른다. 1 값을 벗어나는 공간을 처리하는 방식으로는 Clamp-to-Edge, Repeat, Mirrore..
이 강의는 유투브에 무료로 공개되어 있는 한정현 교수님의 컴퓨터 그래픽스 강좌를 정리한 글입니다. 자세한 내용은 강의를 직접 들으시거나 책을 구입하셔서 확인해 보세요. 강의 자료는 깃헙 링크에 올라와 있습니다.요약 : 1. Rasterizer(래스터라이저) 는 5가지 처리를 수행한다 : Clipping, Perspective division, Back-face culling, Viewport transform, Scan conversion 이 그것이다. 2. 클리핑은 클립 공간에 걸친 폴리곤의 경우, 클립 공간을 벗어나는 폴리곤을 일부를 잘라내는 것을 의미한다. Perspective division 은 Clip 공간을 NDC 로 변환하며, Back-face culling 을 통해 카메라에서 보이지 않는 ..
이 강의는 유투브에 무료로 공개되어 있는 한정현 교수님의 컴퓨터 그래픽스 강좌를 정리한 글입니다. 자세한 내용은 강의를 직접 들으시거나 책을 구입하셔서 확인해 보세요. 강의 자료는 깃헙 링크에 올라와 있습니다. 요약 : 1. Vertex Shader 는 World transform, View transform, Projection transform 을 통해 오브젝트 공간을 월드, 씬, 클립 스페이스로 변환한다. 또한 OpenGL 에서 Shader 를 만들 때는 GLSL 이라는 언어를 사용한다. 2. Vertex Shader 에 입력으로 들어가는 것은 Attributes 와 Uniforms 가 있다. Attribute 는 각 Vertex 마다 입력되는 데이터이(e.g. position, normal, te..
이 강의는 유투브에 무료로 공개되어 있는 한정현 교수님의 컴퓨터 그래픽스 강좌를 정리한 글입니다. 자세한 내용은 강의를 직접 들으시거나 책을 구입하셔서 확인해 보세요. 강의 자료는 깃헙 링크에 올라와 있습니다.요약 : 1. 렌더링 파이프라인은 크게 다음과 같은 순서로 진행된다 : Vertex Shader -> Rasterizer -> Fragment Shader -> Output Merger 2. Vertex Shader 는 각 정점에 대한 정보를 채워 Rasterizer 로 전달한다. Vertex Shader 의 역할은 오브젝트 공간에서 월드 공간(World Transform)으로, 월드 공간에서 카메라 공간(View Transform)으로, 마지막으로 카메라 공간에서 클립 공간(Projection T..
이 강의는 유투브에 무료로 공개되어 있는 한정현 교수님의 컴퓨터 그래픽스 강좌를 정리한 글입니다. 자세한 내용은 강의를 직접 들으시거나 책을 구입하셔서 확인해 보세요. 강의 자료는 깃헙 링크에 올라와 있습니다. 요약 : 1. 오브젝트 공간에서 정의된 물체는 아핀 변환을 이용해 월드 공간 좌표계에서 표현할 수 있다. 이를 World Transform 이라고 부른다. 2. 오브젝트 공간의 축 u, v, n 을 월드 공간의 축 x, y, z 로 맞춰주려면, u, v, n 을 Transpose 시킨 행렬을 기존 오브젝트 축 행렬에 곱해 주면 된다. 3. 임의의 축에 대한 행렬도 2번과 마찬가지로 진행하면, 좌표계 시스템을 쉽게 변환할 수 있다! 월드 공간과 오브젝트 공간 오브젝트가 정의된 좌표계 시스템을 우리는..