희곤의 블로그

컴퓨터그래픽스 5. 그래픽스 API는 어떻게 사용하는가

그래픽스 API는 어떻게 사용하는가? 보통 그래픽스 API에서 사용자가 해야할 것은 다음과 같다. 데이터 만들기 : VRAM에 데이터 공간 (Buffer) 만들기. 데이터 보내기 / 업데이트하기 : 만든 공간에 데이터 보내거나 업데이트하기 Setup Parameters : 셰이더 프로그램 선택, 렌더링 옵션을 설정한다. 그리기 명령!...

컴퓨터그래픽스 4. Object를 3D Model로 표현하는 방법이 무엇일까

Object를 어떻게 3D Model로 표현하는가? Object를 컴퓨터가 이해 가능한 Model로 표현하는 방법은 생각보다 다양하다. 현재는 Vertex (정점)을 이어 선(Edge)과 도형(Primitive)를 만드는 방식을 채택한다. 왜 이 방법이 채택되었는가? GPU의 병렬성을 이용하기 가장 용이하고, 데이터 구조가 간단하기 때문이다. 또...

컴퓨터그래픽스 3. 프레임 버퍼에 들어갈 픽셀 데이터를 어떻게 만들까

프레임 버퍼에 들어갈 픽셀 데이터를 어떻게 만드는가? 현실의 Object는 컴퓨터에서 3D Model로 표현한다. 3D Model을 어떻게 표현하는진 추후에 설명하겠다. 이 3D Model을 배치하고, 움직이며 Scene을 구성한다. Scene의 필수 구성 요소로는 3D Objects, Cameras, Lights가 있어야 한다. 이후 Models 데...

컴퓨터그래픽스 2. Image를 보여주는 Display는 어떤게 있을까

이미지를 보여주는 하드웨어는 무엇인가? Display는 과거 CRT에서 시작하여, 현재는 대부분 LCD를 사용한다. CRT는 무엇인가? CRT는 전자 빔을 쏴서 모니터 끝에 있는 형광 물질을 맞춰 빛을 내는 원리로 화면을 만들어낸다. CRT 모니터 맨 뒤에 각각 R, G, B에 해당하는 전자 빔 세개가 존재한다. 이 전자빔의 세기를 조절하여 한...

컴퓨터그래픽스 1. 컴퓨터 그래픽스란 무엇일까

컴퓨터 그래픽스란 무엇인가? 쉽게 말해, 내 머릿 속에 있는 생각이나 아이디어 (Concepts)를 컴퓨터로 이미지를 생성하는 모든 기술을 컴퓨터 그래픽스라고 정의한다. 그래픽스의 일반적인 과정은 다음과 같다. 개념 (Concepts) -> 계산 모델 (Computational Model) : 내 생각을 컴퓨터가 이해 가능한 데이터로 변환한...

운영체제 20. 가상메모리가 무엇인가

가상 메모리가 무엇인가? 어차피 프로세스를 돌릴 때 모든 페이지가 필요하지 않고, 페이지의 일부만 있어도 당장에는 돌릴 수 있다. 따라서 프로세스의 페이지를 일부만 올리면 더 많은 프로세스를 한번에 돌릴 수 있지 않을까? 페이지 적재 여부를 vaild-invaild bit로 표시한다. 적재되지 않은 페이지는 디스크에 저장해둔다. 그렇다면 프로세스...

운영체제 19. 논리 주소와 물리 주소를 어떻게 연결할까

메모리 경영 논리 주소를 물리 주소와 언제 대응시킬까? 주소는 논리 주소와 물리 주소가 존재한다. 논리 주소는 한 프로그램에서만 사용하는 가상의 주소다. 물리 주소는 실제 램의 주소를 뜻한다. 논리 주소는 물리 주소와 대응되어야 한다. 언제 대응시켜야 할까? 프로그램은 컴파일되어 어셈블리어로 변환되고, 어셈블리어는 다시 컴파일되어 기계어로 변환된다....

운영체제 17. 동기화를 어떻게 구현할까 - Mutex, Semaphore

동기화가 무엇인가? 동기화(Synchronization)란, 여러 프로세스가 공유 영역에 동시에 접근할 때 한명씩 접근하도록 만드는 방법이다. 한명씩 접근하는 것을 순서화(Serialize)한다고 한다. 왜 동기화가 필요한가? Race Condition을 방지하기 위해서다. 공유된 자료구조에 여러 프로세스가 동시에 Write하면 의도한 동작이 아닌 ...