ofxFftを使うためにはプリコンパイルしたfftw3f.aが必要ですが、ダウンロードするように指示されているファイルは32bit環境用でビルドエラーが出ます。
https://github.com/kylemcdonald/ofxFft/issues/14
こちらに解決方法が紹介されていました。
http://www.fftw.org から最新のfftwをダウンロードして、展開したフォルダ内で以下のコマンドを実行します。
sudo ./configure --disable-shared --enable-static --enable-float --enable-threads CC="gcc -arch x86_64" CXX="g++ -arch x86_64" CPP="gcc -E" CXXCPP="g++ -E"
sudo make install
/usr/local/lib に以下のファイルが生成されているのでofxFftのlibs/fftw/libの中にコピーします。
また /usr/local/include のfftw3.hファイルを ofxFft/libs/fftw/includeにコピーします。
ビルド時に以下のようなエラーが出た場合は
ld: library not found for -lfftw
.zshrcに
export LIBRARY_PATH=/usr/local/lib/
を追加して
source ~/.zshrc
を実行します。
また、Project Generatorを使ってofxFftを読み込んでいる場合は.aファイルが追加されていないので手動でXcodeで追加します。
openFrameworksのプログラムをmacOS High Sierraでビルドしようとしたらエラーが出たので原因を調べてみました。
ちなみにプログラムはSierraで制作したものです。
Showing Recent Messages :-1: The i386 architecture is deprecated. You should update your ARCHS build setting to remove the i386 architecture. (in target 'openFrameworks')
High Sierraから64bitのプログラムしか作れなくなっているようでそれが原因でエラーが出ているようでした。
Architectureが64bit – intelになっていることを確認します。
次にlibs/openFrameworksCompiled/project/osx/CoreOF.xcconfigを書き換えます。
書き換え箇所は以下を参考にしました。
github
この修正を適用すると無事にビルドできました。参考までに以下にも修正箇所を掲載しておきます。
VLID_ARCHSとOF_CORE_FRAMEWORKSの項目を修正します。
VALID_ARCHS = x86_64
OF_CORE_FRAMEWORKS = -framework Accelerate -framework AGL -framework AppKit -framework ApplicationServices -framework AudioToolbox -framework AVFoundation -framework Cocoa -framework CoreAudio -framework CoreFoundation -framework CoreMedia -framework CoreServices -framework CoreVideo -framework IOKit -framework OpenGL -framework QuartzCore -framework QTKit -framework Security -framework LDAP
openFrameworks v0.10.0でofTrueTypeFontを使って日本語のフォントを読み込む方法です。
ofApp.hにofTrueTypeFontのインスタンスを設定します。
ofTrueTypeFont text;
ofGLFWWindowSettings s;
のようにofGLFWWindowSettingsで作った画面のサイズを指定する方法です。
以下のように書くとエラーが出ます
s.width = 1920; //直接書き換えられない
s.height = 1080; //直接書き換えられない
エラーメッセージは以下のようなものです。
‘height’ is a protected member of ‘ofWindowSettings’
直接書き換えるなということなので
以下のように書き換えます
s.setSize(1920, 1080);
v0.9.8では個別に書き換えられたのですが、v0.10.0からできなくなったようです。
Raspberry PI 3にopenFrameworks(0.9.8)を入れてサンプルプログラムを動かしたのですが、マウスを使って操作するプログラムでマウスポインタが反応しない事象が発生したので、原因を調べてみました。
続きを読む
openFrameworksで作った映像をキャプチャーするためにElgato Game Capture HD60を導入しました。
続きを読む
openFrameworksでFboのスクリーンショットを保存する方法です。
ofFboをを一旦ofPixelsに変換したのちofImageにするとうまくいくようです。
ofImage img;
ofFbo fbo;
ofPixels pixels;
sキーが押されたらファイルが保存されるようにします。
void ofApp::keyPressed(int key){
if(key =='s'){
fbo.readToPixels(pixels);
img.setFromPixels(pixels);
char fileNameStr[255];
string date = ofGetTimestampString();//タイムスタンプをファイル名にする
sprintf(fileNameStr, "%s.png", date.c_str());
img.save(fileNameStr,OF_IMAGE_QUALITY_BEST);
}
}
ofCreateWindowでウィンドウを作った際にGLSLの#version 120が動きませんでした。
setGLVersionの設定を3,2から2,1に書き換えると動きました。
int main( ){
ofGLWindowSettings s;
s.setGLVersion(2,1);//ここを2,1にする
s.width = 1920;//画面サイズ
s.height = 1080;//画面サイズ
ofCreateWindow(s);
ofRunApp(newofApp());
}
このサイトでも紹介されているように3,2だと#version 150しか動作しません。
openFrameworksのプログラムでofCreateWindowを使ってウィンドウを生成した際にofHideCursor()でマウスカーソルが消えない事象に対する対策です。
Mac OSX Yosemiteで確認しました。
//setup()内に書く //ofHideCursor(); 効かない CGDisplayHideCursor(NULL);//これでカーソルが消える
openFrameworksでTrueTypeFontをofVboMeshに変換する方法を調べてみました。
フォーラムのこの投稿を参考にしました。
https://forum.openframeworks.cc/t/extrude-text-into-3d/6938/2
続きを読む