분류 전체보기 32

2024.8.4(일) - 18장 GPU 테썰레이션

프리미티브: GPU 파이프라인이 처리하는 기하학적인 개체GPU 테썰레이션 지원변위 매핑→ 기초 표면을 고해상도 메시로 바꾼 후 그 메시의 정점 위치를 옮겨서 실제로 오돌토돌한 메시를 만든다.변위 매핑을 위한 GPU 테썰레이션변위 매핑 구현: 컨트롤 쉐이더 → 테썰레이터 → 생성 쉐이더GL 3.0에서의 변위 매핑 구현은 다음과 같다.컨트롤 쉐이더는 이 사각형 패치를 얼마나 잘게 나눌지 결정해서 테썰레이터에게 알려줘야한다.이를 테썰레이션 레벨이라고 한다. 테썰레이터는 컨트롤 쉐이더가 지정해주는 대로 사각형 패치의 정의역을 잘게 나눠 2차원 메시를 구성한다.컨트롤 쉐이더가 건네준 사각형 패치를 겹선형 패치로 간주하고 테썰레이터가 건네준 (u, v)를 사용해 사각형 패치의 한 점을 생성한다.GL 프로그램은 하이..

2024.8.3(토) - 17장 매개변수 곡선과 곡면

3차원 물체 표현폴리곤 메시 사용 - 부드러운 곡면을 근사적으로 표현매개변수의 함수 사용 - 부드러운 곡면을 정확하게 표현매개변수 곡면CAD/CAM 분야에서 오래전부터 사용됨.베지어 곡면: 매개변수 곡면을 표현하는 기법 중 가장 간단한 것.베지어 곡면의 기본은 베지어 곡선이다. 이 뒷 내용으로는 베지어 곡선, 허밋 곡선에 대해 기술한다.베지어 곡선위 그림은 두 개의 끝점 p0과 p1을 잇는 선분을 보여준다.이런 선분은 p0와 p1의 선형보간으로 표현된다.t는 [0,1] 범위에 있으며 (1-t)와 t는 각각 p0와 p1에 대한 가중치이고, p(t)는 p0와 p1의 가중치 합이다.세 개 이상의 점에 대해 선형보간을 재귀적으로 반복하면 베지어 곡선을 정의할 수 있는데 이를 드 카스텔조 알고리즘이라 부른다.세 ..

2024.7.31(수) - 16장 전역 조명과 텍스처링

조명 모델의 구분지역 조명전역 조명(a)의 S1에 의해 S2는 광원으로부터 완벽히 가려져 있지만, S2는 및을 받는 것으로 라이팅 되었다(b) S2는 전혀 빛을 받지 못한다.(c) S2는 광원으로부터 완벽히 가려졌지만 S1, S3로부터 간접 조명을 받는다.→ 퐁 모델의 앰비언트 항은 이러한 간접 조명을 담당한다.전역 조명 모델전역 조명 기법광선 추적법래디오 시티(1) 광선 추적법뷰 프러스텀은 카메라에 수렴하는 투영선의 집합이다.각 투영선 반대 방향으로 광선 발사 뒤 이를 추적하여 해당 투영선을 따라 들어오게 될 색상을 계산→ 픽셀 색상이 됨.1차 광선: 이와 같이 투영선 역방향으로 발사되는 광선1차 광선이 어떤 물체와 부딪힘 → 그 교차점이 그림자 안에 있는가 검사(그림자 광선이라는 이름의 2차 광선을 ..

2024.7.26(금) - 15장 쉐도우 매핑

두 단계 렌더링쉐도우 매핑을 위한 두 단계 알고리즘을 보여주는 그림이다.(a) 첫 번째 패스는 쉐도우 맵을 생성한다.(b) 두 번째 패스는 3차원 장면의 점이 광원에서 보이는지 검사하기 위해 쉐도우맵을 사용한다.쉐도우 매핑 알고리즘은 두 번의 렌더링 패스를 통해 수행된다. 첫 번째 패스에서는 쉐도우맵이라는 특수한 텍스처를 생성한다. 위 그림 (a)를 보면 광원에서 나온 빛이 미치는 표면은 굵은 선으로 표시됐다. 이들 표면을 균일하게 샘플하여, 각 샘플점 p마다 광원까지의 거리를 쉐도우맵에 저장한다.이 거리를 z로 표기하는데, 이는 광원에서 본 3차원 장면의 깊이다. 따라서, 쉐도우맵은 광원 기준의 깊이맵이라고도 한다.쉐도우 매핑 알고리즘실제 렌더링 과정에서는 쉐도우맵을 사용하여 그림자를 생성한다.(b)를..

2024.7.21(일) - 14장 노멀 매핑

오돌토돌한 표면을 렌더링하기 위해 고해상도 메시의 불규칙한 노멀을 사용한다.(a)에 (b)의 텍스처를 입혀 (c)의 결과를 얻은 것을 확대한 것이 (d)이다.점 b의 경우 n과 l사이 각도가 커서 빛을 적게 받고 어두워 보인다.빠른 연산을 위해 다음 그림에서는 삼각형 두 개로 구성된 메시를 사용했다. 하지만 저해상도 메시로는 오돌토돌한 표면이 잘 표현되지 않는다. a에서 b를 거쳐 c로 갈 때 n과 l 사이 각도는 서서히 작아져서 점차 밝아보인다.위 문제를 해결하기 위한 방법은 고해상도 메시의 노멀을 미리 계산 후, 노멀맵이라고 하는 특수한 텍스처에 저장한 후, 런타임에는 그림 (a)의 저해상도 메시를 처리하되 노멀맵으로부터 노멀을 읽어 라이팅에 사용한다. 이러한 특수한 텍스처링 기법을 노멀 매핑 혹은 ..

2024.7.21(일) - 13장 캐릭터 애니메이션

캐릭터 골격과 공간 이전실시간 캐릭터 애니메이션을 위해서는 대체로 캐릭터의 골격을 이용한다.캐릭터의 골격은 다수의 뼈로 구성된 관절체이다.골격캐릭터의 기본 자세를 드레스 포즈라고 한다.캐릭터의 폴리곤 메시와 골격.(b)는 3ds Max에서 제공하는 기본 골격인 바이페드이다. 편집이 가능하다.(c)의 골격은 바이페드의 척추 뼈 네 개를 하나로 합치는 등의 편집을 통해 만들어졌다.뼈와 공간 이전골격 구성하는 뼈들은 계층적으로 부모-자식 관계를 형성한다.골반을 루트 노드로 정한다.계층 구조를 가지는 20개의 뼈로 이루어진 모습이다.뼈는 관절로 연결되어 있으므로 한 뼈가 움직이면 그 뼈에 속한 정점도 움직여야 한다.세 개의 뼈와 세 개의 관절.하단 2차원 그림의 배경으로 주어진 격자를 사용하면 뼈 공간 좌표를 ..

2024.7.20(토) - 12장 스크린 물체 조작

물체 선택PC 스크린에서는 위 그림과 같이 마우스를 클릭하여 물체를 선택할 수 있다.이를 피킹이라고 한다.스크린 공간 광선스크린에서 선택된 점의 위치가 주어지면 광선을 만들 수 있다.카메라 공간 광선카메라 공간 광선도 그 자신의 시작점, 방향 벡터로 정의된다.위 그림은 카메라 공간에서 스크린 공간까지의 변환을 보여준다. 뷰포트의 앞면은 뷰 프러스텀의 전방 평면에 해당되므로, 뷰포트 앞면에 놓인 시작점은 카메라 공간의 전방 평면으로 변환된다.위 식의 결과는 뷰포트 행렬에 의해 스크린 공간으로 변환된다.스크린 공간 광선의 시작점은 카메라 공간의 (xc, yc, -n)으로 변환되는데, xc와 yc는 투영 변환과 뷰포트 변환을 사용하여 계산할 수 있다. 한편 카메라 공간의 원점과 광선의 시작점을 잇는 벡터를 카..

2024.7.20(토) - 11장 오일러 변환 및 쿼터니언

오일러 변환세 개의 주축 중심 회전을 결합한 것.월드 공간 오일러 변환 (a)는 주전자를 월드 공간의 x, y, x축 중심으로 순차적으로 회전시켰다.세 축 중심의 회전각 세 개를 오일러 각이라고 한다. 오브젝트 공간 오일러 변환 위는 오브젝트 공간 오일러 변환이다.u, v, n으로 표기한 오브젝트 공간 기저벡터를 중심으로 하는 오일러 변환u 중심으로 θ1, 그 다음 v 중심으로 θ2만큼 회전하는 오브젝트 공간 오일러 변환은, 월드 공간 주축을 대신 사용하되 그 순서를 거꾸로 하는, 즉 먼저 y축 중심으로 θ2, 그 다음 x축 중심으로 θ1만큼 회전하는 것과 동일함.세 가지 회전 조합으로 정의u, v, n 순서로 오브젝트 공간 오일러 변환을 수행하는 것은, 월드 공간 주축을 대신 사용하되 그 순서를 거꾸로..

2024.7.15 스터디 - DreamHack

쿠키HTTP 프로토콜Connectionless: 하나의 요청에 하나의 응답을 한 후 연결 종료Stateless: 통신 끝난 후 상태 정보 저장 않음두 특성을 갖는 HTTP에서 상태를 유지하기 위해 쿠키가 탄생함.쿠키(Cookie): Key와 Value로 이뤄진 일종의 단위.서버가 클라이언트에게 쿠키를 발급 → 클라이언트는 서버에 요청 보낼 때마다 쿠키 함께 전송.클라이언트 정보 기록 & 상태 정보 표현 용도 악의적인 클라이언트는 쿠키 정보 변조해 서버에 요청을 보낼 수 있음세션을 사용해 클라이언트가 인증 정보 변조할 수 없게 함.세션은 인증 정보 서버에 저장하고 해당 데이터에 접근할 수 있는 키를 만들어 클라이언트에 전달하는 방식으로 작동.→ 해당 키는 일반적으로 Session ID라고 함.이미지 출처:..

2024.7.15 스터디 - Bandit

브루트 포스(brute force) → 조합 가능한 모든 문자열을 하나씩 대입해 보는 방식으로 암호 해독함24렙 비밀번호 + 0000~9999 모두 대입하는 쉘 스크립트 작성 git clone ~ (주소에 port 입력 포함시켜서)git 리포지토리 파일 다운받기→ 27렙 비번 치기→ repo로 이동→README 확인 git clone ㄱㄱ→ 비번 입력→ 엥 비밀번호 안 알려주네→ git log→ git checkout 명령어로 커밋 이전 확인 앞 문제들이랑 비슷하게 git clone까지 함git branch -a : 브랜치 확인브랜치 까보면 됨 또 git 레포지토리야..똑같이 디렉토리 만들고 git clone해서 진행함just an epmty file... muahaha이거 뭐냐? 열받게 하네..→ 어케..