목록전체 글 (194)
센로그

◆ Quasi-Newton Method Quasi-Newton method는 Hessian을 정확히 구하는 것이 아닌, Hessian의 근사를 구하는 방법이다. 2차 미분을 사용하는 Newton method의 경우 종종 수렴이 매우 빠르게 되지만, Hessian의 역함수를 구해야 하므로 큰 계산비용이 요구된다. 따라서, 많은 사람들이 Quasi-Newton Method를 선호한다. 초기 추측을 정하고, 그 지점에서의 gradient(1차 미분)을 구한다. gradient의 변화량을 통해 Hessian을 근사한다. 근사된 Hessian을 이용해 해를 업데이트한다. 종료 조건에 도달할 때까지 반복한다. ◆ Quasi-Newton VS Newton method - 계산 비용 ..

◆ Newton Method for IK Newton method는 IK 문제와 같은 비선형 방정식을 풀기위해 (자코비안과는 다르게) 반복적으로 접근하는 방법이다. root finding optimization 단변수 (uni-variate) 다변수 (multi-variate) ㆍ문제 정의 : IK 문제는 joint angle 등의 변수를 모르는 비선형 연립 방정식의 형태이다. 우리는 end effector가 최대한 target position에 가까이 가도록 하는 연립방정식의 해를 구해야 한다! ㆍ뉴턴 방법 특징 : Newton method는 비선형적인 문제를 선형적으로 접근한다.(Problem linearization) 매 st..

화면상 오브젝트 조작에 관한 이야기 ◆ Object Picking 우리는 손가락 터치이나, 마우스 클릭을 통해 해당 물체를 선택하기를 원함. 클릭된 위치의 좌표 (x_s, y_s)를 반환하고, 이로부터 물체를 선택해서 그 물체에 대한 조작을 할 수 있도록 ㅇㅇ 이를 위한 기본적인 아이디어는, Ray를 쏘자! 가 된다. 스크린의 점으로부터 z축에 ray를 쏘면, 충돌하는 물체들이 있을 수 있음 그중 가장 처음으로 충돌하는 물체를 선택하자~ 하는 아이디어 근데, 그럼 어디서 찾아줘야 하나? screen space에서 찾아주면 되나? ㄴㄴ. 결국 screen space는 렌더링 끝낸 결과물이라, 어떤 오브젝트와 충돌하는지 판단하고 처리를 해주기가 힘듦 따라서 screen space ray를 object spa..

◆ Euler Transform euler angle을 사용해 변환하는 과정 더보기 ※ 이거~ x,y,z축(주축)을 기준으로 회전 가능 => 임의의 축으로 회전하려면, 주축으로 맞춰서 회전하고 다시 원래대로 돌려줬었다 근데 이러면 불편하기도 하고, 문제도 발생함 회전할 때의 order(순서)가 굉장히 중요하다! 순서가 바뀌면 결과가 완전히 달라짐 ◆ Keyframe Animation in 2D keyframe을 사용하여 제작하는 Animation 전통적으로 애니메이션 제작에서는, 시니어 아티스트가 키 프레임을 그리고 주니어 아티스트가 이 사이를 채우는 방식. 근데 이런 방식은 너무 비용이 많이 든다! => 컴퓨터가 자동으로 채워주는 알고리즘이 등장 keyframe들만 정의해주고, keyframe 사이의 ..

◆ Output-Merger Stage 최종적으로 스크린에 한번에 보여질 color들을 결정하는 스테이지. Pixel Shader의 output으로써, pixel들이 넘어왔을 것임. 이제 실제 스크린에 보여줄 칼라를 결정해야 한다. 이전에는 오브젝트 각각의 칼라를 결정해 준 것이고, 이번에는 오브젝트들의 칼라를 모아서 최종적으로 스크린에 한번에 보여질 칼라를 결정하는 것. 이 픽셀을 찍을건지 말건지, 그냥 보일건지 변형시킬건지.. 이런거 결정. Output-merger stage에서는 다음 두가지 처리를 수행함 Depth-Stencil Test Color Blending 또, 다음 요소들을 고려해서 최종 칼라 값을 결정함. 1) a combination of pipeline state, 2) the pi..

◆ Phong Lighting Model Raterizer에서, face 안쪽의 pixel 데이터를 생성해줬었다. 이제, 이 pixel들에 하나하나 접근할 수 있다! Pixel Shader에서는 p1~pn까지 가득 채워져있는 pixel data들에 각각 접근해서 pixel의 색깔을 결정함 이 pixel 정보들을 일렬로 세우고, 병렬 처리로 한번에 계산해서 pixel마다의 색깔을 결정하는 것. (병렬이므로, 인접한 애들에 대한 접근 까지는 못함) 이때 pixel의 색깔을 결정하는 중요한 두 가지 요소가 있다. Texturing (벽지 바르기) Lighting (빛 처리) 이번에는 그중 Lighting에 대해 다뤄볼 것이다. Lighting이란, object와 light 간의 상호작용을 다루는 기술을 의미한..