Support Topics
서포트 토픽스 / UC-win/Road 保守・サポートサービス関連情報
CityDesign툴 Vol.1 (전7회) PovrayToMax

 애리조나주립대학의 소바야시입니다. 여기에서는 포럼에이트로부터 공개되고 있는 City Design라고 하는 툴을 소개합니다.
포럼에이트의 VR패키지인 UC-win/Road와 그 외의 3D・CG패키지간에서 심레스하게 도시 데이터를 생성・변환하기 위한 툴군의 개발을 목적으로 하고 있습니다. 여기에서 소개하는 툴은 소스 코드도 공개하고 있지만, 지금 현재는 특정한 서포트는 하고 있지 않기 때문에 버그 등의 문제가 있어도 책임은 질 수 없습니다. 미리 양해의 말씀드립니다.
 또한 이번의 기사를 보신 건축・토목관계자분들 중에서 귀사의 시스템에 적합한 간이툴 등을 원하시는 요망이 있으시면 꼭 문의하여 주십시오.

 지금 왜 도시 생성 툴인가?
 이와 같은 툴을 개발한 배경에 대해서 소개합니다. 필자는 원래 3차원 도시 모델의 생성 프로세스에 흥미가 있어 어떻게 하면 기존의 도시를 디지털 데이터로써 간단하게 재구축(reconstruction)할 수 있는가를 연구해 왔습니다. 박사 과정에서는 뉴럴 네트워크나 인공지능・기계학습, 한층 더 화상 인식 등의 기술을 이용하여 항공사진에서 도시 모델을 생성하는 툴을 개발했습니다.
 그렇지만 현재는 인공지능을 이용한 디자인툴의 개발로부터는 조금 거리를 두고 있습니다. 제 나름내로의 결론은 [디자인툴의 좋고 나쁨을 결정하는 것은, 그 도구로 얼마나 임팩트가 있는 디자인 프로덕트를 생성할 수 있는가에 의한다]라는 것입니다. 아무리 새로운 기술을 개발하여도 헐리우드의 영화로 익숙하고 있는 것 이상의 무언가를 보여주지 않으면, 디자인툴 개발 행위를 연구라고 하는 것까지 도달할 수 없다는 의미입니다. 예를 들면 CityEngine라고 하는 Procedural사가 개발한 툴이 있습니다. 이 툴이 사람들로부터 주목을 받는 것은 작성된 시가지가 자동으로 작성되었다고 생각할 수 없을 정도로 정교하고 아름답다고 임팩트를 나타내었다는 점에 있다고 생각합니다.
 CityDesign로 목표로 하고 있는 것은 기술자로써의 임팩트를 좀 더 주기 위한 툴개발입니다. 키워드는 [스피드]입니다. [지금 있는 기술이라도 충분히 가능하지만, 새로운 툴을 사용하면 막대한 시간과 코스트를 단축시킬 수 있다], 그와 같은 툴개발에 흥미가 있습니다. 이것은 새로운 기술 개발이라고 하기 보다는 디자인 프로세스를 유연성을 가지면서 단순화하는 프레임워크의 개발이라고 하는 의미가 강하다고 생각합니다. [단시간에 가능하면 단가 코스트가 내려가 보다 저렴한 가격으로 제품을 제공할 수 있다]라고 하는 정도의 단축이 아니라 [지금의 3배・10배의 가격이 들어도 괜찮으니 내일까지 전부 가능하다]라고 하는 요구에 답할 수 있을 정도의 스피드업을 목표로 하고 있습니다.

 PovrayToMax
 처음에 PovrayToMax라고 하는 툴을 소개합니다. 이것은 UC-win/Road로부터 출력 저장되는 3차원 모델의 파일군으로부터 3차원 데이터를 자동 생성하는 것입니다. 사용법은 아래에서 나타내고 있습니다.

  1. 3ds Max로 [Utility]탭내의 [MaxScript]롤아웃블록에서 [Run MaxScript]버튼을 선택하고 [PovrayToMax.ms]파일을 실행
  2. 버튼 아래의 풀다운메뉴에서 [Pov-ray Importer]를 선택하면 UI가 로드됨
  3. 도로나 교차점의 Povray파일을 생성하고 싶은 경우는, [Get Mesh Povray]버튼을, 지형이나 그 외의 3D데이터를 생성하고 싶은 경우는, [Get Mesh2 Povray]버튼을 선택하고 Povray파일을 지정
  4. [Union Object]버튼으로 n메타파일(Roads.inc나 Intersections.inc등 복수의 데이터)를 지정

 주의점으로써는 한개한개의 도로 데이터를 임포트한 후에, [Union Object]버튼을 실행하는 것입니다. 필요하지 않은 도로 데이터는 사전에 임포트 할 필요가 없습니다만, 메타파일은 어셉군으로부터 인스턴스로써 부품을 생성하기 때문에 사전에 임포트 해두지 않으면 어셉으로써 등록되지 않은 것으로 됩니다. 갑자기 전부의 데이터를 임포트 하려고 하지 말고 요소마다 확인하면서 생성해 갈 것을 권장합니다.
 이용방법으로써는 UC-win/Road에서 3D프린트하기 위해 데이터 편집이나 보다 고정밀도의 렌더링에 의한 정지화 작성을 위한 것 등이 있습니다. 그림1은 데이터는 모두 UC-win/Road에서 작성하고 3ds Max측에서 모션블러 등의 특수효과를 넣어서 렌더링 한 것입니다. 또한 그림2는 UC-win/Road내에서 작성된 VR데이터를 3ds Max로 임포트하여 3D프린트한 건축 모형입니다.

■그림1 UC-win/Road에서 작성된 VR데이터를 3ds Max로 임포트, 모션블러 등의 특수효과를 가하여 렌더링 실시 ■그림2 UC-win/Road로 작성된 VR데이터를 3ds Max로 임포트하여 3D프린트 한 모형

 MaxScript를 사용하자!
 3ds Max에서는 간이적으로 독자툴을 개발할 수 있는 MaxScritpt라고 하는 언어를 이용할 수 있습니다. [스크립트]라고 하면 많은 프로그래머는 [간단히 코드를 할 수 있는 간이적인 언어]라고 상상하는 듯 합니다. 하드 코드된 함수를 스크립트 실행할 수 있다고 하는 기술적인 정의에서는 물론 그대로 입니다만, 필자는 조금 다른 인식을 가지고 있습니다. 현대의 CG패키지내의 스크립트는 실제로는 매우 강력한 [사고툴]인 것입니다. 복잡한 기하 조작 함수를 이용하는 것 보다 오히려 기본적인 메쉬내의 정점・엣지・페이스를 유연하게 편집할 수 있다는 것입니다. 실제로 헐리우드 영화 작성에서도 빈번하게 활용되고 있는 툴이기도 합니다.
 독자분들 중에서는 80~90년대 초에 컴퓨터 사이언스로 프로그래밍을 학습한 분도 계실거라 생각합니다. 당시는 LISP나 Prolog등과 같이 작성된 코드는 잇달아 메모리에 축적되고 데이터나 함수의 갱신이 인터랙티브하면서 유연하게 실시되었습니다. CAR나 CDR라고 한 간단한 리스트 조작 뿐만 아니라 많은 인공 지능 문제를 풀 수 있습니다. 그것이 언제부터인가 프로그래밍 기술이 MFC(Microsoft Foundation Class)나 OpenGL의 함수를 몇개 더 알고 있느냐의 단순한 기억력에 좌우되도록 되어 버렸다는 것은 매우 유감스러운 일입니다.
 MaxScript는 바로 LISP로 실시하고 있던 리스트 조작과 같이 3차원 데이터를 조작할 수 있는 것입니다. 2~3행의 코드로 조건에 맞는 메쉬만을 선택하고 그러한 메쉬로부터 다른 기하데이터를 작성한다고 하는 점이, 하이엔드의 CG패키지내에서 실행 가능한 것입니다. 이와 같은 기능이 얼마만큼의 시간과 노력을 경감할 수 있는가, 또는 80년대의 수학적 사고로 프로그램하는 즐거움을 실감해 주셨으면 합니다.
 마지막으로
이하의 툴의 소개를 순차 실시하고 싶다고 생각합니다.

  1. ImageToTerrain툴:
      화상 데이터로부터 UC-win/Road에 맞도록 지형 데이터를 생성하는 툴
  2. AnimatedCharacter툴:
      3ds Max내에서 작성한 애니메이션 캐릭터 모델을 UC-win/Road로 직접 임포트 할 수 있는 PK3데이터로 변환하는 툴
  3. SatelliteImage툴:
      지형 데이터와 좌표가 일치한 항공사진을 Google Earth Pro로부터 추출하는 툴
  4. ImageToCity툴:
      도로선, 조닝, 지형 데이터로부터 건물을 포함한 3차원 도시 데이터를 생성하는 툴
  5. Facade생성툴:
      건물 퍼사드의 화상 데이터를 드래그&드롭으로 생성하는 툴
  6. BakedTexture툴:
      음영이나 GI(글로벌 일루미네이션)가 새겨진 텍스처를 자동 생성하는 툴

다음호도 많은 기대 부탁드립니다.


  
전페이지   
(Up&Coming '11 신춘호 게재)
戻る
Up&Coming

FORUM8