Posts tagged ·

AR

·...

FLARToolKit 2.5.0 : 마커 감지 및 성능 테스트

no comments

Marker Detecting and Performance Checking.

[ 마커 감지 테스트 ]

Flash Builder 4를 사용하여 FLARToolKit 2.5.0 버전을 테스트 해보았다. 마커 감지에 대해서는 이전보다 확실히 좋아진 것을 느낄 수 있다. 빛이 들어왔을 경우에도 보다? 잘 잡히는 것 같은 느낌이다. 그리고 일반 마커로만 사용했고, NyIdMarker도 시간이 되면 한번 테스트 해봐야 겠다.

[ 성능 테스트 ]

기본적으로 .DAE를 최초에 로딩할때 방대한 양의 데이터를 읽어들이기에 멈춤 현상이 있었다. 하지만 요번 FLARToolKit 2.5.0 버전에서는 전혀 기다릴 필요 없이 바로 뜨는 것을 확인 할 수 있다. 그리고 퍼포먼스가 확실히 좋아졌다는 걸 실감할 수 있다. 감지가 잘되기 때문에 좌우로 흔들었을 경우도 놓치지 않고 화면에 바로바로 그려주는 렌더링이 대단하다.

요즘 잠을 못자고 저녁 늦게 야식을 먹었더니 얼굴이 바로 부었네. 쯥…!
얼굴 상태보고 영상 찍어야 겠다. 귀신같다는 소리도 들은거 같은데.. ㅡㅡ

어쨌든, 성능이 향상되도록 힘쓰고 있는 멤버들에게 심심찮은 감사를 전한다.
덕분에 재미있게 시간을 보내고 있다. ^^

아래에 라이센스에 대한 부분도 있으니 체크.

FLARToolKit License

FLARToolKit is available for download and use under two licenses :

GPL License

FLARToolKit can be used for free under the GNU General Public License, v3. Source code of applications using FLARToolKit under the GPL must be provided free of charge on request.

Commercial License

Source code of FLARToolKit applications can be protected with a commercial license, offered exclusively by ARToolworks. Applications using the commercial license do not have to provide source code, but must pay a licensing fee. Contact ARToolworks at sales@artoolworks.com for more information.

FLAR Tutorial 6 : 타이포 효과 – Typo Effect

no comments

Typo Effects Using Augmented Reality.

요번 튜토리얼은 뻔한 것만 했더니 식상해서 텍스트 효과를 만들어 보았다. PV3D에서 제공하고 있는 것을 이용한 것이니 쉽게 접근할 수 있을 듯 하다. 여기서 체크해야 할 것이 있다면, Camara에 대한 부분이 FLAR과 PV3D는 다르다는 것이다.

음.. 어떻게 설명을 해야 할지는 잘 모르겠다. 같은 공간이지만 트렉킹이 존재하기 때문에 이 부분에 대해서는 나중에 정리가 좀 되면 따로 설명을 하겠다. 실은 아직 나도 잘 모르겠다. -_-;

효과는 위에서 보듯이 마커의 x 좌표를 사용해서 rotationX 축을 변경시켜주는 단순한 효과로 움직임을 표현하고 마커가 사라지게 되면 텍스트가 문맥을 맞춰서 배치가 되는 것을 확인 할 수 있을 것이다.

필요한 소스를 먼저 다운로드 하자. : 마커 변경 됨.
Flash Source, Classes, Marker Image

아래 클래스는 PV3D에서 지원해주는 그래픽 폰트 클래스로 효과를 줄 것이다.
Letter3DMaterial
Text3D
HelveticaBold

그럼 기본적인 코드를 살펴보자.
도큐멘트 클래스 확장 클래스인 “PV3DARApp.as” 이다.

58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
private function _onEnterFrame(e:Event = null):void {
	_capture.bitmapData.draw(_video);
 
	var detected:Boolean = false;
	try {
		detected = _detector.detectMarkerLite(_raster, 80) && _detector.getConfidence() > 0.5;
	} catch (e:Error) {}
 
	if (detected) {
		_detector.getTransformMatrix(_resultMat);
		_markerNode.setTransformMatrix(_resultMat);
		updateMarkerNode(true);
	} else {
		updateMarkerNode(false);
	}
 
	_renderer.render();
}
 
protected function updateMarkerNode(flag:Boolean = true):void
{
	/** 하위 클래스에서 처리하도록 함 */
}

위 코드를 살펴보면 detected 멤버를 확인 할 수 있는데, 이 멤버가 좌표와 마커 인식을 처리에 대한 Boolean 리턴값을 갖는 것으로서 이것을 통하여 하위 객체인 “PV3D_FontEffect.as” 의 updateMarkerNode(flag:Boolean)를 호출하여 아래와 같이 제어하게 되는 것이다.

153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
/** 상위 클래스에서 Boolean 값으로 처리를 하도록 설정이 되어있다. */
protected override function updateMarkerNode(flag:Boolean = true):void
{
	if (flag)
	{
		if (!isVisibleMarker)
		{
			/** 분산 효과 처리 */
			dispersionWords(words1);
			dispersionWords(words2);
			dispersionWords(words3);
 
			isVisibleMarker = true;
		}
	}
	else
	{
		if (isVisibleMarker)
		{
			/** 초기화 효과 처리 */
			writeWords(words1);
			writeWords(words2);
			writeWords(words3);
 
			isVisibleMarker = false;
		}
	}
 
	if (_markerNode.x > 0)
		dispObj3D.rotationZ += 2;
	else
		dispObj3D.rotationZ -= 2;
}

위와 같이 작성이 되면, 마커가 보이고, 안 보이고를 체크하여 효과가 이루어지는 것이다.
타이포의 분산 또는 쓰기 효과를 처리할 수 있게 된다.

요번 포스트도 단순한 효과지만 같은 것만 계속하니 지루해서 만들어 보았다. ^^

작성 후기:
이 코드는 내가 어디에서 본 것을 토대로 작성한 것이다. wonderfl에서 초기 코드를 본 것 같다. 그것으로 FLAR 형태로 변경을 하여 효과를 만들어 본 것이다. 좀 더 생각하면 PV3D에서 효과 낸 것을 자유자재로 FLAR로 가져와 컨트롤 할 수 있을 듯 싶다. 실험적인 것들을 더 만들어 봐야 겠다.

증강현실의 재미있는 효과 모음.

no comments

Interesting Effects of the Augmented Reality