Support Topics
서포트 토픽스 / UC-win/Road 保守・サポートサービス関連情報
City Design Tool Vol.2 (전7회) ImageToTerrain

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

 지형 생성과 위성・항공사진 합성이 VR의 첫걸음
 전회 (제1회)는 UC-win/Road로부터 데이터를 다른 3D소프트로 읽어들이기 위한 PovrayToMax라고 하는 툴을 소개했습니다. 이번에는 VR도시 모델을 처음 구축하기 위해 필요한 지형 생성과 항공사진과의 합성에 관한 툴 ImageToTerrai을 소개합니다. 기존 어느 지역의 VR도시 모델을 작성하려고 할 때, 처음에 해결하지 않으면 안되는 난관입니다. 다소 GIS(지리 정보 시스템)나 GoogleMap등으로 3차원 지도 등에 익숙하신 분들에게는 「어째서 그런 것들이 문제가 되는건지?」라고 생각하실지 모르지만, 이것은 매우 번거로운 문제입니다.
 우선 지구의 둥근 모양을 포함한 지형데이터인 DEM(Digital Elevation Model)과 2차원의 항공사진을 일치시키지 않으면 안됩니다. 고등학교의 지리 수업을 떠올립니다. 지구본에 종이를 붙이려고 하면 상당히 궁리를 하지 않으면 안됩니다. 수학을 할 수 있는 분이라면 다소의 방정식이 생각나시겠지요. 그러나 한층 더 번거롭게도 지구는 단순한 구면도 아니면서 단순한 타원체에 근사한 것도 아닙니다. 상당한 일그러짐이 있어 지역마다 변수를 바꾸지 않으면 안되거나 연도에 따라서도 변화하거나 하기 때문에 매우 복잡합니다. 유명한 UTM(유니버설횡메르카토르도법)으로부터 XY좌표로의 변환식 일부를 아래에 표기했습니다. 전부의 수식을 올리는 것만으로 4페이지 정도 걸리기 때문에 여기에서는 처음 1행째만 소개합니다. 상세하게 알고 싶으신 분은 이하의 서적을 권장합니다[1].
[1] Q. Yang, J. P. Snyder, W. R. Tober, Map projection transformation: principles and applications., Taylor and Francis, Hong Kong, 2000.

■식1 UTM(유니버설횡메르카토르도법)에서 XY좌표로의 변환식 일부

 비록 아무리 복잡해도 일단 프로그램화 하면 사용측은 별로 문제없이 XY좌표계를 얻을 수 있습니다.
그럼 도대체 무엇이 그렇게 문제일까요?
 여기에서는 지형 데이터와 항공사진이라고 한 2개의 데이터에 대해서 조금 설명하겠습니다. 대부분의 경우 DEM데이터는 30미터 그리드 등이 주류로 되어 있습니다. 그것은 지구를 위도・경도의 1도 사방 도형단위로 데이터를 관리하고 있기 때문입니다. 지구의 주위는 적도 바로 아래가 대체로 4만Km이므로 360도로 나누면, 1도당 111Km입니다. 그것을 한층 더 60으로 나누면 1분의 길이, 3600으로 나누면 1초당의 길이가 계산됩니다. 30.86m가 1초당의 길이입니다.(실제로는 위도가 오르면 일주의 길이가 짧아지기 때문에 더 짧아집니다.) 위도 경도 1도씩의 DEM데이터를 3600x3600화소의 화상 데이터라고 하면, 1개의 화소값을 대략 30미터 그리드의 표고 데이터로써 격납하게 됩니다.
반가운 소식을 전하자면 2009년부터 경제산업성/NASA의 사이트로부터 전세계의 DEM데이터(ASTER GDEM)를 무상으로 이용할 수 있게 되었습니다.
 한편, 항공사진의 경우는 UTM과는 다른 State Plane라고 하는 투영방법을 이용하는 것이 일반적입니다. 단, 일반적인 것이 Rectify수정된(모든 픽셀의 위치가 정확하게 위도 경도의 위치에 일치되도록 수정된)고가격의 항공・위성사진을 VR모델로 이용한다고는 생각하기 어렵습니다. 입수한 항공사진의 4코너의 위도 경도의 정보를 사용하는 것이 일반적입니다. 단, 이 경우는 항공사진의 모든 화소의 DEM의 위치가 딱 맞는 경우는 없습니다.
 즉 1)간이적인 솔루션에서는 DEM과 항공사진을 완벽하게 대면시킬 수 없습니다. 또한 2)입수한 DEM데이터와 항공사진의 4코너를 대면시키는 것 또한 GIS툴(특히 항공사진용GIS)의 숙련이 필요합니다. VR도시 모델용의 데이터가 되면 한층 더 3)GIS로부터 VR환경으로의 데이터 주고받기가 필요하게 됩니다. 사용하고 있는 GIS시스템이나 리소스 파일의 형식이 바뀌면, 한층 더 시행착오가 필요하게 됩니다. 이것이 지형 데이터와 항공사진의 합성을 어렵게 하고 있는 이유입니다.

 2007년부터 세계 여러나라의 연구자분들(16명)과 World16이라고 하는 프로젝트를 진행하고 있습니다.
각 멤버가 VR의 새로운 이용에 대한 연구・개발 성과가 매년 실시되는 Forum8의 심포지엄에서 발표되어 왔습니다.
그 중에서 최대의 문제가 항공사진을 동반한 지형 데이터의 작성이었습니다. 나라에 따라서 입수할 수 있는 데이터에 제한이 있거나 다른 시스템을 이용하고 있거나 같은 UTM이라도 수식의 정밀도가 다른 등, 처음 1년은 지형 데이터 작성만으로 매우 고생을 했습니다.
그 경험으로부터 더욱 일반적인 솔루션의 필요를 느껴, 누구라도 바로 항공사진 첨부 지형 데이터를 작성할 수 있는 툴과 파이프라인을 개발했습니다. 이번에는 그 툴의 소개입니다.

■그림1 UC-win/Road로 작성된 VR데이터를 3ds Max로 읽어들여 모션블러 등의 특수효과를 가해 렌더링을 실시함

 솔루션
여기 에서는 DEM데이터와 항공사진의 입수방법, 그 편집방법, 그리고 개발한 툴을 이용하여 UC-win/Road에서 20km사방의 항공사진 첨부 지형 데이터의 작성방법을 소개합니다. 여기에서 소개하는 솔루션은 전세계 어디에 있어도 가능합니다.

스텝1:
DEM은 위에서 설명한 것처럼 ASTER GDEM의 사이트로부터 입수할 수 있습니다 (http://www.gdem.aster.ersdac.or.jp/search.jsp). 그 사이트에서는 위도 경도 1도씩 범위의 표고 데이터가 3600x3600화소의 화상 데이터(TIF)로써 제공되고 있습니다.

스텝2:
다음에 VR모델 작성의 중심위치의 위도・경도를 준비합니다. 이것은 Google Earth로 지정하면 좌측 하단의 메뉴에 선택된 지점의 위도 경도가 표시되기 때문에 이것을 이용합니다.

스텝3:
여 기서 문제가 되는 것은 20km사방의 항공사진을 획득하기 위해서는 먼저 중심위치로부터 10km북, 10km남, 10km서, 10km동쪽 지점의 위도 경도가 필요합니다. 또 그 지점에 대응하는 DEM데이터의 위치도 필요합니다. 이것들을 계산해 주는 툴을 Excel파일로써 개발했습니다.http://world16.forum8az.com/2010/07/vr-tutorialsterrain-generation-for-uc_23.html의 사이트로부터 툴군과 튜토리얼 비디오를 다운로드 할 수 있습니다.

스텝4:
다운로드된 파일중에서 terrain calculator (blank).xlsx파일을 엽니다. 1)ASTER사이트로부터 다운로드 한 GDEM파일(때로는 복수가 됨)의 우측 상단과 좌측 하단의 위도 경도를 입력합니다. 아래 그림의 경우에서는 좌측 상단은 북위37도 서경116도, 우측 하단이 북위36도 서경115도입니다. 2)앞에서 설명한 것처럼 위도 경도에 의해 1도의 길이가 다릅니다. Google Earth에서 VR도시 모델의 중심 위치당의 1도의 위도방향, 경도방향의 길이를 조사합니다. 아래 그림의 경우에서는 위도방향1도의 길이가 110848.74미터, 경도방향1도의 길이가 89867.06미터입니다. 3)과 4)에 스텝2 중심의 위도 경도(북위36도10분17.71초, 서경115도9분0.22초)를 입력합니다.

■그림2 스텝4

스텝5:
입력후, GDEM파일의 크로핑 위치가 표시되기 때문에 Photoshop등의 화상 편집 소프트로 화상을 잘라내기 합니다.
이번 예에서는 (x,y)=(2660,2658)의 위치로부터 가로801픽셀, 세로650픽셀로 잘라내기 합니다.
이 툴을 이용할 때는 위도(Latitude)는 화상에서 Y방향, 경도(Longitude)는 화상에서 X방향이라는 점을 주의하여 주십시오.

■그림3 스텝5

스텝6:
다 음으로 항공사진의 입수입니다. 항공사진에 대해서는 Google Earth의 Pro버전을 이용함으로써 전세계의 항공사진을 입수할 수 있습니다. 이쪽도 VR도시 모델을 중심으로 한 20km사방의 화상을 획득하기 위해서 위도 경도의 위치가 필요합니다. 같은 툴상에서 이러한 정보가 계산되고 있습니다. 이번의 경우는 북위36도11분22.681초―서경115도10부20.361초(자측 상단)와 북위36도9분12.739초―서경115도7분40.079초(우측 하단)로 하는 항공사진을 Google Earth Pro의 툴로 획득했습니다.

■그림4 스텝6

스텝7:
DEM데이터는 그 자체로는 UC-win/Road로 임포트 할 수 없기 때문에 XML형식의 데이터로 변환하는 XML Terrain Maker라고 하는 툴을 개발했습니다. 스텝3에서 다운로드 한 파일내에 있는 "TerrainMaker.jar"라고 하는 파일을 더블 클릭하면 이하의 GUI가 팝업되기 때문에 스텝5에서 클릭한 DEM파일(TIF형식)을 1로, 저장하고 싶은 XML파일명을 2로, 3과 4의 슬롯에 스텝4에서 이용한 1도당의 위도 경도의 길이를 입력합니다. "START"버튼을 선택하면 20km사방의 XML데이터가 작성됩니다.(10분 정도 걸립니다)
■그림5 스텝7

스텝8:
UC-win/Road를 기동시켜 File에서 Load Terrain Patch를 선택하고 스텝7에서 생성된 XML파일을 지정하면, 지형 데이터가 UC-win/Road상에서 작성됩니다. 작성된 데이터에 File・Road Street Maps에서 스텝6에서 획득한 20km사방의 화상을 붙이기 하면, 항공사진 첨부 지형 데이터가 완성됩니다. 아래 그림은 여기서 소개한 솔루션으로 작성한 UC-win/Road의 데이터입니다.

 마지막으로
 이번 에는 스텝의 설명이 길게 되었지만, 이 파이프라인을 사용함으로써 지금까지 1일 이상 걸렸던 작업이 15분~30분으로 작성 할 수 있게 되었습니다. 종이면인 경우는 사정상 여기에서는 소개할 수 없었지만, DEM과 항공사진으로부터 다른 3D소프트에서도 이용할 수 있는 항공사진 첨부 지형 데이터를 작성할 수 있는 3ds Max플러그인도 개발했습니다. 흥미가 있으신 분은 연락하여 주십시오.

서포트 토픽스 / UC-win/Road 保守・サポートサービス関連情報
매뉴얼 드라이브에 있어서
도로 구조의 설정

 대향차선에는 선을 넘어 주행
 예를 들면 좁은 골목이나 산길 등을 주행중, 주정차나 무엇인가의 장애물을 피하고 싶을 때, 타차선에는 선을 넘게 됩니다.
이와 같은 운전을 UC-win/Road의 매뉴얼 드라이브로 하기 위해서는 도로의 작성에 약간의 공부가 필요합니다.

■그림1 차도의 상세 ■그림2 UC-win/Road에서 좁은길의 주행 ■그림3 대향차선에 선을 넘은 주행

 도로 단면의 차도폭을 확폭
 통상 UC-win/Road에서 작성한 도로를 주행하면, 대향차선으로 선을 넘어가 정상적인 주행을 계속할 수 없습니다.
바로 주행 경로가 수정되어 원래의 차선으로 되돌려집니다. 거기서 도로 단면에서 차도폭을 넓힙니다.
갓길에서 대향차선의 단부까지 주행이 상정되는 폭에 대해서 대향차선과 중첩하여 설정합니다.
 그림4는 통상의 심플한 도로 단면입니다. 이것을 그림5에서 나타내듯이 차도폭을 넓혀 대향차선과 중첩되도록 설정합니다. 차도와 차도의 사이에는 더미가 되는 노드를 삽입합니다. 그리고 각 차도는 차선의 수를 2로 하여 편도2차선으로 합니다.
 이것에 의해 평상시의 주행은 차선1을, 선을 넘을 때는 차선2를 주행하게 되며 스무즈한 차선 변경의 움직임이 됩니다.
 또한 텍스처가 중첩됨으로써 깜빡거림 가능성을 막기 위해서 아래쪽이 되는 차도와 더미 노드의 텍스처는 검정색으로 하고 검정색을 투과시켜 투명하게 해둡니다.

■그림4 통상의 도로 단면 ■그림5 차도폭을 확폭한 도로 단면
(Up&Coming '11 신록호 게재)

FORUM8