본문 바로가기

생명의 철학

3D Biomorph..진화적 기법을 사용한 컴퓨터 그래픽 (2003.1)

 

 

3D 바이오모프

진화적 기법을 사용한 컴퓨터 그래픽

 

 

Cybertation 다운받기

 

 

1. 앞서 도킨스의 바이오모프와 누적선택에 의한 진화를 실험해볼 수 있는 Blind Watchmaker라는 소프트웨어를 소개했다. 이 바이오모프의 세계는 2차원(물론 그 유전공간은 19차원이지만) 평면공간이다. 지금 소개하고자 하는 것은 3차원 바이오모프로 Notting Hill 사에서 내 놓은 Cybertation이라는 소프트웨어이다. 새로운 변이가 무작위적으로 출현하고 이것 가운데 원하는 것을 계속 선택해 감으로 원하는 표현형을 유도해간다는 기본원리는 Blind Watchmaker와 동일하다. 다만 여기에 하나 더 부가된 기능이 있다면 "성"(sex)이다. Blind Watchmaker에는 성(sex)이 없다. 그래서 변화는 오로지 복제시의 변이에 의존한다. 그러나  Cybertation은 변이와 함께 교배에 의한 유전자 재조합을 허용하고 있다.

그러나 전체적으로  Blind Watchmaker에 비해서 기능이 떨어진다. 유전자 조작 기능이 없고  Triangle, Family, Fossils 등의 기능도 없다. 오로지 변이를 일으키고 선택하고 그래서 새 형태를 유도해 가는 기능외에는 없다.  Blind Watchmaker에서 우리가 알고자 하는 것은 바이오모프 자체라기 보다 바이오모프라는 가상 생명체의 진화를 통한 실제 생명체의 진화의 이해였다. 그러나 Cybertation은 이런 이론적 구성들이 없어 진화를 이해하는 도구로서는 미흡하다.

그러나 Blind Watchmaker와는 그 제작 의도가 다르다. 이것의 목적은 진화 자체의 이해에 있다기 보다 진화적 기법을 이용한 새로운 형상의 산출이다. 말하자면 생물학적 관심사 보다는 미학적 관심사이다. 컴퓨터는 무작위적으로 여러 가지 변형들을 제출하고 우리는 그 가운데 가장 마음에 드는 것을 선택한다. 이 선택을 계속해감으로써 우리는 우리가 원하는 어떤 대상을 "진화"의 방법을 통해서 만들어 볼 수 있을 것이다. 이것은 머리 속에 구상하고 설계하는 "제작"의 방법과는 다르다. 이것은 자연 -도킨스의 이른바 눈먼 시계공-이 대상을 만드는 방식에 가깝다. 이것이 도킨스에 의해서 시작되어 이제 컴퓨터 그래픽의 한 방법으로서 널리 수용되고 있는 "진화적 기법을 사용한 컴퓨터 그래픽"(Evolutionary Computer Graphic)이다.

 

2. 기본적 작동원리는 Blind Watchmaker와 유사하다. 우선 중요한 툴바 몇가지를 살펴보자. 아래는 메인 윈도우이다.

  

그림 1 메인 화면

 

우선 File에서 Horn1.pop 라는 파일을 불러내어 보자. 위 화면의 상단 제일 좌측의 그림이 뜰 것이다. Generate→Mutate를 클릭해보자. Add genomes라는 대화상자가 뜬다. 이것은 다음 세대에 만들어낼 자손의 수를 지정하는 것이다. 초기값을 그대로 받아들이면 바이오모프 하나가 추가될 것이다. 10을 넣어 보자. 그러면 원래의 바이오모프외에 10개의 바이오모프들이 추가로 만들어질 것이다. 그것들은 부모로부터 변이된 것들이기 때문에 똑같지 않다. 이 변이율(evolutionary rate)을 조정하는 것이 View→ Evo Factor이다. 이것을 클릭하면 위 화면의 하단에 보이는 것 같은 조정막대가 뜬다. 이 막대를 우측으로 끌어당길수록 변이율은 커진다. 막대를 좌측 가까이에 놓으면 유전자 배열에 의해서 자손이 부모에 비해 조금씩 달라지는 유전적 표류(genetic drift)에 가깝고 우측 가까이에 놓을수록 돌연변이에 가까워진다. 여기서 툴바의 몇가지 특성을 살펴보자.

그림 2 툴바

 

Generate→Mutate를 클릭하면 대상을 둘러친 선이 처음에는 청색이었다가 점차 회색으로 바뀔 것이다. 바이오모프가 성장하는 동안은 그것을 둘러싼 선이 청색이었다가 성장이 완료되면 회색으로 바뀐다. 회색으로 바뀐 다음 그것을 클릭하면 빨간선으로 바뀐다. 이것은 그 바이오모프가 선택되었다는 것을 의미한다. (완료되지 않은 상태에서 선택하면 분홍색으로 나타난다) 선택된 것을 취소하려면 한번 더 클릭하면 된다. 상단 좌측의 바이오모프만 살려두고 모두 선택을 취소하자. 다음 Generate→Mutate를 실행해 보라. 선택된 바이오모프만을 제외하고 모두 새로운 형태로 업데이트될 것이다. 선택된 것은 변화를 입지 않고 보존하는 것 이것도 옵션이다. 그림2의 툴바의 하단 우측에 계통도 모양의 아이콘이 2개 있을 것이다. ×표시된 것은 replace parents 라고 되어 있다. 이것은 다음 세대에 선택에 관계없이 모두 업데이트된다는 것을 의미한다. 요컨대 부모세대가 보존되지 않는다. 다른 하나는 keep parents로 되어 있다. 이 옵션을 택하면 앞서처럼 선택된 것은 변화를 입지 않고 보존된다. 어떤 변화가 일어났는지를 비교해 보려면 변하지 않는 것이 있어야 하는데 이 때 이 옵션이 유용하다.

툴바를 좌측에서 보면 제일 좌측의 것이 변이를 일으키는 단추이다. Generate→Mutate의 단축 아이콘이다. 그 옆에 하트 모양의 아이콘이 있다. 이것은 성을 통한 유전자 재조합 즉 교배에 사용하는 아이콘이다. Generate→Breed에 해당한다. 변이에 의한 것은 자가증식이 가능하기 때문에 하나의 바이오모프만 선택해도 변이 아이콘이 활성화된다. 그러나 교배에 의한 증식은 둘 이상을 선택해야 활성화된다. 확인해 보기 바란다. 아이콘 2개 짜리는 변이율을 올리고 싶을 때 선택한다.

 

3. 이것은 3차원 바이오모프를 생성하기 때문에 컴퓨터에 많은 부하가 걸린다. 우리의 예에서처럼 10개의 바이오모프를 동시에 처리하자면 상당한 시간이 걸릴 것이다. 시스템의 부하를 줄이는 방법은 두가지가 있다.(사실 요즈음은 컴퓨터 성능이 하도 좋아서 이 정도는 문제가 되지 않지만)

메뉴에서 View→Option을 클릭해 보자. 몇개의 아이콘이 뜨는데 그림1의 툴바의 하단에 있는 것이 그것이다. 사진기와 영사기가 있다. 영사기 아이콘은 바이오모프의 성장과정을 실시간으로 업데이트하는 것이고 사진기 아이콘은 나누어서 불연속적으로 업데이트한다. 계속해서 화면에 출력할 필요가 없기 때문에 사진기 형식이 컴퓨터 부하가 적게 걸릴 것이다. 그러나 그 변화의 역동적인 면을 감상하기에는 아무래도 맛이 좀 떨어진다. 업데이트되는 자손 바이오모프를 10개 이상 셋앞 했을 때는 부하가 크기 때문에 불연속적 업데이트가  좋을 것이다. 그 옆에 걷기와 달리기 아이콘이 있다. 컴퓨터 처리속도에 여유가 있으면 달리기 아이콘을 택하면 된다. 그 다음에 사각형, 2중 사각형, 3중 사각형이 있다. 계산을 많이 할수록 해상도는 좋아겠지만 속도는 떨어진다. 그냥 사각형 아이콘을 선택하면 해상도는 낮지만 속도가 빨라지고 3중 아이콘을 선택하면 해상도는 높지만 속도는 떨어진다.

사진기는 불연속적으로 업데이트한다. 그렇다면 얼마 간격으로 업데이트해야 할까? 그것을 조절하는 것이 File→Project Settings 에 있다. 4개의 조절막대가 있는데 2번째 막대를 왼쪽으로 당기면 시간 간격이 짧아지고 오른쪽으로 당기면 시간 간격이 길어진다. 오른쪽으로 완전히 당기면 바이오모프의 성장이 완료된 다음에 화면에 출력될 것이다. 이 경우 시간을 가장 줄일 수 있다. 바로 그 아래의 Display Settings도 한번 눈여겨 볼 필요가 있다. 우측의 rendering quality에 rendering하는 5가지 옵션이 나와 있다. (렌더링이란 색과 그림자를 사용해서 3차원 화상에 현실감을 주는 기법이다.) 여기서 렌더링 방식은 flat shading으로 초기화되어 있다. 지금 화면에 보이는 바이오모프가 이 방식으로  rendering된 것이다. 이 가운데 속도를 빨리 하고 싶으면 flat shading을 끄고 wire frame을 선택하면 된다. 3차원 상을 가는 선들로 출력할 것이다.

그 외 Edit의  Cut, Copy, Paste 기능은 따로 설명할 필요가 없을 것이다. 그림1의 툴바의 "가위" 아이콘이 Cut의 아이콘이고 그 다음이 차례로 Copy, Paste의 아이콘이다.

 

4. 이 소프트웨어의 조작은 어려울 것이 없다. 그러나 그것을 통해서 나오는 결과는 환상적이다. 여기에는 많은 파일들이 저장되어 있다. 그것들을 불러내어서 앞서 소개한 여러 가지 기법 -변이, 교재, 그리고 누적 선택-을 동원해서 진화시켜 보자. 예상하지 못한 초현실적인 바이오모프들을 쉽게 만들 수 있을 것이다. 좋은 작품이 나오면 다른 바이오모프들은 모두 끄고 그것으로 화면을 채우자. 그리고 마우스로 바이오모프를 돌려보자. 3차원 공간속을 회전하면서 초현실주의적 분위기를 연출할 것이다. 마우스로 살짝 밀면 팽이처럼 회전한다. 저장해두는 것도 잊지 말 것. 다시 그 바이오모프를 만나지 못할지도 모르니까...

본래 이  Cybertation은 1995년 영국의 Notting Hill에서 만든 상업용 소프트웨어이다. 그런데 1998년 그 후속 작품인 DancerDNA가 출시되면서 쉐어웨어로 바뀌었다.(사용에 아무런 제약이 없다는 점에서 프리웨어에 가깝다.) 그런데 지금 이것을 다운받을려고 해도 Notting Hill사에 연결이 되지 않는다. 다행히 전에 다운받아놓은 것이 있어 홈피에 올려 놓았다.