오픈프레임웍스

오픈프레임웍스(openFrameworks)는 C++를 기반으로 한 오픈 소스 라이브러리로서 "창의적인 코딩"을 위해 디자인되었다. 오픈프레임웍스는 C++로 작성되었으며, 윈도우, Mac OS X, 리눅스에서 작동하는 크로스 플랫폼 소프트웨어 프레임워크이다. 오픈프레임웍스는  Zachary Lieberman url=https://web.archive.org/web/20100709233123/http://thesystemis.com/,  Theo Watson,  Arturo Castro, 그리고 오픈프레임웍스 커뮤니티에 의해 공동 개발되었다.

**역사**
오픈프레임웍스(OpenFrameworks) v0.01 은 Zachary Lieberman 에 의해 2005년 8월 3일에 릴리스되었다. 2006년 2월에 버전 v0.03은 뉴욕에서 Parsons School of Design의 학생들에 의해서 사용되었다. 저자에 의하면 다음에 의하여 오픈프레임웍스는 개발되었다.
원문 :
(for) folks using computers for creative, artistic expression, and who would like low level access to the data inside of media in order manipulate, analyze or explore. That audience we felt was significantly underserved by the current crop of C++ libraries.
번역 :
컴퓨터를 사용해 창조적이고 예술적 표현, 그리고 미디어 데이터를 조작, 분석, 탐구 하기 위해 저수준 액세스를 좋아하는 사람들을 위해서 만들어졌다. 우리가 느끼기에 현재의 C++라이브러리는 이러한 일을 하기에는 적합하지가 않다.

**특징**
오픈프레임웍스는 기존의 다양한 라이브러리를 통합하여 손쉽게 사용가능하도록 설계되어있다. 그래픽에는 OpenGL이, 오디오 작동에는  rtAudio를, 글꼴에는 프리타입이, 이미지 작업에는  freeImage가, 그리고 비디오 재생에는 GStreamer(리눅스), 퀵타임(맥) 혹은  videoInput(윈도우) 이 사용되었다.

**설치**
오픈프레임웍스는 별도의 IDE를 제공하지 않으며, 별도의 설치과정이 존재하지 않고, 소스 코드 형태로 제공이 된다. 오픈프레임웍스를 시작하는 과정은 다음과 같다.
# C++를 위한 컴파일러를 선택한다.
# 자신의 운영 체제에 적합한 컴파일러/IDE를 다운로드하여 설치한다.
# 최신 버전의 오픈프레임웍스 릴리즈를 다운받는다.

**운영 체제별 IDE 설치**
 윈도우:
윈도우에서는 마이크로소프트 비주얼 스튜디오나, QT Creator를 설치한다.- https://openframeworks.cc/setup/vs/ VS 
void ofApp::setup(){
	cout 
하지만 다음의 코드가 오픈프레임웍스의 언어를 잘 표현해 주는 좋은 예라고 할 수 있다.
아래의 코드를 실행하기 위해서는 프로젝트 폴더 내 bin/data에 폰트 파일을 넣어야 한다. 본인이 원하는 폰트를 사용하면 된다.
//ofApp.h
#pragma once
#include "ofMain.h"
class ofApp : public ofBaseApp{
	public:
		void setup();
		void update();
		void draw();
		// ...기타 함수 생략
		ofTrueTypeFont font;
};
//ofApp.cpp
#include "ofApp.h"
//--------------------------------------------------------------
void ofApp::setup(){
	font.loadFont("verdana.ttf", 32);
}
//--------------------------------------------------------------
void ofApp::update(){
}
//--------------------------------------------------------------
void ofApp::draw(){
	ofSetColor(0, 255, 0);
	font.drawString("Hello World", 100,100);
}

**추가 기능(addons)**
오픈프레임웍스에는 기본 라이브러리 이외에도 다양한 추가 기능이 제공된다. FAT 버전을 다운받게 되면 addons 폴더 안에 추가 기능이 기본적으로 설치가 된다. 기본적으로 설치되는 addons 중 몇 가지는 아래와 같다.- ofxAssimpModelLoader : 3ds, obj 등의 3D 모델링 데이터를 로드하고 관리한다.- ofxXmlSettings : xml 파일을 저장하고 불러온다.- ofxOsc : OSC 프로토콜을 사용한 통신을 돕는다.- ofxOpenCv : 인텔 OpenCV 라이브러리를 통한 컴퓨터 비전의 사용을 지원한다.- ofxNetwork : UDP와 TCP 통신을 통한 크로스 플랫폼 네트워크를 위 코드를 포함한다.- ofxVectorGraphics : CreEPS를 위한 내용을 포함한다.- ofxGui: 그래픽 유저 인터페이스를 만들어 사용할 수 있도록 돕는다.- ofxKinect: MS에서 엑스박스와 함께 개발한 키넥트 센서를 사용할 수 있도록 한다.

**각주**

**라이선스 정책**
오픈프레임웍스는 MIT 허가서 아래에 관리된다. 프레임워크에 사용된 라이브러리는 각각의 자신들의 라이선스를 가지고 있다.

**관련 프로젝트**
  graffiti analysis project - Evan Roth-  audio space - Theodore Watson-  drawn - Zach Lieberman-  colors - Cory Arcangel-  re-gaze - Chris Sugrue-  L.A.S.E.R. Tag - Theo Watson/Graffiti Research Lab-  EyeWriter - Free Art and Technology (F.A.T.), 오픈프레임웍스, Graffiti Research Lab, The Ebeling Group, TEMPTONE-  Magic Torch - Alberto Garc√≠a, Julio Obellerio, Mart√≠n Nadal , Alberto Cort√©s-  Memento - Jeldrik Schmuch, Ulrike Gollner-  Le Sacre du Printemps - Klaus Obermaier, Ars Electronica Futurelab, Chris Sugrue, and Matthias Bauer.-  TouchKit Multitouch System - NOR_/D

**참고**
 프로세싱 - 자바 기반의 프로그램으로, 전자예술이나 비주얼 디자인 커뮤니티를 위하여 제작되었다.- 신더 - C++ 기반의 프레임워크로, 보다 진보된 시각화가 가능하다.

**외부 링크**
  openFrameworks.cc-  openFrameworks forum
분류:C++ 라이브러리
분류:3차원 컴퓨터 그래픽스
분류:API
분류:MIT 라이선스 소프트웨어
분류:자유 라이브러리