2012年6月13日水曜日

webGLレッスンサイトまとめ


HTML5による物理シミュレーション環境の構築 ~WebGLライブラリThree.js 入門


http://www.natural-science.or.jp/article/20120220155529.php


Hack The WebGL (WebGL勉強会)


https://sites.google.com/site/hackthewebgl/learning-webglhon-yaku/the-lessons

Google Experimental
http://www.chromeexperiments.com/webgl

gl.enchant.js β版
http://9leap.net/games/1109


MOZILLA DEVELOPER NETWORK


https://developer.mozilla.org/ja/WebGL

Three.jsとblenderによるwebGL-CAクリエーターズブログ-
http://ameblo.jp/ca-1pixel/entry-11247273137.html?frm_src=thumb_module

2012年6月7日木曜日

Aptana Studio 日本語化

http://studio-fun.net/2011/02/13/839/


追記2012.6.29
mac版Aptana日本語化
http://www.tinybeans.net/blog/2009/01/30-132009.html

2012年5月1日火曜日

application

テレビでアプリの紹介をしていた。

「テレビでアプリの紹介をするような時代になったのかー」と少し感慨深くなったけど(テレビ=ネット嫌いだという固定観念から来る)、結構おもしろく見れた。

制作者視点、開発者視点、ユーザー視点、の3つからバランスよく見ようと心がけるけど、まだまだ難しい。

アプリ=コンピュータの機能をオブラートに包んでユーザーに提案する、みたいな感覚なのかな。よくわからんけども。

コンピュータでできる事をユーザーに翻訳して伝えて、使えるようにしてもらう。これがアプリケーションの本質なのだと思う。
シンプルに、簡単に、複雑な事ができた時に、ユーザー体験は良質なものになるのだと思う。

2012年4月28日土曜日

openGLメモ

OpenGLプログラミングメモ
http://www21.atwiki.jp/opengl/
細かいところまで載っていそうなブログ

ミクミクダンス+webGL をやってる人のブログ
http://d.hatena.ne.jp/edvakf/20111020/1319083256


collada形式についてやってる人のブログ(移転した)
http://pr0jectze10.blogspot.jp/2011/11/collada.html
移転先
http://nullorempry.jimdo.com/


2012年4月17日火曜日

OFでKinectSDK1.0を使用する方法_01

今回はopenCV2.3.1を用いて表示させている

【インクルード関連】
// 追加のインクルードディレクトリ
C:\Program Files\Microsoft SDKs\Kinect\v1.0\inc
C:\opencv\include

// 追加のライブラリディレクトリ
C:\Program Files\Microsoft SDKs\Kinect\v1.0\lib\x86
C:\opencv\lib

// 追加の依存ファイル
Kinect10.lib
opencv_core231.lib
opencv_imgproc231.lib
opencv_highgui231.lib
opencv_objdetect231.lib


【testApp.h】

#pragma once
// Windows Header Files
#include <ole2.h>// ←COM 開発の基本となるヘッダー

// Kinect Header
#include <NuiApi.h> // ←Kinectの機能を使う際に読み込むヘッダー

// OpenCV Header Files
#include <opencv2\opencv.hpp>
// openFrameworks Header Files
#include "ofMain.h"

#define CAMERA_WIDTH 640
#define CAMERA_HEIGHT 480

class testApp : public ofBaseApp{

public:
void setup();
void update();
void draw();

void keyPressed  (int key);
void keyReleased(int key);
void mouseMoved(int x, int y );
void mouseDragged(int x, int y, int button);
void mousePressed(int x, int y, int button);
void mouseReleased(int x, int y, int button);
void windowResized(int w, int h);
void dragEvent(ofDragInfo dragInfo);
void gotMessage(ofMessage msg);
void exit();

INuiSensor *kinect;
};

【testApp.cpp】
bool capFlag = false;
HANDLE cameraEvent;
HANDLE cameraHandle;
std::string windowName;
IplImage *img_camera = 0;


//--------------------------------------------------------------
void testApp::setup()
{
int nCount = 0;
HRESULT hr = S_OK;
hr = NuiGetSensorCount(&nCount);
hr = NuiCreateSensorByIndex(0, &kinect);
//kinectの初期化
hr = kinect->NuiInitialize(NUI_INITIALIZE_FLAG_USES_COLOR);
hr = S_OK;
if(hr!=S_OK){
std::cout << "failed NuiInitialize\n";
while(1){};
exit();
}
cameraEvent = CreateEventW(0, TRUE, FALSE, 0); // ←CreateEvent()のままだと通らないので、直接CreateEventW()を呼び出す必要がある(名前空間の関係か)
hr = kinect->NuiImageStreamOpen(NUI_IMAGE_TYPE_COLOR, NUI_IMAGE_RESOLUTION_640x480,
0, 2, cameraEvent, &cameraHandle);
if(hr!=S_OK){
std::cout << "failed NuiImageStreamOpe\n";
exit();
}

//OpenCVの初期設定
img_camera = cvCreateImage(cvSize(CAMERA_WIDTH, CAMERA_HEIGHT), IPL_DEPTH_8U, 4);
cvNamedWindow("Camera View", CV_WINDOW_AUTOSIZE);


long angle = 0;
kinect->NuiCameraElevationSetAngle(angle);
}

//--------------------------------------------------------------
void testApp::update(){

}

//--------------------------------------------------------------
void testApp::draw(){
HRESULT hr = S_OK;
capFlag = true;
while(capFlag == true){
WaitForSingleObject(cameraEvent, INFINITE);

NUI_IMAGE_FRAME pImageFrame;
hr = kinect->NuiImageStreamGetNextFrame(cameraHandle, 0, &pImageFrame);
if(hr!=S_OK){
std::cout << "failed NuiImageStreamGetNextFrame\n";
exit();
}
INuiFrameTexture *pTexture = pImageFrame.pFrameTexture;
NUI_LOCKED_RECT LockedRect;
pTexture->LockRect(0, &LockedRect, NULL, 0);
BYTE* pBuffer = (BYTE*)LockedRect.pBits;
memcpy(img_camera->imageData, pBuffer, img_camera->imageSize);
cvShowImage("Camera View", img_camera);

kinect->NuiImageStreamReleaseFrame(cameraHandle, &pImageFrame);
int key = cvWaitKey( 10 );
        if ( key == 'q' ) {
            capFlag = false;
}
}
exit();
}
//--------------------------------------------------------------
void testApp::exit()
{
capFlag = false;
kinect->NuiShutdown();
CloseHandle(cameraEvent);

cvReleaseImage(&img_camera);
cvDestroyAllWindows();
}