전체 글

전체 글

    N Dot L

    그래픽스는 N (normal) L (light) 이 두 백터의 내적에서 부터 시작해야 할것 같네요. N은 물체의 방향, L은 빛의 방향을 뜻합니다. 둘다 방향만 있으면 되기에 크기가 1인 단위백터로 사용합니다. 백터의 내적은 각 성분끼리 곱의 합이지만 코사인 법칙에 의해 각 백터의 크기와 두백터의 코사인의 곱으로 표현 할 수 있어요. |A| * |B| * cosθ 하지만 단위 백터의 크기는 1이므로 단위백터의 내적은 두백터의 코사인 값 그대로가 됩니다. (|A| * |B| 가 날라가서) Cos은 두백터의 사이각이 클수록 작아지고 , 사이각이 작을 수록 Cos 값은 커지므로 음영의 정도를 표현하기 딱인 값인거죠. 왜 딱인지 예를 들어 봅니다. L을 손전등의 방향 N을 내 눈의 방향 으로 가정해 봅니다. 가..

    메모리와 포인터

    메모리 게임도 컴퓨터 프로그램입니다. 컴퓨터 프로그램의 핵심은 데이터를 산술 가공한후 입출력(Read/Write, Get/Set, Input/Output) 하는 것 입니다. 여기서 데이터의 입출력은 컴퓨터 주기억장치에 기록된 데이터만 가능합니다. 주기억 장치란 일반적으로 컴퓨터 RAM 공간이며 OS 커널에서 관리를 해주는 한도 내에서 사용 가능합니다. 이중 프로그래머가 직접 다룰 수 있는 영역은 HEAP(힙) 이라고 불리는 영역이고, OS 커널의 관리하에 접근 가능한 영역을 얻어 와야만(할당) 사용 가능합니다. 프로그래밍 언어에서 alloc, malloc, new 등의 함수나 연산자로 할당한 메모리가 바로 힙영역입니다. 즉 OS 커널은 컴퓨터 휘발성 공간에 포함되어 있는 영역을 힙이라는 이름으로 관리하며..