컴퓨터 그래픽스

지은이 / 존 빈스 | 옮긴이 / 김태호

by Joong

컴퓨터 그래픽스
1987년 4월 10일 초판인쇄
1987년 4월 15일 초판발행
지은이 존 빈스(John Vince)
옮긴이 김태호
발행처 미진사(서울시 마포구 창전동)


- 비트수
2 = 코드조합 [23p]


- 프로그램들은 이 번역을 수행하기 위하여 빠르게 개발되었는데, 그것은 어셈블러(assembler)라 불리운다. 어셈블러는 프로그래밍을 더 쉽게 만든다. 그래서 프로그래머들은 사람들이 쓰는 자연언어에 가까운 명령들을 사용할 수 있다. 실로 매우 복잡한 번역들을 수행할 수 있는 언어번역 프로그램을 하자마자 처 ㅅ어셈블러가 개발됐다. 이런 것들은 컴파일러(compiler)로 알려져있다.
예를 들어 보면, BASIC(Beginners All Symbolic Instruction Code) 언어는 다음과 같이 마이크로 컴퓨터 프로그램을 짜는 데 사용된다. [28~29p]


- 산업 내에서는 가끔 ‘한 컴퓨터를 보면 모든 컴퓨터를 본 것이다’라고 말해왔지만, 엄밀히 말하면 반드시 옳다고 볼 수는 없다. 오늘날 컴퓨터들은 여러 가지의 형태와 크기로 제작된다. [31p]


- 지금 어떤 사람이 컴퓨터를 사용하고자 한다면 오퍼레이팅 시스템의 허가를 얻어야만 사용할 수 있는데, 모든 오퍼레이팅 시스템은 기계마다 다르다는 것을 기억할 필요가 있다. 오퍼레이팅 시스템은 가장 복잡한 프로그램이고 일반적으로 프로그래머들의 팀에 의해 디자인된다. 이것은 전형적으로 사용자에게 다음과 같은 기능을 제공한다.
· 파일의 유지(프로그램과 데이터).
· 기억된 데이터의 안전과 보존.
· 고수준 프로그램의 기계코드로의 번역.
· 프로그램들의 실행.
· 파일 생성.
· 프로그램 발전과 검사기능들. [32~33p]


- 고도의 시각적인 그리고 예술적인 작업에서 컴퓨터 사용의 중요한 문제 중의 하나가 여기 있다. 한편으로 우리는 컴퓨터가 산술적이고 기계적으로 작동된다는 것을 알았고, 또 다른 한편으로는 응용의 분야가 우리의 감수성의 표현이고 모양·색·균형미의 감상이라는 것을 발견하였다. 기계가 어떻게 그러한 정교한 개념을 지배하고 조작하는가? 이러한 질문에의 답은 ‘어려움은 좀 있다’이지만 그것은 가능하다. [37p]


- 데카르트의 발견에 주어진 이름은 데카르트(평행)좌표(Cartesian coordinates)이다. 그것은 다음과 같이 적용된다. 평면지도 위에 있는 한 점의 위치를 지정하는 문제를 생각할 때, 그것의 정의는 정확하고 단 하나뿐이다. 사람들은 그리드 레퍼렌싱(grid referencing)의 어떤 형태를 제안하고 싶어질 것이다. -중략- 여기서 우리는 90°로 교차하는 한 쌍의 축이 도입됨을 알 수 있다. 이 점은 원점이라 불리운다. 수평축은 X축이 되고 수직축은 Y축이 된다. -중략- 여기서 교차한 두 개의 관계는 P의 위치와 동일하다. 첫 번째 수는 X-수평측정을 의미하고 두 번째 수는 Y-수직측정을 의미하는 것으로 오래 전에 약정되었다. [38~39p]


- 따라서 우리는 면 위에 점이 위치할 수 있는 완전한 메카니즘을 갖게 되었다. 우리의 최초의 문제는 선을 그리는 것을 암호화 하는 것이었는데, 데카르트는 이 문제를 명쾌하게 해결한다.<그림 3.5>에서 설명된 문자 ‘T'의 모양을 생각해 보자. 만약 그 모양의 모든 코너를 그것의 좌표로 지정한다면, 그것들은 다음과 같은 두 수의 리스트로 컴퓨터 안에 기억될 수 있다.
X
Y
-1
-2
-1
1
-2
1
-2
2
2
2
2
1
1
1
1
-2
만약 당신의 위의 좌표의 경로를 따른다면, 원점 모양은 좌측 코너의 밑바닥으로부터 시작하여 시계 방향으로 도는 윤곽을 그리게 된다는 점에 유의하라. 시작점과 좌표의 방향은 지금 당장 중요하지 않다. 그러나 좌표는 T자 모양의 주위를 서로 방해하지 않으면서 완전히 연속적인 순서에 따라 하는 것이 중요하다. [41~42p]


- 그래서 우리는 좌표의 리스트로부터 수를 가감하여 컴퓨터가 간단히 그래픽 출력장치 어디에도 상을 위치지울 수 있음을 자신있게 말할 수 있다. 빠른 디스플레이 스크린(display screen)의 도움에 힘입어 초당 수십 만개의 수의 비율로 작동되는 기계와 같이 실시간에 연속적으로 움직이는 상을 나타내는 것이 가능하다. [47p]


- 더하고, 빼는 명령을 생각하면 자연히 곱하고, 나누는 결과도 생각할 수 있다. 문자 ‘T'를 암호화한 원 좌표의 리스트로 되돌아 가서, 모든 X좌표의 배를 생각해 보자. [47p]


- 그러나 60° 혹은 다른 각도로 상이 어떻게 회전될 수 있을가? 생략된 정화한 결과만을 증명할 수 있는 공식들을 여기에 제시한다(더 수학적인 독자는 자신의 증명을 제공할 수 있지만). 그래서 좌표 X, Y로 어떤 점 P가 주어지면 좌표 X', Y'로 되는 새로운 점 P'는 다음 공식에 의해 계산되어진다.
X'=X·cosQ-Y·sinQ
Y'=Y·cosQ+X·sinQ
[58p]


- 디지타이저는 데카르트좌표를 전자적으로 계산하는 작업판이다.<그림 4.1>은 +/-0.002″로 측정을 처리할 수 있는 능력을 가진 커다란 디지타이저를 보여준다. 하얀 플라사틱판 아래에 저단계 무선신호를 보내는 수평·수직선의 행렬이 캡슐에 내장된다.<그림 4.2>에서 볼 수 있는 것처럼 오퍼레이터가 원하는 위치에 퍽(puck)이나 펜을 놓고 버튼을 누르면 퍽이나 펜에 숨겨진 작은 코일에 의해 신호가 검파되어 데카르트좌표로 변환하기 위해 마이크로 컴퓨터에 전달한다. 이와 같은 디지타이저(다른 많은 것과 같이)는 다양한 연산의 형식을 가진다. 그리고 방금 앞에서 설명한 것은 ‘포인트(point)’ 형식이라 불리운다. 여기서 한 점은 버튼이 눌러질 때마다 계산되어진다. ‘트랙(track)' 형식에서 스타일러스(stylus), 또는 퍽이 작동될 때마다 마이크로컴퓨터는 자동적으로 펜의 위치를 추적한다. 즉, 이것은 초당 1/100의 비율로 작동한다. 이렇게 윤곽 부근을 추적함으로써 도면이 간단히 계수된다. [63~64p]


- 지금 흑백 텔레비전 상은 화소(pixel)라 불리우는 점의 행렬로 구성된다. 즉, 768개의 화소에 의해 576개의 선이 구성되며 전체가 약 500,000개의 화소로 구성된다. 이것은 텍스트(text)가 점의 형으로부터 구성되는 한 텍스트를 나타내기 위해 사용될 수 있다. 그러므로 시각출력장치(visual display unit, VDU)에서 전자적 문자 발생기는 자동적으로 이 방법에 의해 문자를 만들어낸다.
만약 같은 스크린이 선으로 구성된 화상을 출력하는 데 사용될 경우, 그 상은 또한 화소로 분해되어야만 한다. [69p]


- 만약 사용자가 어떤 방법에 의해서 출력된 상을 움직이고자 할 경우(아마 수평이동, 확대축소, 회전, 애니메이션의 형태), 현재의 상은 교체 출력되기 전에 제거되어야 한다. 스크린 삭제는 디스플레이의 메모리 안에 기억된 2진 신호를 취소함으로써 이루어진다.
그리고 만일 새로운 좌표가 제공되고 1/25초 내에서 출력되면 실시간 움직임은 달성될 수 있다. [70~71p]


- 제조업자가 고객들이 필요로 하는 제도편의들을 시스템과 함께 소프트웨어를 공급하기 때문이다. 사용자는 시스템을 작동시키기 위해 키를 돌리는 것 이외는 아무 것도 하지 않으므로 이런 것을 보통 턴키(turnkey) 시스템이라 한다. [78p]


- 우리의 세계를 묘사하는 실제적인 두 가지 방법은 단어를 사용하거나 또는 수학적인 부호를 사용하여 묘사하는 것으로 이들 방법은 모두 필요하며 또 유용한 것이다. 아마도 보통 사람의 경우 불과 한두 문단으로 행성 시스템의 구성을 설명할 수 있지만, 수학적인 식은 다량의 종이를 필요로 하고 또 수학자가 아닌 사람은 이해할 수도 없다. 그래서 전자기적 방사(radiation) 같은 특수한 것을 다룰 때에는 단어와 수학적 표기 중 한가지를 선택해야 하는데 이것은 독자에 의해 결정되어진다. [88p]


- “빛은 무엇을 의미하는가?” 빛은 우주에 있는 자연의 한 부분이고 전자기적 방사의 스펙트럼에 해당한다. 이러한 방사로는 X-광선, 마이크로파(요리용), TV파동, 라이도파, 적외선(열), 가시광선, 자외선 등이 있다. 그리고 이러한 방사들은 진공상태에서 초당 186,000마일의 속도로 나아간다. 이러한 방사는 서로 구분할 수 있는 특성을 지니는데 그것은 파장의 길이이다. 이것은 물리적인 측정치이고, 전자기적 방사에서 일어나는 파동에 대응하는 두 점 사이의 거리이다.<그림 6.1>은 이것을 그래픽적으로 보여준다. TV파동은 대략 5.0m로 긴 반면 X-광선은 0.0000000001m로 매우 짧다.
우리의 눈은 대략 0.0000004m(400nm)에서 0.0000007m(700nm)까지의 파장사이의 스펙트럼만 볼 수 있다. 700nm(나노미터, nanometer)의 긴 파장에서 사람의 눈은 붉은색을 느끼고 400nm의 짧은 파장에서는 보라색 빛을 느끼게 된다. 색채는 외부세계의 물리적인 부분이라기보다는 우리의 신경시스템이 그렇게 느낀다는 것에 주목하라. [88p]


- 2000년 동안 계속 되어온 질문은 “눈은 시지각 과정에서 어떤 역할을 수행하며 어떻게 기능하는가?”이다. 오늘날 우리 모두는 눈의 수정체가 눈동자를 통해 들어온 빛을 조절하여 망막에 초점을 맺게 하고 그것을 뇌로 신호를 보내는 데 사용됨을 알고 있다. 그렇지만 망막의 역할은 많은 연구가에게 원인을 분석할 수 없는 것이었는데 1802년 영(Thomas Young)이 눈은 세가지 형태의 감각기관을 가졌고 각각 가시광선 스펙트럼의 세 영역에 대해 감각한다는 것을 제안했다. 이것은<그림 6.2>에서 볼 수 있다. 기본적으로 눈에 의해 추출되는 기본 색의 영역은 스펙트럼의 적색(Red), 녹색(Green), 청색(Blue)의 부분이다.
헬름홀츠(Helmholtz)는 영(Young)의 가설을 확장했고, 영-헬름홀츠(Young-Helmholtz) 3색이론이라고 알려졌다. 다행히도 최초의 실험은 이러한 기본적 이론을 확고히 해주었다. 그러나 중요한 연구는, 우리 눈이 산출하는 색채감각에 대한 신호를 어떻게 뇌에서 인식하는가에 집중되고 있다.
다른 양의 녹색, 적색, 청색의 빛을 혼합시켜 어떤 색채감각을 일으키는가를 보여 주는 많은 실험이 진행되었다. 사실 랜드(Land)박사(폴라로이드사)는 단지 두 개의 기초적인 색만이 수많은 색을 만드는 데 필요한 것임을 나타내는 매우 흥미있는 실험을 시도했다. [89p]


- 우리 눈의 활동에 대한 기본적 샘플을 뽑는 과정은 TV기술에 공헌하였다. TV는 비디오 카메라에 의해 받는 색의 정보를 세가지 중요한 색(적, 녹, 청)으로 보낸다. 이러한 색의 정보는 전자적으로 코드화되고 전송된다. 받는 것이 끝나는 곳에서는 신호를 해석하여 기초적인 색의 정보를 전자적으로 발췌한다. 이들 각각의 신호는 TV의 영상을 구성하는 형광체 점들의 행렬을 자극하기 위해 사용된다. 왜냐하면 이러한 점들은 서로 밀집해 있기 때문에 우리의 눈은 다른 색을 만들어내기 위해 각각의 색채를 효과적으로 혼합한다. 기회가 있을 때 TV화면에 여러 개의 물방울을 떨어 뜨리고 자세히 관찰해 보자.
색의 화면을 3색의 분리로 줄 일 수 있는 능력, 즉 적색·녹색·청색은 컴퓨터 그래픽 주변장치에서 개발된다. [90p]


- 특히 만셀(Munsell)의 작업은 컴퓨터 프로그래머에게는 상당히 유용했다. 그는 「Altas of the Munsell Colour System」(1915년)이라는 책을 출간했는데 거기에서 그는 세 개의 매개변수, 즉 색상(hue, 지배적인 파장), 명도(value, 밝기), 채도(saturation, 농도 또는 순도)로 배열된 색의 질서정연한 연속을 인쇄하였다. 이러한 변수는, 색을 만셀 칼라 트리(Munsell colour tree)라고 부르는 비틀린 모양으로 된 3차원으로 표현할 수 있게 했다. 다섯가지 기본적인 색(적, 황, 녹, 청, 자)과 중간색(황-적, 녹-황, 청-녹, 자-청, 적-자)들은 수직으로 배열되었다. 이 축에 색이 가까울수록 색은 점점 진하게 된다. 그리하여 볼륨 중앙에 가까운 색들은 자신의 색을 잃어버리고 회색으로 된다.
만셀 트리에 있는 어떤 색의 수직적 위치는 색의 밝기를 조절한다. 이러한 구성은, 표면은 밑에서 검정색부터 시작하는 진한 색을 지니고 있고, 제일 위에는 흰색이 된다.
만셀이 죽고 난 뒤 atlas의 새로운 개정판이 「The Munsell Book of Colour」(1929)라는 이름으로 출판되었다. 이것은 수직적 기준으로 측정된 밝기의 방법을 수정하여 첨가했다. 최초로 만셀은 밝기 변화가 무리없이 잘 배치되도록 하기 위해 반사 제곰근을 10개의 분야로 만들었다. 이것은 밝기의 심리적 인식의 조사치임에도 불구하고 수정된 개정판은 상당히 타당성이 있다.
이 모델은 빛에 대한 눈의 주관적인 감도를 표현한다. 이러한 비대칭성 때문에 컴퓨터 프로그램으로 표현하기는 극히 어렵다. 따라서 필요한 것은 다루기 간단하고 정확한 색표현을 조절할 수 있는 객관적인 방법이다. [93~94p]



- 육각뿔 모델의 주목할만한 특성은 그것이 보색에 직접 접근하게 된다는 점이다. [98p]


- 3차원 물체는 선들로 구성되어질 수 있다. 그렇지만 이것들은 ‘모서리(edge)'라고 불리우는데 이 선들은 두 면(side)의 경계로 나타나기 때문이다. 물체의 정의는 컴퓨터 그래픽스에서 매우 중요하다. 왜냐하면 정확한 구조(construction) 없이는 컴퓨터 그래픽 내의 조작이나 음영처리가 매우 어렵기 때문이다. [106p]


- 따라서 우리는 2차원적 이동효과가 3차원에서도 여전히 유지되고 있음을 알 수 있다. 이것은 결코 놀라운 것이 아니며, 우리가 3차원 좌표들을 증가시켜 유사한 크기의 물체를 만들 수 있다는 것을 상상한다는 것은 수학적으로 어려운 것이 아니다. 이들의 결과가 확실하다는 것을 호기심이 많은 독자들을 위해 남겨두겠다. [111p]


- 2차원 공간에서의 반사체는 선과 관계가 있는 반면에, 3차원 공간에서는 평면과 관계가 있다. [111p]


- 점의 좌표들이 (x,y,z)이고 그림평면의 거리가 P라고 한다면 다음과 같은 결과가 이루어진다(이것은 그리이스에서 알려진 기하학이다).
Y2/P=Y/Z
Y2를 계산하기 위해 조금 정리하여 나타내면,
Y2=P·Y/Z

이것은 그림평면에 의한 수직선 교점은 그림평면의 거리 P와 원 Y좌표 y에 비례하고 Z에는 반비례하는 것을 의미한다. 투시개념(조금 떨어진 거리에 있는 사물은 더 작게 보임)을 제공하는 Z좌표에 의해 이것은 나누어진다. 그것은 다음과 같이 할 수도 있다.
X2=-P·X/Z [116~117p]
- 투시도의 일반적인 방법을 살펴 보기에 앞서 위의 계산에서 그림평면 상의 거리의 역할을 평가할 필요가 있다. X2와 Y2는 P에 정비례한다. 즉, 이것은 P값이 증가함에 따라 X2와 Y2도 그에 비례하여 증가한다. 결국 우리는 좌표들을 곱하여 크기의 변화가 생김을 보았으며 이것은 P가 변함으로써 화상의 크기가 변경되는 것을 의미한다. 따라서 컴퓨터의 눈을 통해 ‘축소나 확대(zoom)’를 조절하여 볼 수 있게 되는 것이다. [118p]


- 상자의 경우에는 전형적으로 3면만이 보이게 되고 나머지 3면은 보이지 않게 된다.
만약 보이는 면으로부터 보이지 않는 면을 식별할 수 있게 하는 방법을 고안해 낼 수 있다면, 개별 불록면체들의 문제는 해결된다. 여기에 그 해결책이 있다. 그리고 그 기법은 지극히 간단하다. 면들 중에서 단 한면이라도 볼 수 잇다고 가정을 하자. 그 때 물체가 수치적으로 디자인될 때 면을 그리는 수학적 기법은 보이는 면을 정확히 식별해 낸다. 이것은 볼 수 있는 면으로부터 떨어져 표면에 직각(normal)인 법선벡터(normal vector)라 불리우는 각 면으로 선들을 연합함으로써 이루어진다.<그림 8.17>은 두 개의 면, 즉 한 면은 컴퓨터의 선이 눈에 의하여 볼 수 있고 다른 한 면은 볼 수 없는 면을 보여주고 잇다. 한 선이 눈으로부터 이러한 법선벡터의 기저까지 연결되었을 때 그 내각은 보이는 여부를 결정하는 데 사용될 수 있음에 주목하라. 만약 내각이 0°와 90°사이라면 보이는 것이고 90° 이상이면 보이지 않는다. [122p]


- 여기서 우리는 3D 모형이 Z방향으로 원래의 2D 모양을 돌출시킴으로써 형성되었다는 것을 알 수 있다.
돌출(extruding)은 간단한 기하학적 방법으로서 어떤 복잡한 프로그래밍을 요구하지 않는다. [137p]


- 만곡면들 또는 회전된 면들은 정말로 복잡한 물체들을 만들 수 있는 유용한 모델링 기법을 제공한다. 모형제작자에게 부과된 한 제약조건은 요구된 모형이 한 축에 대해 회전대칭을 가져야 한다는 것이다. 이것은 간단히 어떤 축에대해 한 윤곽선, 또는 윤곽선들을 회전함으로써 면을 생성하는 것이 가능하다는 것을 의미한다.
예를 들어 술잔을 만들기 위해 필요한 모든 것은, 수직인 Y축에 대해 회전할 수 있는 한 윤곽선(contour)이다. -중략- 이 기법의 명백한 특징은 최종 면에서 회전단계들의 수를 변경시킴으로써 관련된 물체들의 집단(family)을 만들 수 있는 능력이다. -중략-
최종 모형은 원래의 2D 윤곽선을 구성한 점들에 의해 만들어진 면들의 집합으로써 저장된다. 이것은 만일 원래 윤곽선에 n개의 꼭지점들이 있다면, 면들을 구성하기 위해서는 n-1개의 모서리가 있어야 된다. 또한 m회전 단계일 경우 최종 모형은,
m(n-1)면
들로 모형을 둘러싸게 된다. [138~139p]


- 괘선면들은 항공기의 날개같은 구조들을 모형화하기 위해 사용된다. 그들은 직선들로, 두 개의 분리된 경계 윤곽선들을 함께 연결함으로써 형성된다.<그림 9.13>은 Z축을 따라 나타낸, 그리고 직선들로 함께 연결된 두 개의 닫힌 윤곽선들을 보여준다. 지금까지 설명한 모델링 기법들과는 달리 이 방법은 명암프로그램들과 숨겨진 선의 제거 프로그램들을 엉망으로 할지도 모르는 꼬인 면들을 만들 수 있다. [140p]


- 프랙탈(fractal) 기하학은 무작위로 나타나는 곡선들과 면들을 묘사하는 데 관계되지만 사실은 자기를 닮은 성질들을 나타낸다. [148p]


- 예를 들어, 손잡이와 주동이를 가진 찻주전자의 표면묘사를 할 경우 좌표형태로 나타내는 문제들을 생각해 보자. 아마 찻주전자의 몸체는 회전면에 의해 형성될 수 있지만, 손잡이와 주둥이는 여러 모델링 기법들을 선택하기 위한 중요한 질문들을 제기하게 된다.
패러메트릭(parametric) 면의 묘사는 이런 형의 모델링을 가능케 하지만 수학적 묘사는 전적으로 이 책의 범위밖에 있고 심지어는 단지 프로그래머가 이런 기법들을 수행하는 데에만 흥미가 있을 것이다. 그렇지만 다양한 기법들이 복잡한 면들을 모델링하는 문제를 해결하기 위해 개발되어 왔다는 것은 언급할 가치가 있다. 가장 잘 알려진 몇몇 면의 묘사들은 다음과 같다. 선형의 쿤스면들(Coons.S.A), 2입방체 면조각들(Bicubic Surface Patches), Bézier Surface(Bézier, P.E.) 그리고 B-운형자형면들(B-Spline Surfaces). 이것들은 모두 어떤 강점과 약점들을 보여주며 항공기와 자동차들, 프로펠러들과 공장기계들에서 보여진 면들을 처리하기 위한 공업용 CAD 시스템들에 사용된다. [146p]


- 프랙탈들은 프로그램에 의해 재생될 수 있다. 그러므로 좌표형으로 될 필요가 없다.
재분할 방법은 항상 가장 작은 면이 디스플레이 시스템의 해상도를 넘어설 때까지 계속될 수 있다. [149p]


- 오늘날, 우리의 시각은 빛이라 불려지는 전자기적인 스펙트럼의 굴절에 대해 반응하는 것에서 기인된다는 것을 알았다. 이러한 복사에너지(radiation)가 전등이나 태양과 같은 광원에서 방출될 때, 어떤 것은 물체에 의해 반사되고 우리의 눈에 의해 감지된다. 우리의 눈에 있는 렌즈가 이러한 빛을 망막에 모아 집약하면 망막은 전자적으로 자극된다. 그 다음에 이것은 시각이 경험되는 뇌에 신호로 전달된다.
아직도 컴퓨터 안에 시각의 복잡한 과정을 모형화하는 것은 불가능하지만 실제로 살아있는 것 같이 눈과 뇌가 믿도록 하는 컴퓨터 생성화상들을 만들 수 있게 되었다. 이것을 이루기 위해서는 프로그램에서 물체의 색깔, 표면의 텍스츄어를 조정할 수 있어야 하며 또 빛을 투과시키고 굴절시킬 수 있는 능력이 있어야 한다. [162p]


- 물체의 색깔은 물체의 절대적인 성질이 아니다. 실험에 의하면, 뇌가 칼라인지의 근원이기 때문에 그것은 물체와 완전히 일치하지 않는 다양한 색깔로 된 상을 만드는 것으로 밝혀졌다. 그러나 이러한 예외적인 것은 별도로 하고 우리는, 물체가 빛의 어떠한 파장들을 흡수하고 어떤 다른 것을 반사하여 생성되는 표면색의 메카니즘을 설명할 수 있다. 예를 들어 토마토에서 밝은 빛이 비추어질 때 그것의 껍질은 700nm 주변의 대부분의 청색을 흡수한다. 그래서 그것은 빨강색을 띄게 된다. [162p]


- 빛의 또 다른 특징은, 불빛이 물체로부터 멀어져 갈수록 강도(intensity)는 점점 낮아진다는 것이다. 사실상 최종 강도는 물체와 광언 사이의 거리의 제곱에 반비례 한다. 어떤 컴퓨터 그래픽 시스템들은 이러한 현상을 고려하고 있지만 또 다른 것들은 너무 정밀한 계산은 가치가 없다는 근거 하에 무시한다. 한편 ‘파장’, ‘전자기의 방출’과 ‘반사계수’의 단어를 사용하여 빛을 묘사할 수 있다. 이때에는 그것들이 외부 세계를 묘사하고 이해하는 데 도임이 되는 편의성에 근거한 단어로 번역되어야만 한다. 어떤 실험은 빛이 일직선으로 직진함을 보여주고 있는 반면에, 또 다른 실험은 그것이 큰 물체에 의해 굴절한다는 것을 보여주고 있다. 즉, 빛은 물결이 이는 파동형으로 번지면서 나타날 수도 있고, 또 다른 경우에 있어서는 원래대로 미립자 상태로도 나타난다. 이러한 성질들은 컴퓨터 그래픽을 하는 데는 아무런 관계가 없다. [163p]


- 평면 명암법은 조립된 평면이 매트면이라고 가정함으로써 표면 광택이 없다고 생각한다. 람버트(Lambert)는 평면의 성질에 대한 연구에서 평면의 밝기는 관찰자의 위치와는 무관함을 알았다. 그러나, 그것은 평면에 비추어진 광원의 각과 관계가 있으며 사실 그것은<그림 11.3>에서처럼 광원과 법선면의 각 ɵ의 코사인(cosine) 값에 비레한다. -중략-
red=Lred·Cosine(ɵ)·Cred
green=Lgreen·Cosine(ɵ)·Cgreen
blue=Lblue·Cosine(ɵ)·Cblue
여기에서 Lred, Lgreen, Lblue은 광원 중 빨강색, 녹색, 파랑색의 양을 가리키고 Cred, Cgreen, Cblue은 표면에 대한 반사계수이다.
그러나 광원이 표면에 대해 90°의 각도로 비춘다면 무슨 일이 생길까? 이론적으로 그 면은 빛이 없는 그림자로 남는데, 이러한 것은 위의 방정식에서도 볼 수 있다. 그러나 이것은 실제로는 좀처럼 일어나지 않는다. 보통 대기에는 최소한의 빛이 포함되어 있다. 그래서 그 방정식에 대기의 빛 Ared, Agreen, Ablue을 더애햐 한다.
red=Lred·Cosine(ɵ)·Cred+Ared
green=Lgreen·Cosine(ɵ)·Cgreen+Agreen
blue=Lblue·Cosine(ɵ)·Cblue+Ablue
[165p]


- 스무스 명암법은 컴퓨터 모델들을 구성하는 면들을 숨기기 위한 절차들을 포함한다. 그것은 수학적인 연산이지만 독자들이 그 기법을 쉽게 이해할 수 있게 설명하고자 한다.
컴퓨터 그래픽스에서 법선면의 개념은 어떤 기하학적인 관계를 설명하기 위해서 자주 사용된다. 이러한 법선면은 각각 그 면에 대해 똑바로 선 막대로 상상될 수 있고, 그것은 사실 면에 포함된 꼭지점들로부터 계산될 수 있다. -중략-
이제 만일 이러한 물체가 명암을 가진다면 그 평균 법선들은 조명 계산에 사용되고, 어던 면이 투영되면 그 모서리는 법선면들보다는 평균법선에 기본을 둔 빛의 값들을 가질 것이다. 이로써 명암처리 프로그램이 면에서 면으로 움직일 때 조명이 갑자기 변하는 것이 아니라는 결과가 도출된다.
이러한 형태의 명암법을 창안자의 이름에 따라 가라우드 명암법(Gouraud shading)이라고 한다. [168p]
- 퐁 명암법을 이해하기 위해서는 광택있는 표면에서 관찰된 반사되는 가장 밝은 빛에 대한 기법을 이해해야만 한다. -중략- 관찰자는 입사각 In과 반사각 Rf가 같을 때 점 P에서는 단지 광원의 반사광만을 볼 것이다. 만약 관찰자가 움직인다면 작용되는 반사빛 또한 움직인다. [169p]


- 시각 인지과정은 의심할 것도 없이 복잡하다. 사실 인간 두뇌의 많은 부분이 이러한 일들에 몰두되었고, 화상 처리에 대한 고도의 세련된 수준에 오르기 위해서 수백만 년에 걸쳐 혁신적 발전을 거듭해 왔다. 그러나, 색깔과 모양은 제외하고라도 실세계에 대한 이해는 그림자라는 정보에 의해 크게 도움을 받는다. [170p]


- 광원이 결코 단일의 점이 아니므로, 그림자의 모서리는 좀처럼 뚜렷하고 똑바른 직선이 되지 않는다. 비록 광원이 하나의 램프일지라도 정상적으로는 여러 개의 그림자들과 희미한 가장자리를 만들어내는 무작위적인 반사를 하는 많은 표면들이 있다. [171~172p]


- 그럼에도 불구하고 반사는 컴퓨터 프로그램이 반작이는 표면과 광선의 상호작용에 의해 이루어지도록 요구한다.<그림 11.10>은 거울 속의 단일 물체에 대한 반사를 결정하는 기하학을 나타내고 있다. 관찰자에 의해 보여진 그 상은 거울 뒤에 똑같은 거리에 물체가 위치하게 된다는 것을 알 수 있고 거기에는 매우 간단한 기하학적인 계산만이 이루어진다.
그러나 기하학은 단지 그 문제의 일부일 뿐이다. 반사하는 표면에 의해 흡수되는 빛은 무엇을 하는 것인가? 거울 속에 들어간 그림자는 어떻게 작용하는가? 여러 개의 반사물체들이 서로 다른 것과 가까이 있게 될 때 복합반사들이 어떻게 계산되어지는가? [172~173p]


- 텍스츄어 사상은, 컴퓨터가 표면을 세부적으로 덮어씌워 모형화하는 기술이다. -중략- 이것은 그 질감의 칼라화상을 사진 또는 그림으로 컴퓨터에 저장함으로써 이루어진다. 그 화상은 프레임 저장소에 사상되기 전에 검토되어져(기하학적으로 다루어져) 화소형태로 저장된다.<그림 11.11>은 이러한 작요을 나타내 준다.
이 사상의 결과는 프레임 저장소에 있는 하나의 화소에 몇 개의 그림요소를 사상하여 가지게 된다. 이러한 것은 앨리어싱(가명-aliasing)이 된다. 이를 극복하기 위해 관련된 그림요소들은 받은 화소에 그 요소들의 평균을 저장하게 된다. [173p]


- 화가 알고리즘(painter's algorithm)
화가 알고리즘은 그 이름에 함축된 것처럼 예술가들에 의해 사용되는 절차들로 이루어진다. 즉, 그 화상은 프레임 저장소 속에 멀리 있는 물체를 먼저 가져오고 관찰자에 더 가까운 것들을 후에 가져옴으로서 형성된다.<그림 11. 12>는 물체들이 C, B, A의 순으로 명암이 지워지는 개념을 나타낸 것이다. 불행히도 그 알고리즘은 완전히 증명된 것이 아니어서 때때로 조각들에 있어서 위치 상에 불일치가 생긴다.<그림 11.13>에 있는 상황을 보면 A는 B의 앞에 있고 B는 또한 A의 앞에 있게 위치를 잡은 상황을 보여주고 있다. 분명히 ㄱ화가 알고리즘은 이러한 조건을 해결할 수 없다. [174p]


- 주사선 알고리즘(scan line algorithm)
텔레비전 화면은 1/25초(영국), 또는 1/30초(미국)만에 두 개 흐름이 상하좌우로 움직이는 주사(scanning)점을 형광체 화면에 나타냄으로써 개발되었다. 주사선 알고리즘은 명암표시된 그림을 계산하는 것과 비슷한 기법을 사용한다. 기본적으로 컴퓨터 안의 모델들이 재배열되고 변형됨으로써 그들의 모서리들이 평행투영으로 프레임 저장소 속에 영사될 수 있다. [174~175p]


- Z-버퍼(z-buffer)
Z-버퍼 접근은 매우 단순하지만, 작동하는 데에는 많은 양의 컴퓨터 메모리가 요구된다. 이것은 다음과 같이 작용한다. 메모리의 한 조각(Z-buffer)은 프레임 저장소에 있는 각 화소에 대한 매우 큰 수치값을 저장하기 위해 가저장된다. 그 다음 조각들이 임의의 순서대로 명암처리된다. 그러나 프레임 저장소가 갱신되기 전에 Z-버퍼는 새로운 화소들이 전의 화소들보다 더 가까운가를 살피게 된다. 왜냐하면 Z-버퍼는 Z의 방향에 있는 관찰자와 관계되는 점의 거리를 취할 수 있기 때문이다. 만일 그 점이 가까이 있으면 Z-버퍼는 갱신되고 프레임 저장소에 있는 값도 변하는데, 만일 그렇지 않으면 화소들은 무시된다.
불행히도 Z-버퍼는 투명한 물체에 대해서는 그 조각드링 임의의 순으로 채워지기 때문에 적용될 수 없으며 투명도 계산을 하기 위해서는 물체들 사이에 일어나는 물리적 관계를 조사해야만 한다. [176p]


- 저해상도(low-resolution)의 화소기본 시스템에 있어서의 주요 결함은 가까운 수평과 수직의 모서리를 표현할 때 엘리어싱 오차들이 생기게 되는 것이다.<그림 11.16>은 프레임 저장소에 기억되어 있는 모서리의 확대부분을 보여줌으로써 그 문제를 분명하게 한다. 이를 때로는 ‘톱니모양(jaggie effect)' 또는 ’계단효과(staricase)'라고도 한다.
엘리어싱은 소프트웨어 또는 하드웨어에 내장된 반-엘리어싱 처리로 제거된다. 그것은 화소 덩어리들을 살펴보고 화소의 평균겂에 근접하게끔 한다. 이것을 여과처리라 부르며, 부드러운 상으로 된다. [177p]


- 디자인을 프로그램하는 데 사용되는 유용한 기법은 모듈화(modularity), 즉 커다란 크기의 프로그램을 단일로 작성하지 않고 논리적인 전체 절차를 분산된 모듈로 분할한다. 이들 모듈들은 개별적으로 테스트되어 디버그(debug)된 후 이전에 테스트된 프로그램과 묶어져 얼마든지 사용될 수 있게 된다. [190p]


- 데이터 베이스는 컴퓨터 시스템 안에 있는 데이터의 조직을 기술한다. [190p]


- 모든 것이 컴퓨터 안에서는 수치로 저장되기 때문에 이 숫자들은 동적으로 수정될 수 있다. 따라서 기본적으로 모든 것이 프로그램이 수행될 때 프로그램안에서 수정될 수 있다.
이들 변화를 제어하기 위해서 시스템 안에 특정한 주요 프레임에서 패라메터(매개변수)의 값들을 정의해 주는 스크립트(script)가 필요하다. [191p]


- 컴퓨터 하드웨어는 매우 믿을 수 있게 만들어져 있다고 하더라도 소프트웨어는 소위 사람들의 논리적 분석의 공식이므로 항상 의심스럽고, 언제든지 붕괴될 위험이 있다. [193p]


- ENIAC이 1962년 수더랜(Sutherland)에 의해 논문 「스케치패드(Sketchpad)」에 표현된지 40년밖에 지나지 않는다. 그러나 오늘날 컴퓨터 그래픽스가 그만한 위치까지 올라와서, 사람은 이제 더 이상 디자인할 필요없이 모두 컴퓨터에 의해 이루어질 것이라는 인상을 받고 있다. 앞의 장들을 읽고 이해한 사용자들은 이들 시스템이 디자인은 할 수 없다는 것을 깨달았을 것이다. 컴퓨터는 엄청나게 완벽하긴 하지만 도처에 인간의 논리적인 약점을 포함하는 소프트웨어를 갖고 있는 맹목적인 기계이다. [199p]


- 쉐도우shadow
광원과 평면 사이에 입체가 있을 경우 입체에 가려서 평면 상에 빛이 도달하지 않는 부분이 생기는데 이것을 쉐도우(그림자)라고 하며 쉐이드(그들)와 구별하여 사용된다. 그림자를 붙이는 것은 입체를 그 그림자가 생기는 평면 또는 곡면 위에 광원으로부터의 투영도를 그릴 수가 있다.
쉐이드 shade
빛이 입체에 대하여 만들어내는 그림자 가운데 입체표면위에 생기는 그늘을 말한다. 이것을 계산해내는 것이 쉐이딩이다.
쉐이딩 shading
입체감을 내기 위하여 입체표면의 광원으로부터의 거리, 또는 광원에 대한 방향을 조사하여 결정되는 휘도로서 그 표면의 그늘을 나타내는 방법, 즉 빛이 비치는 면은 밝고, 비치지 않는 면은 어둡게 보인다. [208~209p]

keyword
매거진의 이전글마음의 시각