krpano - kmakemultires 도구 사용법

사진/360 파노라마 2012.08.12 19:56 Posted by 드론쟁이 푸른하늘이

360*180 파노라마 뷰어를 만들기 위해 krpano를 사용할 때 가장 먼저 사용하는 도구는 여러가지 droplet입니다.  Droplet 이란, 파노라마 파일을 끌어다 놓으면 된다(drag & drop)는 뜻으로, 적당한 파노라마 파일을 끌어 놓기만 하면 왠만큼 쓸만한 파노라마 뷰어파일을 만들 수 있습니다.

  • MAKE PANO (NORMAL) Droplet - 가장 일반적인 360도 풀스크린 파노라마용. 파노라마 전체를 한꺼번에 불러들인 뒤 실행됨. 기본 버튼이 포함되어 있음. Flash/HTML5 공용
  • MAKE PANO (MULTIRES) Droplet - 다중해상도 파노라마용. 필요한 부분만 먼저 읽어들인 뒤 실행. (속도가 빠름). 파노라마 파일의 크기 제한이 없음.  Flash/HTML5 공용
  • MAKE PANO (SINGLESWF) Droplet - 필요한 모든 것을 swf  플래시 파일에 몽땅 집어 넣음. 아웃풋 파일이 swf 와 html 단 두개. Flash 전용. 기타는 MAKE PANO (NOMAL) Droplet 과 동일.
  • MAKE VTOUR (MULTIRES) Droplet - 여러개의 파노라마파일을 각각 다중해상도 파일로 만든 후, 가상 투어로 연결. 버튼, thumbnail 단추, 빙맵, 자이로 플러그인 기본 제공. 기타는  MAKE PANO (MULTIRES) Droplet 과 동일
  • MAKE OBJECT Droplet - 다중해상도 파일을 만들어 줌/회전이 가능한 object movie 생성. Flash 전용

이 droplet은 기본적으로 배치파일입니다. 이 배치파일을 열어보면 가장 핵심적인 부분은 kmakemultires 라는 도구라는 걸 알 수 있습니다. 이름이 의미하는 것은 파노라마 사진을 다중 해상도(multi resolution) 사진으로 만드는 도구인 것 같지만, 설정만 바꾸면 위에서 설명한 것을 포함해 파노라마 뷰어 관련한 거의 모든 것을 해결하는 데 가장 중요한 도구입니다.


kmakemultires 이 할 수 있는 작업이 많으므로 어떠한 작업을 할 것인가 하는 내용은 별도의 설정파일(*.config)을 만들어 이 설정파일을 파라미터로 넘기는 방식으로 사용합니다. 즉, 이 설정파일에 어떠한 내용을 담느냐에 따라 다양한 작업을 수행할 수 있으며, 위의 Droplet 들을 비교해 보면  단순히 설정파일만 다를 뿐이란 것을 알 수 있습니다.


kmakemultires의 기능은 다음과 같습니다.

  • 다중 해상도 영상 제작, 타일크기/레벨숫자 최적화
  • spherical/cylindrical 영상을 cubical 로 변환 (품질향상, 속도향상, HTML5용)
  • 추가적으로 특별한 크기의 영상 생성(예 : 모바일용)
  • 프리뷰용 영상 생성
  • 아이콘(Thumnail) 영상 생성
  • 라이센스가 포함된 뷰어파일 생성
  • 모든 파일을 삽입한 플래시 뷰어파일 생성
  • EXIF GPS 정보를 읽어 XML에 전달
  • Autopano 영상의 EXIF 정보 읽어옴
  • 템플릿 기반의 HTML 파일 생성
  • 템플릿 기반의 XML 파일 생성
  • 추가적인 HTML/XML 파일 복사

kmakemultires의 사용법은 아주 간단합니다.


  • kmakemultires -config=###.config [options] inputfiles

  • 그냥 설정파일을 지정하고, 파일들 이름만 지정하면 됩니다. 


    대신 설정파일(.config)는 아주 복잡합니다. kmakemultires 가 할 수 있는 기능이 많은 만큼 지정할 수 있는 설정도 다양하기 때문입니다. 설정파일에 대한 상세한 내용은 여기를 읽어보시면 됩니다. 아래는 간략하게 정리한 것입니다. 


    설정파일에 들어가는 문장은 3가지 종류입니다. 가장 중요한 것은 "setting=value" 형태의 문장입니다. 말 그대로 어떤 변수에 값을 지정하는 형태입니다. 두번째는 #으로 시작하는 문장으로 이건 그냥 comment입니다. 마지막으로 include 문이 있는데, 별도의 파일로 저장된 것을 그대로 읽어들이는 것입니다.

    • 입력되는 영상에 대한 설정

    panotype=autodetect, sphere, cylinder...    파노라마 종류의 설정

    hfov=360, vfov=auto, voffset=0      360*180 파노라마가 아닌 경우 설정할 때 사용. 

    • 프로세싱 설정 ???

    makescenses=false    여러장의 파노라마를 합쳐 하나의 scene으로 작성할 때. ??

    frames=false     멀티프레임 혹은 오브젝트무비를 제작할 때. 모든 이미지가 한장의 사진(애니메이션)에포함된 프레임으로 취급됨


    • 포맷변환 설정

    converttocube=true 자동으로 큐브형태로 변환. 속도향상, HTML5 지원

    converttocubelimeit=360x120  이하의 이미지는 큐브형태로 변환하지 않음


    • 다중해상도 설정

    multires=true 다중해상도 사용여부

    tilesize=auto 타일크기 자동으로 설정 혹은 256-1024로 설정


    • 다중해상도 XML

    progressiveloading=auto, true, false. false가 되면 현재 설정된 해상도의 영상부터 읽어들임

    xmlimageparameter=    xml의 <img...> 노드에 들어갈 추가적인 파라미터. multiresthreshold를 달리할 때 사용.

    • Output 영상 설정

    tilepath=%inputpath%/%basename%.,,,

    • Preview 영상 설정

    preview=true, 

    cspreview=true Cubestrip preview

    previewsmooth=25

    • Custom cube image... 모바일용 아래는 예제

    customimage[mobile].path=%INPUTPATH%/%BASENAME%.tiles/mobile_%s.jpg customimage[mobile].res=1024 

    customimage[mobile].imagesettings=jpegquality=82 jpegsubsamp=444 jpegoptimize=true customimage[mobile].xml=[NL][TAB][NL]

    • Thumnail 영상 설정

    makethumb=false. 

    • XML output 설정 

    xml=true   XML 파일을 생성함

    xmlpath=%INPUTPATH%/%BASENAME%.xml


    • XML 템플릿/스킨 설정 ???
    • HTML output 설정

    html=true

    htmlpath=%INPUTPATH%/%BASENAME%.xml

    • HTML 템플릿 설정 ???
    • Embedded SWF File 설정

    buildembeddedswf=false  라이센스파일과 데이터를 포함해 하나의 SWF를 만들 것인지.

    buildembeddedswf_files= xml, skin, ... 어떤 파일을 포함시킬 것인지

    embedorderlookat ??

    kprotectclparameters ??

    • 기본 설정

    html5=auto true, false. HTML5 뷰어를 포함시키고 사용할 것인지. true이면 항상 html5로 수행

    embedlicenses=true  뷰어 파일에 라이센스 파일을 포함시킴. false이면 라이센스파일을 동일 디렉토리에 복사해둠.

    parsegps=true EXIF 로부터 GPS 자료를 읽어 파노라마에 넣음.

    fliterbasename=true %BASENAME%에서 공백 등을 '_'로 대치. 다른 시스템간 호환을 위함

    cubeshortsyntax=true   <cube url="pano_%s.jpg">을 사용하여 간단하게.

    krpanoswf=krpano.swf  base krpano.swf에 대한 Path.

    copyswf=true    krpano.swf 를 output 폴더에 복사

    renamedswf=false     krpano.swf의 이름을 %BASENAME%으로 변경

    copylicense=true      krpano.license, krpano.license.js를 output 폴더에 복사. renamedswf=true 일때는 이름이 동일하게 바뀜. embedlicenses=true 일 경우에는 무시됨

    askforxmloverwrite=true 기존의 xml 을 덮어쓸때 물어볼 것인지

    quiet=false   콘솔없이 수행됨

    waitkey=false    마지막에 키를 눌러야 콘솔 사라지게 함

    tempdir=...

    • 영상 필터링

    filter=LANCZOS, POINT, LINEAR, CUBIC...     저해상도 영상 생성시 사용하는 필터

    jpegquality=85

    jpegsubsamp=422 파일사이즈를 줄이기 위한 JPEG chroma subsampling 방식. 444,422,420,410 등

    jpegoptimize=true JPEG Hoffman 압축테이블을 최적화함. JPEG파일 작아짐. 파일전체가 RAM에 올라가야 하므로, 매우큰 입력영상을 32비트 머신에서 처리할때는 끄는게 좋음.

    jpegprogressive=flase   JPEG 인코딩시 progressive 방식 사용. 파일크기는 작아지지만, 속도가 느려짐

    manualjpegcompression=false 


    ====

    대략 정리를 해봤는데, 여기에서 kmakemultires.exe로 할 수 있는 것은 원래의 파노라마 파일을 불러 들여서, krpano 뷰어에 적합한 파일로 변환하는 게 주 임무라고 할 수 있습니다. 설정파일을 어떻게 설정하느냐에 따라 어떤 플랫폼을 지원할지, 성능은 어떠할지 등이 결정된다고 할 수 있습니다. 다만, 이 파일로는 뷰어가 어떤 모양이 될지, 어떻게 동작할지에 대한 제어는 전혀 없습니다. 이건 별도의 xml 파일로 제어해야 합니다. 사실 krpano의 핵심은 이 xml 파일이라고 할 수 있겠네요. 이 글에 적은 config 설정은 아주 기본적인 사항만 알아도 크게 문제가 없을 것 같습니다.


    민, 푸른하늘

    댓글을 달아 주세요

    1. 이길재  수정/삭제  댓글쓰기

      한글은 몇번 읽어서 이해가 가는데
      영어부분은 읽어도 모르겠네요. 아무뜬 좋은 정보 감사합니다.~

      2012.08.19 00:51 신고
    2. Favicon of http://kps7942.blog.me BlogIcon 나래사랑  수정/삭제  댓글쓰기

      파노라마 배워보고싶은데 엄두가 안나네요 ㅜㅜ

      2013.10.20 06:02 신고

    BLOG main image
    드론과 지도
    드론이 세상을 바꾸고 있습니다.드론의 활용처가 계속 넓어지고 있고, 글로벌 기업들의 참여가 많아지고 있으며, 새로운 기술들이 속속 등장하고 있습니다. 하지만 우리나라의 드론 산업은 일부 기업을 제외하면 중국에서 생산된 드론을 가져다가 조립하는 수준이 대부분입니다. 드론은 하드웨어, 소프트웨어, 데이터처리가 복합된 기술입니다. 어떤 기술들을 어떻게 조합할지에 성패가 달렸죠. 5년뒤 10년뒤에 이 블로그엔 어떤 글이 적힐까요? 그것이 궁금합니다.
    by 푸른하늘이
    Profile for bluesky61

    달력

    «   2018/06   »
              1 2
    3 4 5 6 7 8 9
    10 11 12 13 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28 29 30

    카테고리

    전체보기 (1585)
    구글어스 (829)
    공간정보 (235)
    사진 (103)
    드론/쿼드콥터 (239)
    지오캐싱 (47)
    기타 (131)
    • 4,433,656
    • 244489
    TNM Media textcube get rss

    드론과 지도

    푸른하늘이's Blog is powered by Tistory. / Supported by TNM Media.
    Copyright by 푸른하늘이 [ http://www.ringblog.com ]. All rights reserved.

    Textcube TNM Media
    푸른하늘이's Blog is powered by Tistory. Designed by Qwer999. Supported by TNM Media.