管理人のみ閲覧できます このコメントは管理人のみ閲覧できます
【2008/02/17 22:04】
| # [ 編集]
はじめまして。
こちらのARToolKitの記事を参考にしてプログラムを作ってます。
GLMetaseq.hの時点から気になってたんですが、
mqoRegistTexture関数で
glDeleteTextures(1, tex_name)によってテクスチャを消してますけど、
これっておかしいような気がするんですが。
mqoRegistTextureを呼んだ時点ではtex_name、実際に使ってるのを考えるとM[i].texNameはmqoReadMaterialでも明示的には初期化されないので
何が入ってるかわからないわけで、最悪M[i-1].texNameとかと同じ値が入っていた場合はM[i-1].texNameが消えちゃうと思うんですが。
というか、そもそも必要ないんじゃないでしょうか。
あと、mqoCreateModel関数とかのGL_COMPILE_AND_EXECUTEはGL_COMPILEで良いんじゃないでしょうか。
【2008/02/18 01:35】
URL | b2ox #7jRj3iUs [ 編集]
はじめまして。GLMetaseq.h (Ver2.0) を使わせていただいたのですが、このヘッダを使ってmqoを表示出来ません。ver1.0?のときは普通に表示できていたのですがこれはバグですか?それとも自分の使い方が間違ってるのでしょうか?
読み込み
MQO_MODEL model;
model = mqoCreateModel("output0.mqo",0.2);
出力
mqoCallModel(model);
でやってます。
【2008/02/18 03:33】
URL | #- [ 編集]
はじめまして。
ARToolKitで初音ミクシリーズを作っていたものです。
こちらのARToolKitの記事は大変参考になりました。ありがとうございます。
ニコ動界隈で配布しているソースについて補足なのですが、
DirectXで初めて書いたソースですので、いろいろおかしい部分があるかと思います。あくまで参考程度に利用していただければと思います。
また、モデルやモーションの読み込みは連番MQO方式で行っております。
モーションを付ける方法は、調べればいろいろあったのですね。
VRMLやLuaで簡単に利用できるようになればとてもおもしろくなりそうですので、期待しております。
【2008/02/19 01:01】
URL | #- [ 編集]
>b2oxさん
はじめまして,こんにちは.
参考になるコメントありがとうございます.
まったくご指摘のとおりであります.
>glDeleteTextures(1, tex_name)によってテクスチャを消してますけど
以前別の用途のために作った関数の名残りでして,
そのときは同じ変数を使って何度もテクスチャの再登録を
行うようなコードを前提にしていたのでglDeleteTextures()
を行っていました.おっしゃるとおり,今回のメタセコローダに
関して言えば,初期化してないので危ないし,同じtex_nameに対して
テクスチャを再登録を行うようなことはないので不要ですね.
>あと、mqoCreateModel関数とかのGL_COMPILE_AND_EXECUTEはGL_COMPILEで良いんじゃないでしょうか。
あっ! そのとおりです!
以前書いたコードやサンプルコードからそのまま持ってきてるところが
ところどころあるんですが,そういうところで凡ミスやってますね…
ARToolKit with Luaの開発が興味深くてときどきサイトを拝見しています.
Lua面白そうですね.今度やってみようと思います.
【2008/02/19 02:18】
URL | なおき #F54KmX5Y [ 編集]
>はじめまして。GLMetaseq.h (Ver2.0) を使わせていただいたのですが、
>このヘッダを使ってmqoを表示出来ません。
申し訳ありません.情報が少なすぎて判断できません.
【2008/02/19 02:21】
URL | なおき #F54KmX5Y [ 編集]
>ARToolKitで初音ミクシリーズを作っていたものです。
はじめまして,こんにちは.
ニコ動界隈でご活躍されている方ですね!
私自身,DirectXへの移植はやろうと考えつつもやってない状況だったので
このタイミングでのソース公開は非常にありがたかったです.
(なにげに行列まわりが面倒そうだなとか思ってたんですよ)
影やらなにやらやろうと思ったらDirectXのほうが良さそうですね.
ただ,Windows限定になっちゃいますけど.
今後もご活躍に期待しています.
【2008/02/19 02:21】
URL | なおき #F54KmX5Y [ 編集]
Irrlicht, OGRE, OpenSceneGraphといったライブラリを使うとOpenGL, DirectX両対応で更にマルチプラットフォームってことができるんでしょうけどね。
どれも影とか煙っぽいのとか使えるみたいですし。
IrrlichtとOGREのほうは組み合わせてみたよとか組み合わせてるんだけど詰まってる助けてみたいな発言がフォーラムに投稿されてるのは見たんですが、
実際に動く物を置いてる人はまだいないみたいですね。
OpenSceneGraphは既にARToolKitのプラグイン(OSGART)があって、
さらにそれをLuaスクリプトから制御することも出来るようです。(実際に手元で動かしたわけではないですけど(^^;)
OSGARTのGalleryには別のARライブラリ(Bazar)を使った例も載っていました。
http://www.artoolworks.com/community/osgart/gallery.html
多分このサンプルでは本の表紙画像がマーカーになってるんだと思います。
Bazarはカメラからの取り込みと歪み補正とかにOpenCVを使ってるみたいです。
【2008/02/19 11:27】
URL | b2ox #7jRj3iUs [ 編集]
ニコ動のARToolKitで初音ミクシリーズを見て、自分もそれをやりたい一心で、先月はじめてプログラミングなるものに足を踏み入れてHello Worldした初心者Macユーザーです。人間のモチベーションはまことに不思議なところから発揮されるものだと、自分にあきれていますw
Windows依存のBITMAP構造体周りをどうするかでつまづいていた矢先、windows.h 非使用バージョンの到来はちょっとしたブレークスルーになり、インクルードするものをもう少し書き換えてやるだけでMacでもとりあえずコンパイルできました。なぜか肝心のモデルが表示されず、白いワイヤーフレームの球体しか出てこないのですが、それにしてもプログラミングとか3Dの扱いとか、想像していたよりは簡単なものなのですね。おかげさまで新しい興味対象を開拓しつつあります。なおきさん並びににミクARの方に一言お礼を言いたくてコメントさせていただきました。
しかしこの球体は何なんだ…?
【2008/02/19 16:24】
URL | アルタ #4pMdFLgw [ 編集]
>b2oxさん
>Irrlicht, OGRE, OpenSceneGraphといったライブラリを使うと・・・
おっと.そんなものがあるんですね.
CG系はド素人なものでそういう情報が一番ありがたいです.
影とかフォグもいいですが,個人的には物理演算をやりたいです.
Bazarは使ってみようと思ってるんですが,デスクトップにEXEを転がしたままになってます(笑) そろそろ他のライブラリにも手を出そうと思います.ARTagとかも.
【2008/02/19 19:42】
URL | なおき #F54KmX5Y [ 編集]
管理人のみ閲覧できます このコメントは管理人のみ閲覧できます
【2008/02/19 19:48】
| # [ 編集]
>アルタさん
はじめましてこんにちは.
プログラミングやるときは何か具体的な目標があったほうがいいので,ニコ動見て触発されてHello worldしちゃうのはぜんぜんアリですよ!
>しかしこの球体は何なんだ…?
それは多分光源の位置を表した球体ですね.egLightOn()のなかで
描画するようになってます.disp_light = FALSEとしたら消えますよ.
ところでMacの場合,GL関係のヘッダのインクルードはこれでよろしかったでしょうか?↓
(ディレクトリが違うんですよね?)
#include <OpenGL/gl.h>
#include <GLUT/glut.h>
※次回修正時に,Macでの使用にも対応しておこうと思います.
【2008/02/19 19:56】
URL | なおき #F54KmX5Y [ 編集]
>DirectXについて
行列の変換もかなり適当ですが、少しでも参考になれば幸いです・・;
DirectXは3Dゲーム開発関係の書籍が豊富なので助かりました。
上記の「t-pot」さんのページも参考になりましたし、情報が豊富なのが利点かなと思います。
ただ、やっぱりWindows限定になってしまうのは痛いですね;
物理演算といえば、『Nao_u』さんという方が、ARToolKitとPhysXを組み合わせて色々やっているのを見たことがあります。(既にご存知でしたらすいません)
やってる内容がクオリティ高くてビビりました。
>アルタさん
はじめまして、こんにちは。なんと言うか、こちらこそありがとうございます。
私も似たようなものですし、なおきさんのおっしゃる通りだと思います。
【2008/02/20 00:32】
URL | ARToolKitで初音ミクの人 #- [ 編集]
>なおきさん ヘッダに関して
<OpenGL/gl.h>と<GLUT/glut.h>はToolKit付属のSimpleTest などで ifdefが __APPLE__ の場合に読み込んでる2つですよね。Exampleをコピペしてばかりで中身に関してはよくわかってないのですが、その2つで確かにSimpleTestは正常動作しました。間違いないと思います。
球体に関して
なるほど、確かに disp_light で消えました。ありがとうございます。“変なもの”ではなかったようで一安心です。
ということは、egLight の動作までは問題なくて、GLMetaseq2 のどこかに、当方の環境でのモデルの表示を妨げる原因があるのでしょうかね。もし何か進展があったらまたご連絡します。
【2008/02/20 10:20】
URL | アルタ #4pMdFLgw [ 編集]
ちょっと細かいことをちくちくと指摘しますね(^^;
GLMetaseq2.hのmqoMakePolygon関数ですが、
glEnable(GL_BLEND);glBlendFunc(GL_ONE,GL_ZERO);
だとglDisable(GL_BLEND)と同じ効果で無駄に処理を増やすだけだと思います。
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
を用いるべきだと思います。
GL_BLENDが有効になるのはテクスチャがあるときだけになってしまってますが、
テクスチャがなくてもα値は有効にするべきだと思います。
できればスムージング角を考慮した頂点法線を設定するようにした方が表示が綺麗になって良いと思います。
ポリゴンを生成する段階でスケールを適用するのではなく頂点を読み込む時に適用した方が無駄が少ないと思います。
mqoSnormalはnorm=0のときのことも一応考えておいた方が良いかも。
【2008/02/20 22:09】
URL | b2ox #7jRj3iUs [ 編集]
>b2oxさん 心強いデバッグのサポートありがとうございます.
だめだめなソースでホント恐縮です.すみません(--;
ブレンド処理のところですが,テクスチャを張った場所の一部分が透けて
おかしくなったり,テクスチャのない場所で透けさせたくないのに透けられたりと
いろいろやってるうちによくわからんなくなってきたので,とりあえず
glBlendFunc(GL_ONE,GL_ZERO)=ブレンドしない にしたという経緯が
あります.で,逃げました.(で,足跡残しました)
>できればスムージング角を考慮した頂点法線を設定するようにした方が表示が綺麗になって良いと思います。
見てのとおり面法線でとりあえず逃げてたんですが,やっぱり綺麗にしたいですよね.
頂点法線の計算方法とか調べたんですが,頂点を共有する面を探すあたりとか,
ややめんどそうですね(素直にやればいいんでしょうけど).
・・・とまぁそんな感じで若干お手上げ気味なのでmqoMakePolygon()の部分に
関して有用なコードがございましたらご教授いただけると幸いです.
>ポリゴンを生成する段階でスケールを適用するのではなく頂点を読み込む時に適用した方が無駄が少ないと思います。
うっ お気づきになられましたか.
これだとロード時に余計な計算をやって時間がかかってしまいますね.
スケーリングについては自前で計算せずに,モデル作成前に
glScaleをやろうかと思うんですが,どっちがいいですかね?
【2008/02/21 01:56】
URL | なおき #F54KmX5Y [ 編集]
管理人様 へ
先日はVRMLの件で失礼いたしました。Ver2の公開ありがとうございます。
VRML動画のほうご紹介下さっていることも知らずに削除してしまいました・・・(;・∀・)
理由は某ソフトの広告プログラムへの個人的な見解です。(笑
お気遣い頂いたにもかかわらず、お手間ばかり取らせてしまい恐縮です。m(_ _"m)
VRML関連。とても面白いのですが、枯れた技術なはずなのに、意外にもソフトが
なくて困ります・・・。Blender用にまともなVRML97プラグインが書けるといいの
ですけど。その他、OpenFXがありましたが、癖ありそうです。
c++のお勉強傍ら、wrlファイルにテキストエディタでキーをうち、頂点コピペで
モーフィングしてみてるとこです。とても面倒です・・・(笑
【2008/02/21 04:21】
URL | ほよよ #z8Ev11P6 [ 編集]
>ほよよさん >VRML動画のほうご紹介下さっていることも知らずに削除してしまいました・・・(;・∀・)
>理由は某ソフトの広告プログラムへの個人的な見解です。(笑
おっと,それはちょっと残念です.
でも,VRMLというひとつの活路が見出せたので感謝しております.
VRMLがWebブラウザ上で動くのをはじめてみたときはうぉー!と感動したものですが,
製作環境が整っていないのはいかんともしがたいですね.
本文にもちらっとかきましたが,せっかくARToolKitがVRMLを読めるのに,流行りのボーンベースのモーション作成ツールがVRML出力に対応してないのがちょっと痛いです.
【2008/02/21 08:36】
URL | なおき #F54KmX5Y [ 編集]
明石高専の情報工学研究部OBのやつです。
ご紹介に預かり光栄です。(遅
スキン・ボーンの実験を早くやりたかったので
やっつけで書いたコードばっかりですが、奇跡的に動いています。
>それなりに「読む」ことが必要かもしれません.
...やっぱり読みにくいですよね。
公開してるんだからそれなりにがんばります。
(とか言いつつ最近は3DCGよりDTMとか信号処理に傾き気味ですが...)
管理人さんも画像処理の研究がんばってください。
【2008/05/11 04:28】
URL | rydot #JkEXMF3o [ 編集]
>rydotさん こちらこそ非常に有益なソースを公開してくださって感謝の極みです.
メタセコイアのOpenGL用のローダが需要があるはずなのに,数えるほどしか
存在してなくて,ほとんどの場合ソース非公開っていうのが現状なんです.
そんな中モーション再生までやっちゃう凄いのが公開されてるぞ!と,感動しました.
私が公開したものも,他の人の手によっていろいろと改変が加えられています.
オープンソース効果といいますか,ソース公開すると結果的に自分も得するみたいです.
>管理人さんも画像処理の研究がんばってください。
きゃー 最近本業を忘れそうなくらいARToolKit漬けになっているので
そろそろ目を覚まさないと・・・(笑) がんばります.
【2008/05/11 20:11】
URL | なおき #F54KmX5Y [ 編集]
|