개요 (Summary) - NabiEILAB/ProjectionMappingSimulator GitHub Wiki

본 프로그램은? (About Program)

https://github.com/NabiEILAB/ProjectionMappingSimulator/blob/master/wiki/Summary/screenshot01.png

빔 프로젝터를 이용해 영상물을 특정한 오브젝트에 투영시키는 프로젝션 맵핑을 본 시뮬레이션 프로그램을 통해 사용자가 경험할 수 있다. 사용자는 프로그램과 영상물, 3D 모델링 파일만으로도 별도의 비용 없이 손쉽게 프로젝션 맵핑에 대한 체험 및 시뮬레이션을 할 수 있다.

Simulating projection mapping, a projecting video onto specific object
using beam projector through this computer program.
with multimedia video file, 3D modeling file and this solution program
you can experience projection mapping without any expensive cost.

구현에 쓰인 레퍼런스 (References)

openFrameworks

https://github.com/NabiEILAB/ProjectionMappingSimulator/blob/master/wiki/Summary/screenshot02.png
openFrameworks는 C++ 기반의 오픈소스 라이브러리로 렌더링과 관련된
코드의 흐름이 매우 단순하며 여타 C++ 기반의 주요 라이브러리들과
openFrameworks와의 연계효율을 높힌 Addon이라는 개념의 오픈소스가 풍부하다.
(ex. 영상처리 라이브러리인 OpenCV와 openFrameworks가 연계된 ofxOpenCv 에드온)
본 프로그램이 3D 렌더링이 주 목적이며 openFrameworks의 손쉬운 3D 렌더링 코드에 주목하여
프로그램 설계에 이용하였다.

openFrameworks is a C++ based open source library especially for
rendering process with a simple and readable code flow.
openFrameworks also has a additional open sources called 'Addon' which
linked with any other mainstream C++ libraries
(ex. ofxOpenCv : openFrameworks addon which is linked with OpenCV image processing library)

OpenGL & GLSL (OpenGL Shading Language)

https://github.com/NabiEILAB/ProjectionMappingSimulator/blob/master/wiki/Summary/screenshot03.png
OpenGL은 2D, 3D 그래픽스 연산과 관련된 API로 앞서 이용된
openFrameworks 자체적으로 OpenGL과 연계하여 사용할 수 있으며
이용자의 편의를 위해 많은 OpenGL코드가 openFrameworks에 맞추어 함수화되어 제공된다.
GLSL은 쉐이더 언어로 본 프로그램에서 프로젝션 맵핑과 직접적으로 관계된
텍스쳐 연산은 모두 쉐이더를 통해 이루어지는만큼 쉐이더는 핵심적인 요소이다.
마찬가지로 openFrameworks 자체적으로 OpenGL을 제공하는만큼
쉐이더 언어인 GLSL도 기본적으로 openFrameworks가 제공한다.

OpenGL is API about 2D, 3D graphic calcuation
openFrameworks itself is linked with OpenGL
and for the convenience from a programmer's point,
many OpenGL codes are refined as openframeworks style method.
GLSL is shader programming language which is playing important role
in calculating texture part in this program.
same as OpenGL, GLSL is included in openFrameworks fundamentally.