카테고리 보관물: NEMO

[NEMOSHELL] Steam, XBMC, MS office, … 데모 공개!

오늘 촬영한 NEMOSHELL 데모 영상을 공개합니다. WAYLAND 윈도우 프로토콜을 지원하는 플랫폼을 개발한 보람을 드디어 느끼게 되는군요^^

첫 번째는 두 개의 키보드/마우스와 가상키보드/터치를 이용하여 두 명이 동시에 게임을 진행하는 영상입니다.

두 번째는 WINE 기반의 PlayOnLinux 로 동작시킨 MS 오피스를 사용하는 영상입니다.

세 번째는 Steam, XBMC 그리고 Chrome 을 동시에 사용하는 영상입니다.

다음 달에는 훨씬(!) 멋진 데모를 공개할 예정입니다. 기대하세요!

[WAYLAND] HARDWARE COMPOSER (in ANDROID)

오늘은 안드로이드에서 HARDWARE COMPOSER (HWC) 라고 부르는 기능에 대해 소개하고자 한다. 사실 이 기능은 안드로이드 3.0 에서 소개된 기능이긴 하지만, 유사한 기능이 데스크탑에서 꽤 오래전부터 사용되어 왔었고, 현재 WESTON 에도 유사한 기능이 들어가있다. 암튼 이게 어떤 역할을 하고, 어떤 장점을 가지는지 살펴보자.

hwc0

위 그림은 HWC 가 없는 일반적인 하드웨어 가속을 이용한 렌더링 과정이다. 하나의 배경화면과 두 개의 윈도우가 있고, 각각 텍스처를 하나씩 할당받아 현재의 위치에 렌더링된다. 렌더링된 프레임버퍼는 HDMI 를 통해 디스플레이로 전송되어 결국 화면에 나타나게 되는데, 사실 이 정도만 해도 충분히 나쁘지 않은 결과를 보여준다. 하드웨어 가속(GPU)을 사용하기 때문에 프로세서(CPU)의 부담을 줄일 수 있고, 또한 충분히 빠르고 효과적이다. 하지만, GPU로 CPU의 역할을 대체하는 것만이 최선일까? 결국 GPU 또한 성능의 한계가 있고, 많은 전력을 사용하는 장치일뿐이다. 그래서 GPU를 보다 효과적으로 사용하기 위한 다양한 연구가 진행 중이고, 그 중에 비교적 작은 노력으로 작지 않은 효과를 볼 수 있는 방법 중의 하나가 바로 HWC 이다. 아래 그림은 HWC 와 하드웨어 가속을 이용하여 렌더링하는 과정을 나타내고 있다.hwc1

앞의 예제와 동일하게 하나의 배경화면과 두 개의 윈도우가 있지만, 배경화면을 제외한 두 개의 윈도우만 하드웨어 가속을 이용하여 렌더링하고 있다. 이럴 경우 우리가 얻을 수 있는 장점은 무엇일까? 예를 들어, 배경화면에 초당 60 프레임의 애니메이션이 들어가있는 경우를 상상해보자. 만약, HWC 가 없다면 전체화면을 덮고 있는 배경화면이 변경되었기 때문에, 프레임버퍼에 배경화면을 덮어씌우고 그 위에 윈도우 두 개를 다시 덮어씌워야 원하는 결과를 얻을 수 있다. 이런 과정을 GPU 가 초당 60번씩 해야한다. 하지만, 아래 그림처럼 HWC 를 사용하는 경우라면 어떨까? 배경화면만 변경되고 두 개의 윈도우는 변경사항이 없기 때문에 GPU 는 프레임버퍼를 다시 렌더링하지 않아도 되고, 배경화면만 HDMI 를 통해 디스플레이로 전송하면 동일한 결과를 얻을 수 있다. 즉, GPU 가 했던 컴포지팅의 일부를 디스플레이가 제공하는 오버레이 기능으로 대체함으로써 GPU 의 사용량을 극단적으로 줄일 수 있게 된 것이다. 그렇다면 원하는 모든 컴포넌트(배경화면, 윈도우, 마우스 포인터, …)에 독립적인 오버레이를 지정하면 더 좋지 않을까? 여기에는 다음과 같은 몇 가지 제약 사항이 있다.

  • 첫 번째는 디스플레이가 지원하는 오버레이의 수가 제한되어 있다. (약 2~4개 정도이지만, 대부분 하나는 마우스 포인터를 위해 할당해서 사용되고 있다.)
  • 두 번째는 회전과 같은 변형을 지원하지 않는다. 만약에 특정 윈도우가 기울어져 있다면 현재의 디스플레이가 제공하는 오버레이 기능은 사용하기 힘들다.
  • 세 번째는 중간에 끼어있는 컴포넌트는 오버레이를 사용할 수 없다. 예를 들어, 배경화면과 앞에 있는 윈도우가 하드웨어 가속을 사용한다면, 뒤에 있는 윈도우를 오버레이로 지정해서 동일한 결과를 얻기는 어려워진다.

이 외에도 여러 가지 제약사항이 더 있을 수 있겠지만, 앞으로 HWC 기능이 더 활발히 사용된다면 디스플레이 쪽에 더 유용한 기능이 들어갈 수 있지 않을까 기대해본다.

마지막으로 정리하면, 우리가 앞으로 기억해야 가장 중요한 사실은 기존에 CPU 와 GPU 가 나눠서 하던 컴포지팅에 디스플레이까지 참여하게 되었다는 것이다. 이는 컴포지팅 과정을 좀 더 복잡하게 만들겠지만, 그만큼 더 효과적으로 만들 수 있을 것으로 기대된다. 이제 플랫폼 개발자들은 CPU, GPU 그리고 디스플레이의 장단점을 파악해 보다 효과적인 컴포지팅 기술을 연구/개발해야 할 것 같다.

[NEMOSHELL] 우선체험 및 공동연구 모집

NEMOSHELL은 터치기반 디스플레이 및 다중사용자를 지원하는 개방형 SW플랫폼입니다.
지난 달 ITS에서 공개한 이후 교내 까페/도서관 사용성평가 및 HCIK 데모를 통해 많은 분들의 관심을 받고 있습니다.

저희 NEMO-UX 팀은 본 플랫폼의 1) 다양한 활용 사례를 발굴하고, 2) 보다 많은 사용자들에게 새로운 사용자 경험을 제공하기 위해 “우선체험 및 공동연구 팀” (일반 사용자/개발자, 학교, 회사)을 모집하고자 합니다.

함께 하시게 되면, 현재 개발 중인 NEMOSHELL SW플랫폼을 다양하게 활용하실수 있도록 적극 지원해드릴 계획입니다.
(원활한 진행을 위해 모집대상은 “서울/경기”로 한정하고, 추후에 누구나 사용할수 있도록 온라인상으로 배포할 예정입니다)

  • 문의: 소속, 이름, 휴대폰번호, 함께하고 싶은 내용을 편하게 적어서 이메일로 보내주세요!
  • 이메일: nemoux00@gmail.com

많은 참여바랍니다. 감사합니다. 🙂

[NEMOSHELL] 안드로이드 지원!!!

NEMOSHELL 에서 드디어 안드로이드를 지원하기 시작했습니다! 예전에 간단히 에뮬레이팅 방식을 이용해 안드로이드를 시연한 적이 있지만, 저희가 원하는 것은 개별 앱을 띄우는 것이었는데, 드디어 크롬을 통해 가능하게 되었습니다. (인텔 & 구글에 감사^^) 아래에 간단히 앵그리버드를 사용하는 영상을 첨부하여 드리니 관심있으신 분들은 참고하시기 바랍니다.

크롬은 ozone-wayland 기반으로 동작하는 것이고, 안드로이드 앱은 archron 확장 기반으로 동작하고 있습니다.

[NEMOSHELL] 성균관대학교 교내까페 데모 (20141203-05)

2014년 12월 3일부터 5일까지 성균관대학교 교내에 있는 가든브릿지라는 까페에서 데모를 하였습니다. 3일간 기대 이상으로 많은 분들이 설문지도 작성해주시고, 관심가져주셔서 저희에게는 매우 뜻깊은 행사였던 것 같습니다. 아래에 데모 진행하면서 간단히 촬영한 영상을 올려드립니다.

조만간 홍대에 위치한 까페에서도 프로모션을 진행할 생각이고, 이외에도 다양한 프로모션을 계획 중입니다.

[NEMOART] 3D 모델링/렌더링 앱 ‘네모아트’

저희가 2013년도에 개발했던 큐브 기반 3D 모델링/렌더링 앱을 소개드립니다. 초기 목표는 사용자가 스마트폰을 이용해서 레고블럭을 조립하듯이 3차원 큐브를 쌓아서 오브젝트를 만들고, 이를 렌더링 서버에 요청하면 멋있게(!) 렌더링까지 해주는 거였지만, 렌더링 서버의 유지비가 무지막지하여 그 부분은 제거하고 현재는 3D 프린팅을 위한 모델링에 주로 활용되고 있습니다. (네모아트의 가장 큰 장점은 3D 나 디자인에 경험/재능이 없는 일반인들도 쉽게 디자인을 할 수 있다는 것입니다. 이러한 장점을 이용해서 현재는 초/중/고 학생들에게 3D 프린터를 교육할 때 주로 활용되고 있습니다.)

네모아트를 사용하는 과정은 다음과 같습니다.

howdoesitwork1

우선, 3차원 큐브를 이용하여 원하는 오브젝트를 디자인하고, (여기에서 바로 STL 이나 COLLADA 파일로 익스포트하면 3D 프린터에서 바로 출력하실 수 있습니다.)

howdoesitwork2

이를 원하는 사진에 적절히 배치한 뒤 렌더링을 요청하면, (사진 합성 외에 3D 공간에서 전체를 렌더링하는 기능 또한 제공합니다.)

howdoesitwork3

위와 같이, 영화 CG 를 제작할 때 주로 사용되는 전역 조명(광선 추적) 기법을 이용하여 렌더링한 결과를 받아볼 수 있습니다. (오른쪽의 렌더링된 결과물을 보시면, 실사 느낌이 나는 명암과 반사 효과를 확인하실 수 있습니다.)

howdoesitwork4

위의 그림은 네모아트를 이용하여 3D 오브젝트를 모델링하고 렌더링하는 전체 과정을 나타내고 있습니다.

사실, 네모아트 외에도 3차원 큐브 기반 모델링을 지원하는 앱은 여러 개가 있지만, 네모아트에는 여러 가지 편리한 기능들이 많이 들어가 있습니다. 그리고 현재 배포 중인 네모아트의 다음 버전에서는 보다 편리한 기능과 성능 개선이 이루어졌고, 몇 가지 기능을 새로이 추가해서 내년(2015년도) 중에 공개할 계획입니다.

아래는 작년에 앱을 공개할 당시 만들었던 소개 영상과 모델링 영상입니다. 관심있으신 분들은 참고하시기 바랍니다.

앞으로 3D 프린팅과 3차원 기반의 가상/증강 현실이 점점 더 활성화되기 시작하면 3D 모델링에 대한 관심은 더욱 높아질 것이고, 여기에서 네모아트는 3D 모델링에 대한 초기 진입 장벽을 낮추고, 또한 외국에서는 이미 꽤 널리 퍼져있는 픽셀아트 문화를 선도할 수 있을 것으로 기대됩니다.

https://itunes.apple.com/kr/app/nemoart-3d/id635166616?mt=8

[NEMOSHELL] 미래부 R&D 성과확산대전 데모 (20141105)

2014년 11월 5일부터 7일까지 3일간 킨텍스에서 전시회가 있었습니다. 저희도 이런저런 기회로 참석하게 되었고, 행사 자체가 크진 않아서 많은 분들을 만나뵙진 못했지만, 생각보다 많은 분들이 관심있게 봐주시고, 좋은 말씀 많이 해주셔서 즐거웠던것 같습니다. 아래는 저희가 이번 행사에서 시연한 데모를 간단히 촬영한 동영상입니다. (아이폰으로 촬영)

이번에 데모한 기능은 다음과 같습니다.

  • 다중 모니터 지원..3개의 GPU 에 3개의 모니터를 각각 하나씩 연결 (47인치 테이블/9인치 모니터 2개)
  • 다중 터치 패널 지원..3개의 모니터에 3개의 터치패널을 각각 하나씩 연결
  • 다중 키보드/마우스 지원..2개의 키보드/마우스를 동시 지원
  • 다중 가상 키보드 지원..여러 개의 가상 키보드 동시 지원
  • 다중 GPU 지원..하드웨어 가속 지원 (prime/dma-buf 지원)
  • X86/ARM 지원..MESA/DRM 기반 하드웨어 가속 렌더링 지원, 프레임버퍼 기반 렌더링 지원
  • 앱 서비스 지원..GSTREAMER 기반 동영상 재생 지원, X/WAYLAND 호환, QT/GTK 호환, 크롬 브라우저 지원(안드로이드 앱 지원 예정), …

NEMOSHELL 과 관련된 구체적인 계획(배포, 상업적인 사용, …)은 조만간 공개할 예정이고, 관련 문의사항은 nemoux00@gmail.com 로 해주시면 답변해드리도록 하겠습니다.