tipsを二つメモ。openframeworksでアンチエイリアスをかける方法と、ワイヤーフレームを描画する方法について
2011年4月18日月曜日
2011年3月5日土曜日
openframeworksでポリゴンを選択する方法
前回のnurbsとhemeshを組み合わせて、なにか凝ったモノをつくろうとして挫折。そもそも、JOGLのnurbsが未実装だった。
というわけで、今回もTipsっぽい記事。openframeworkでポリゴンのマウスクリックや、マウスオーバーの判定を取る方法。
地道に座標を変換して照合していくことももちろん可能だが、openglにマウスピック用のAPIがすでに用意されているので、それを試してみた。
参考したのは以下のサイト

地道に座標を変換して照合していくことももちろん可能だが、openglにマウスピック用のAPIがすでに用意されているので、それを試してみた。
参考したのは以下のサイト
ラベル:
C++,
openframeworks,
Opengl
2011年3月2日水曜日
Cinder上でnurbsを描く
普通にcinder上でopenglのgluNurbsSurfaceを使ってみただけ。特に変わったことはしてないけど、nurbs自体をはじめてさわったので、メモ。
コードはこちら(study_NurbsApp.cpp)
※SimpleGUIをいれておく必要あり
例のごとく、上のサイトからコピペしていろいろいじくり回しただけだけど。
気になった点は、軽量化のためnurbsをdisplayListにいれようとした時、デフォルトで設定されてるテッセレーションの挙動がおかしくなったところ。もともと、分割されすぎて重く感じてたので
あと、ノットベクトルはここを参照。エセ理系の自分にはちょっとキツイ。とりあえず、制御点数+次数だけの要素数をもつ配列をつくり、要素を単純増加させてやればよさそう。例えば、制御点数6、次数4のときノットベクトルは
コードはこちら(study_NurbsApp.cpp)
※SimpleGUIをいれておく必要あり
例のごとく、上のサイトからコピペしていろいろいじくり回しただけだけど。
気になった点は、軽量化のためnurbsをdisplayListにいれようとした時、デフォルトで設定されてるテッセレーションの挙動がおかしくなったところ。もともと、分割されすぎて重く感じてたので
gluNurbsProperty(nurbs, GLU_SAMPLING_METHOD, GLU_OBJECT_PATH_LENGTH);で切っておいた。
あと、ノットベクトルはここを参照。エセ理系の自分にはちょっとキツイ。とりあえず、制御点数+次数だけの要素数をもつ配列をつくり、要素を単純増加させてやればよさそう。例えば、制御点数6、次数4のときノットベクトルは
GLfloat knot1[10]={0.0, 0.0, 0.0, 0.0, 0.33, 0.66, 1.0, 1.0, 1.0, 1.0}; GLfloat knot2[10]={0.0, 0.0, 0.0, 0.0, 0.33, 0.66, 1.0, 1.0, 1.0, 1.0};とか、
GLfloat knot1[10]={0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}; GLfloat knot2[10]={0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};にしてやる。左から右に増加さえしていれば動くはず。
登録:
投稿 (Atom)