トップページgamedev
989コメント399KB

【3Dエンジン】Irrlicht初心者質問スレ【高速描画】

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2006/10/05(木) 06:50:19ID:UN/zUzoQ
zlibライセンスでクロスプラットホームなゲームライブラリ、Irrlichtのスレです。

※回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近Irrlichtを始めたばかり
3.SDKを見ても、Googleで検索しても、エキサイト翻訳でもいまいち理解できない人

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「英語読め」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する人 】
・ どんな事で躓いているのか明確にする。
・ 長くならないなら躓いている部分のコードを晒してみてください。
・ 解決した場合、お礼を言うのは当然ですが、何をどうしたら解決したかを明確に書くこと。

前スレ
http://pc8.2ch.net/test/read.cgi/tech/1104179696/
0713名前は開発中のものです。2008/12/19(金) 07:36:15ID:DyRt92vu
>>712
お疲れ様っす。
DX8サポートが長い間残っていたのは、0.*時代にDX9インプリメントが
結構怪しかった名残(と個人的には思っている)なので、
DX9環境も枯れてきた今なら切っちゃってもいいとは思うデス。
0714名前は開発中のものです。2008/12/19(金) 21:31:38ID:jeXDdZ4X
>>712
いつもお世話になってます。

いまどき、DX8でIrr触ってるヤシどれくらいいるんだろ。
俺は切るに賛成っす。
0715 ◆YATA/oetrw 2008/12/19(金) 22:04:25ID:D9KskPnz
>>713-714
ご意見どうもです。

報告が遅れましたが、IrrlichtML 1.5を公開しました。
DirectX8は使っている人も少ないようなので外しました。
おかげでDLLのサイズが500KBほど小さくなっています。

ttp://etwas.wolfish.org/files/IrrlichtML-1.5-win32Linux.zip

ちなみに、サンプルバイナリの動作にはVC2008 Redistributeが必要かもしれないです。
07167102008/12/19(金) 22:10:29ID:Hjz5wbiY
>>712
乙です。
mbstowcsってsrcにchar*を指定しないといけないみたいですが
FileDialogはファイル名がwchar_tで返ってきます・・
IrrlichtMLを使えば問題なくなったからいいか。

Could not load shader function D3DXAssembleShader from dll, shaders disabled: d3
dx9_39.dll
Could not create vertex shader.
Could not create vertex shader.

ML-1.5に変えたら、こんなメッセージがコンソールに出たんですが大丈夫でしょうか?

ttp://uproda.2ch-library.com/src/lib081835.zip.shtml
何を作ろうかと思っていたかというと、こんなものを作っていました。
DirectShowでレンダリングされた動画をテクスチャに書き込みます。
GLだとうまく動かなかったりします。処理も遅いです。
誰かこの問題を解決できないでしょうか?ソースコード汚くてスマンです。
0717名前は開発中のものです。2008/12/19(金) 22:38:06ID:HoYFRZCL
どうやったらいいのかよくわからないけど、
漢字変換の時ってImmSetCompositionFontでフォントセットしたら
もっと自然な感じで変換できるようになるかな……
0718 ◆YATA/oetrw 2008/12/20(土) 00:21:33ID:SR5YXda0
>>716
コンパイルした環境のSDKでは古いシェーダがサポート切られた関係かもしれないです。
10.shadersサンプルでハイレベルシェーダを使おうとすると警告がでました。
古い環境でコンパイルするかシェーダファイルをアップグレードするしかないかも。
アップした動画再生アプリでも警告でました?

私のところだ警告なしで、DirectX9とBurning's Software Rendererともに元気よく動いてました。
動画はマクドナルド。
ttp://up.mugitya.com/img/Lv.1_up81288.png
ttp://up.mugitya.com/img/Lv.1_up81289.jpg

>>717
フォントサイズを合わせられるかもしれないですね。
他にも変換ウィンドウの描画を全て乗っ取ることもできるとか。
0719 ◆YATA/oetrw 2008/12/21(日) 20:46:27ID:+GT7dnDG
COpenFileDialogの文字化け解消パッチを、MLから切り出してアップしてみました。
そしたら、GUI担当のbitplane氏から、「FileSystemを修正したほうがよいのでは?、とのこと。
ttps://sourceforge.net/tracker/?func=detail&atid=540678&aid=2450094&group_id=74339

現在、IrrlichtのFileSystemはファイル名をchar型のマルチバイト文字列で管理しています。
GUIへの表示以外は使用に問題はありません。
で、これをワイド文字列管理に全面的に書き直したときに考えられる弊害ってありますか?(ワイド文字操作には詳しくないです)
FileSystem全体にパッチを当ててみようと思うのですが、ご意見ありましたらよろしくお願いします。
0720名前は開発中のものです。2008/12/21(日) 20:51:18ID:+GT7dnDG
あ、それと、彼らとの意思疎通に英語翻訳してくれる方がいてくれると助かります。
英語の文章を組み立てられないので、短文を書くにもexcite先生に長時間浸かってますorz
07217102008/12/21(日) 22:23:40ID:pt1QZUzz
>>718
警告出ましたよ。アセンブリシェーダーは使わないので、別にいいんですが・・
メッセージは消したいですね。

>私のところだ警告なしで、DirectX9とBurning's Software Rendererともに元気よく動いてました。
テストありがとうございます。
それにしても、FPSたけぇ!!(こちらはRADEON HD 2600XTで800ぐらい)
やっぱりOpenGLだと動かないですか・・。何ででしょう?
main.cppでの書き込みは上手く言っているようなのに。

ttp://uproda.2ch-library.com/src/lib082512.zip.shtml
若干修正しました。
・コピーの処理をCImage.cppからとってきた
・テクスチャのサイズをビデオのサイズと同じに
・何となくWaterSurfaceのシーンノードに変えた
・現在のフレーム数を表示

問題は
・GLだと動かない。
・2の累乗でしかテクスチャが確保できない場合の処理がめんどくさい
・シークとかが未実装
・COpenFileDialogを使うと、Cドライブより上にいけない
などでしょうか。
0722名前は開発中のものです。2008/12/21(日) 23:38:24ID:+GT7dnDG
>>721
うねうねしているせいか、コピーをCImageから取ってきるのが原因かわからんですが
テクスチャ書き換え中の垂直非同期線が見えてしまってました。
OpenGLが黒いのはIrrlichtのバグの可能性もあるのでにんともかんとも。
それと、Burning's Software Rendererでは異常終了しちゃうようになりました(CImageが対応してない?)

>メッセージは消したいですね。
ログ出力されているコンソールを非表示にして見なかったことにするという荒業なら。
とりあえず、DirectXランタイムやビデオドライバのアップデート、DLLの再コンパイルを試してみてください。

>COpenFileDialogを使うと、Cドライブより上にいけない
確かにwドライブ用リストボックスが欲しいですね
0723名前は開発中のものです。2008/12/22(月) 00:12:45ID:3bnefhjw
>>712さんありがと〜
ありがたく使わせていただきますね
07247102008/12/22(月) 22:07:57ID:FcNpR8F3
ttp://uproda.2ch-library.com/src/lib082805.zip.shtml
・テクスチャとビデオのサイズが違う場合は、
 ニアレストネイバーで拡大縮小する処理を復活

>>722

>うねうねしているせいか、コピーをCImageから取ってきるのが原因かわからんですが
テクスチャ書き換え中の垂直非同期線が見えてしまってました。
なんでだろう??DirectShow初めてなので原因が分かりません。

>OpenGLが黒いのはIrrlichtのバグの可能性もあるのでにんともかんとも。
テクスチャをロックできていないのかな・・うーん分からん

>それと、Burning's Software Rendererでは異常終了しちゃうようになりました(CImageが対応してない?)
すいません、テクスチャのサイズとビデオのサイズが違う場合の処理
を消してしまっていました。

>>COpenFileDialogを使うと、Cドライブより上にいけない
>確かにwドライブ用リストボックスが欲しいですね
他のOSだと必要ない機能だからでしょうか?あと、

・上のフォルダにいく「..」が常に上に来ない
代わりに「上へ」ボタンを用意してもいいんじゃないでしょうか。
・画面上に表示されているパスを編集可能にする

こんな機能も欲しいですね。
0725名前は開発中のものです。2008/12/22(月) 23:28:00ID:3C+dKX9F
いっそそのへんひっくるめて対応して、マルチバイト文字にも対応した
拡張OpenFileDialogをエクステンションとして作った方が影響も少なくて
平和なんじゃないかとふと思った。
(初期のCGUITTFontみたく、自前でプロジェクトに追加する方法で)
07267102008/12/23(火) 22:15:39ID:Qo9DH/Zf
ttp://uproda.2ch-library.com/src/lib083221.zip.shtml
また画像コピーのコードが間違っていたので再うp・・
0727名前は開発中のものです。2008/12/24(水) 08:46:19ID:VQmpNn74
今作ってるのが2DゲームなせいでIrrlichtが単にDirectX初期化ライブラリとしてしか
機能していない俺ガイル

どうでもいいけど頂点アルファとテクスチャアルファ対応の新マテリアルはまだかね
前フォーラム見たときは作ってる時間ないぜゴルァ的な回答があった気がするが

適当なマテリアルコピーして頂点アルファ使うように設定するだけなのに大変なのかね?
ソフトウェアレンダラとの兼ね合いなんだろうか、よくわかんね

自分でIrrlicht弄ったほうがはやいかな
0728名前は開発中のものです。2008/12/24(水) 14:38:01ID:znVSQgGD
>>712
俺もここ
ttp://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=6389
見て、DShowのレンダリングしたサーフェイスをテクスチャに
コピーする、みないなん作ったことあるけど、
普通に作ると画面のFPSがムービーのFPSになる…。

DShowがレンダリングしたサーフェイス→テクスチャにコピー を
スレッド上でやってみたら早くなった。
DXの場合は、コピー中にDrawPrimitive来ても平気だが、
OGLの場合は落ちる。
あと、DXでも垂直同期線は見える。

もう俺のアプリはDXのみ対応、みたいなことになってるから、
これでいこうかと。

>>720
ページ翻訳は無理だが、FreeTranslatorなるものを俺は使ってる
ttp://www.vector.co.jp/soft/winnt/edu/se454073.html
ってそいう話じゃないか。スマソ

>>727
俺も最初それが嫌で、EMT_TRANSPARENT_ALPHA_AND_VERTEX_CHANNEL
とか自分で作ってみたけれど、改変箇所が多くなって面どくさくなった。
今はシェーダ書くことでおちついてる…。
0729名前は開発中のものです。2008/12/24(水) 14:42:24ID:znVSQgGD
ところで、SVN見てるんだが、branches\ogl-es ってフォルダあったのな。
これでiPhoneアプリ作れるんだろうか…。

ちょっと、フォーラムとドキュメントにいってきま ノシ
0730 ◆YATA/oetrw 2008/12/24(水) 16:36:06ID:rLipAkzv
>>710
なかなかよさげなのでサイトかフォーラムで公開されてはいかがでしょ?

>>725
その方法もIrrTestxxx.zipで試してみたことがあります。
利点:DLLの修正が不要
欠点:ModalDialogが機能しないため、その部分も含めて実装しなければいけない
GUIManagerに登録すればいいのかとも思うのですが、まだ試したことがないです。

>>727
いじった成果をsf.netのパッチスレへぜひ!
待っているだけでは優先順位を落とされてしまうみたい。

>>729
まだ実験中らしいけど、動くことは動くらしいです。
今、クリスマスシーズンで、ぱったりSVNが沈黙してるのが悲しい。
0731名前は開発中のものです。2008/12/25(木) 20:22:23ID:qT+jHo43
Irrlicht(メガデモ?)コンペ開催中、締め切りは2009/1/12
ttp://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=180414

賞金は些細なものだけど楽しそう
0732名前は開発中のものです。2008/12/25(木) 23:11:09ID:TqCl1qUQ
ttp://uproda.2ch-library.com/src/lib083958.zip.shtml
シークできるようになりました。無限ループします。
できればmain.cppから手動?ではなく自動でやらせたいんですが。
>>728
ttp://www.shader.jp/xoops/html/masafumi/directx9/DShow/dshow001.htm
私はこれを元に作りました。というか一部を書き換えて作りました。
CBaseVideoRendererの一部メソッドをオーバーライドした
クラスを作りAddFilterでレンダラーフィルタとして挿入する方法です。
07337102008/12/27(土) 22:24:08ID:VFZuSRAM
レス代理してもらったら名前入れるの忘れられてしまったみたいですが
>>732の書き込みは私のです。

GLでも正常に動くようになるように他のスレで訊いてきます。

>>730
>なかなかよさげなのでサイトかフォーラムで公開されてはいかがでしょ?
GLで動くようになったらそうしようかと思います。
0734名前は開発中のものです。2009/01/06(火) 23:36:07ID:hXPh/BNb
age
07357102009/01/09(金) 21:57:21ID:+Oa9zZ2Y
一応動くことは動くようになりましたが、D3Dより遅いです・・
0736名前は開発中のものです。2009/01/15(木) 19:35:56ID:RJA+UFMv
1.5になって2倍くらい速くなってワロタ
07377102009/01/15(木) 22:33:49ID:knBmYho8
一応GLでも動くようになりました。しかし遅いです・・・

GLのAPIを直接呼び出して高速化するためにムービー読み込み機能を
Irrlichtに組み込みました。
そうしてレンダラーがOpenGLの場合のみ
glTexSubImage2Dでムービーの内容をコピーするようにしたんですが
何故か画像が上下反転する上、あまり速くないです。
(OpenGLのテクスチャはDirect3Dと違って
上下が反対なはずでは?)
メッシュのUVを反転するのも面倒ですし・・。

仕方ないので一旦CImageに反転した画像を入れて
それをglTexSubImage2Dで書き込んでいます。

http://uproda.2ch-library.com/src/lib091786.zip.shtml
・クラスの名称をVideo→Movieに変更
・GUIで再生/一時停止、シークが出来るようにした
・シーンクラスみたいなのを作りたかった
etc
0738名前は開発中のものです。2009/01/16(金) 00:44:27ID:iK3Wokey
>>7.37

すっごく今更ではあるんだが、
いっそGL対応するんなら、ffmpeg連動するのはどうかと言ってみるテスツ
いや、大変なのはわかってるけど、
そうするとLinuxやMacOSでも使えて、OpenGL対応が生きるなあと・・・
好き勝手言ってすまん
0739名前は開発中のものです。2009/01/17(土) 17:48:32ID:yGPU7swR
Visual C++ 2008EEでデバッグ開始コマンドからビルドして実行するとうまくウィンドウが
立ち上がりゲームが動くのに、その後、出力された実行ファイルから起動しようとすると
「問題が発生したため、1stIrrlicht.exe を終了します。 ご不便をおかけして申し訳ありません。」
って出て強制終了されるんですけど、どうしてですか
0740名前は開発中のものです。2009/01/17(土) 18:04:03ID:yGPU7swR
解決しますた
0741名前は開発中のものです。2009/01/17(土) 18:27:24ID:JxxGO0sa
DLLってみんな何処に置いてる?
0742名前は開発中のものです。2009/01/17(土) 20:51:34ID:2PJ4/yoK
膝の上
0743名前は開発中のものです。2009/01/18(日) 01:34:46ID:dulsH/UM
>>741
開発機ではIrrlichtのbinディレクトリに環境変数でPATH切ってる
0744名前は開発中のものです。2009/01/18(日) 04:24:15ID:SNlaeLd5
たとえば、1面から2面に以降するときのシーンのリセットでどうやるの?
最初から1,2面のリソース全部読んでおいてノードだけ消すの?
それとも、シーンを破棄・生成しなおすの?

後者だとエラー起きるんだけど・・・
07457102009/01/18(日) 22:23:37ID:w6uQu1u7
なぜかGLだとポスターフレームが出なかったり
一時停止中にシークすると正しい場所の画像が出なかったりします。
・・まだGLの対応は不完全でした。

何故なんでしょう?CImageに反転した画像を入れて
glTexSubImage2Dすると
テクスチャに直接書き込めるDirect3DやBurning'sVideo
より遅くなるのが、何か関係しているのでしょうか。

>>738
確かに対応しておきたいところです。
でもffmpegの他にも乱立していてどれにすべきか迷います。
07467102009/01/18(日) 22:55:13ID:w6uQu1u7
ttp://uproda.2ch-library.com/src/lib093103.zip.shtml
PBOに対応しようとしましたが失敗しました・・
FPSもあがると思ったのに。
テクスチャが3/4ぐらいしか使われていません。
ttp://wiki.livedoor.jp/mikk_ni3_92/d/PixelBufferObject

Driver->extGlBufferData(GL_PIXEL_UNPACK_BUFFER_ARB, 0,
NULL, GL_DYNAMIC_DRAW_ARB);

glMapBufferARBを呼ぶ前にNULLポインタでglBufferDataを呼べ
と上のURLに書いてありますがやったらアプリケーションが
落ちました。
0747名前は開発中のものです。2009/01/19(月) 00:14:47ID:/hAZzN2J
Irrlicht使ってるけどML版作ってるひとありがとう。すごく助かってる。
0748名前は開発中のものです。2009/01/19(月) 20:02:42ID:/hAZzN2J
irrlichtの静的リンクってどうやるのでしょうか?
0749名前は開発中のものです。2009/01/19(月) 20:44:45ID:y3tA2i/i
>>748
もしVCを使っているなら、source\Irrlichtのプロジェクトファイル(ex. Irrlicht9.0.vcproj)を開いてごらん
1.5からはRelease、Debugと並んでStatic libが選べる
Static libを選んでリコンパイルすれば、静的ライブラリの出来上がり
以後はそれをリンクすればおk
0750名前は開発中のものです。2009/01/19(月) 23:29:31ID:/hAZzN2J
あーなるほど!理解できました!ありがとうございます!
07517102009/01/20(火) 22:03:32ID:NRdPFAc+
//if (Driver->Version > 101)
// PixelType=GL_UNSIGNED_INT_8_8_8_8_REV;
何でか分かりませんが、COpenGLTexture.cppの
この部分をコメントアウトすると速くなりました!
(ECOLOR_FORMATがECF_A8R8G8B8のとき、OpenGLのPixelTypeを
GL_UNSIGNED_BYTEにする)
720x480の動画でもビデオのFPSが30になるようになりました。

http://uproda.2ch-library.com/src/lib093854.zip.shtml
07527102009/01/20(火) 23:10:21ID:NRdPFAc+
まだ
・ファイルによっては正常にシークできない(違うところにシークする)
・GLだとポスターフレームが表示されない
・GLだと一時停止時にシークしたときに画像が更新されないか
違うところの画像が表示される

等の不具合を残しています。まだまだ問題は山積みです・・。

動画をテクスチャにレンダリングする機能ってどんな使い道が
考えられるでしょうか?
0753名前は開発中のものです。2009/01/20(火) 23:15:33ID:sLt/OsE0
使い道も分からずに一か月も何やってんのお前頭おかしいんじゃないの?と思ったが、
とりあえず3Dモデリングした各種モニタ類の表示に使える。TVとか電光掲示板とか。
0754名前は開発中のものです。2009/01/21(水) 08:44:54ID:b4uHzUkn
なにこれ
ファイル選択画面でCPU使用率100%とかふざけてんの?
0755名前は開発中のものです。2009/01/21(水) 08:48:45ID:d16xRujn
>>754
たぶんおまいさんのメインループの書き方に問題がある。
チュートリアルのメインループとかはそういうこと考慮していないから、
メインループにSleep(0)とかいれてみ。
0756名前は開発中のものです。2009/01/22(木) 00:38:43ID:gWDPAEFx
1.5のlwoの読み込みでメッシュ表示を試してみたが、どうもポリゴンの裏表が逆になっているようなのだが気のせい?

textureファイル名を絶対パスで指定していると死ぬ orz
モデル側を直せばいいのかもしれないが、何か良い方法はないものか。
0757名前は開発中のものです。2009/01/24(土) 00:10:05ID:8pul47RA
Sleep(0)だとCPU使用率100%のままだろ
1以上じゃないと
0758名前は開発中のものです。2009/01/24(土) 01:00:24ID:7x2MqZ+J
あの、Irrlichtのノードクラスなどのremove,drop,gradの違いってなんでしょうか?
動作させてもエラー起きてよくわかりません。

あとメッシュはノードが利用中は削除できない?

しかし、irrlichtは使いやすい。便利だ。ありがたや、
0759名前は開発中のものです。2009/01/24(土) 01:32:01ID:7x2MqZ+J
ああ、自己解決しました。

node->grab();
node->drop();

と、呼べばエラー起きなかった。すいませんでした。
0760名前は開発中のものです。2009/01/24(土) 20:52:10ID:7x2MqZ+J
http://chris.j.mash.googlepages.com/irrphysx
このirrphysx使ってる人います?
0761名前は開発中のものです。2009/01/24(土) 22:32:33ID:7x2MqZ+J
ちなみに機能は

・DirectX9/OpenGL切り替え
・HGIMG3程度の移動・回転・描画
・リソースの共有自動管理
 ・HGIMG3のリソース共有をさらに進歩させて自動で同じものを使う
・自動で地面・キャラ・オブジェクトのコリジョン処理
 ・コリジョンはOBB〜円など
・Bullet物理エンジンによる物理処理
・xfileによるアニメーション
 ・影
 ・フォグ
・HSP用にDLL化

が、今できてるとこ。
まだやりたいことあるから次のHSPのバージョン出るころ狙ってる。
0762名前は開発中のものです。2009/01/24(土) 22:33:35ID:7x2MqZ+J
誤爆・・・orz
0763名前は開発中のものです。2009/01/24(土) 22:57:32ID:7x2MqZ+J
新しいirrの情報サイト発見、載せとく
ttp://柊つかさ.jp/wiki/index.php?title=Irrlicht
0764名前は開発中のものです。2009/01/25(日) 22:25:33ID:jW6fSNqp
処理の遅れにかかわらず
1コマずつ進めるのってどうするんですか?
device->getTimer()->stop();
int frameCounter = 0;
while(device->run)
{
...
device->getTimer()->setTime(frameCounter * 16.666666f);
frameCounter++;
...
}
みたいにしてみましたが、stopしてしまったせいか
シーンノードにRotationAnimator設定しているのに動きません。
どうすればいいですか?
0765名前は開発中のものです。2009/01/26(月) 00:29:31ID:1iFFYXhs
realtime()ではじまりと終わり取得して、差分だけSleepじゃだめ?
(コマの意味が分からないから的外れな回答かもしれないけど)

int _fps = 60;

// タイム開始
timeBegin = device->getTimer()->getRealTime();

(処理)

// タイム終了
timeEnd = device->getTimer()->getRealTime();

// タイム差
timeCount = timeEnd-timeBegin;
timeSec = (1000/_fps )-timeCount;

// もし待機時間がプラスなら
// 待機
if ( timeSec > 0 ) {
Sleep( timeSec );
}

とかで_fpsで指定したフレーム/秒を維持させてカウントじゃだめ?
0766名前は開発中のものです。2009/01/26(月) 02:52:25ID:6Wqz3VFh
>>765
その方法だと、60フレーム固定にはならないね。

0767名前は開発中のものです。2009/01/26(月) 06:34:46ID:1iFFYXhs
まじで?この方法でgetFPS()で60って出てたからいいのかと思ってた。
あとどうやるんだろ。
0768名前は開発中のものです。2009/01/26(月) 08:44:42ID:6yTEP1R4
ん〜、というかね、sleepってそういう使い方しない方がいいね。
どれだけ止まるかわからないコードを組み込むとデッドロックになる可能性がある。
winの場合特に。
0769名前は開発中のものです。2009/01/26(月) 18:50:51ID:1iFFYXhs
つまり、待機幅を16ms以上いかないようにするとかってこと?
プログラムは難しいね。
0770名前は開発中のものです。2009/01/26(月) 21:51:56ID:1iFFYXhs
自分の環境だけかもしれないけど。
DirectionalLightは座標無効・光源ベクトル有効のはずが座標必須・ベクトル無効になってる。
逆にPointLightは座標必須なのに座標動かない。

今のところ、カメラの視線上(radius分)に平行光源を座標移動させると通常のDirectionaLight動作になってる。
光源周りの実装が不安定?

0771名前は開発中のものです。2009/01/27(火) 02:22:16ID:xmRAMtaz
>>769
いや16msで終わらないときの動作がバラバラになる。
よほど古い環境を使ってなければ対処は不要かもしれないけれど
古い環境でもそれなりに遊べるようにするにはキー入力を含めた
内部的な処理と描画は分けて考えたほうがいいと思う
0772名前は開発中のものです。2009/01/27(火) 19:19:29ID:xhf1lpaD
そうか、単に待機だけじゃなくて描画コストとかも視野にいれなくちゃだめか。
今FPSについて調べたら描画飛ばしてた、ありがとう。
07737642009/01/27(火) 21:58:40ID:kWYCqtij
タイマーを手動で進めたいだけなんです・・・
(連番BMP出力が出来るように)
setTimerの後にtickを呼んだりしてみましたが、やっぱりシーンノードのアニメータが
動きません。
0774名前は開発中のものです。2009/01/27(火) 23:41:01ID:xhf1lpaD
dispatchとか送ったりじゃだめなの?
0775名前は開発中のものです。2009/01/28(水) 00:07:10ID:JeeNdE6V
OnAnimate と os::TImer 周りをちょろっと見てみたが、
とりあえず stopTimer() しておけば、getTimer() 時には
setTimer() した値がそのまま流れるから、>>764
アニメーションできそうだけどなあー(1.5 で確認した限り)。

とりあえず、device 作ったらすぐに stopTimer() して、
setTimer(0) したあとに、各種 node を add するようにしてみると
どうだろうか?
07767642009/01/29(木) 21:43:37ID:3EGnGNZl
あれ、いろいろやっていたらちゃんと動きました・・・
何でさっき動かなかったんだろ?
stopとsetTimeだけでOKでした。
0777名前は開発中のものです。2009/02/02(月) 01:28:09ID:KbId8Vyo
irrEditのFogって何処で指定するんですか?
デフォルトで色は白みたいですが。
0778名前は開発中のものです。2009/02/02(月) 05:50:39ID:aYp0krC2
>>777
君はラッキーだ!とてもラッキーだ!
それはまるで青い鳥に逢えた兄弟のように!
さて質問だが知らない
0779名前は開発中のものです。2009/02/06(金) 01:32:14ID:9Imz+9bB
シェーダーを使ってみたい
でも、分からないいいサイトとかサンプルないでしょうか?
0780名前は開発中のものです。2009/02/07(土) 00:59:24ID:XPy8bQ1y
irrlicht1ヶ月目でやっと特殊な地面・壁判定できた。
ちょっと拡張したことやろうとすると日本語の情報まったく無いねー。
(チュートリアルの翻訳とかばっかり?)

本家のAPIリファレンスでクラス追って翻訳繰り返すしかないか。
調べたことサイト載せたいけど維持できる自信ねー。長い戦いだぜ。
0781名前は開発中のものです。2009/02/07(土) 09:56:25ID:ScHW0xDd
ぜひ、そのノウハウをブログに書いてくれ
0782名前は開発中のものです。2009/02/07(土) 13:28:50ID:lKasty/T
がらんどう状態の翻訳wikiがテンプレに載ってるんだからそっちに書いてくれよ
0783名前は開発中のものです。2009/02/07(土) 15:43:46ID:XPy8bQ1y
気が向いたら書いてみる
0784名前は開発中のものです。2009/02/07(土) 23:24:51ID:XPy8bQ1y
質問

http://www.irrlicht3d.org/wiki/index.php?n=Main.HowToUseTheNewAnimationSystem
wikiのTransitionsをモーション補間だと思ってるんだけど合ってる?

翻訳してコーディング試したけどブレンドしないね。
既存のモーションの先頭に追加の場合 = モーションが動作してない

// モーション関係
node->setTransitionTime( 15 );
node->animateJoints();
node->setAnimationSpeed( 15 );
 ・・・ 以後、ループなどの設定で描画

この関数は呼び出すタイミングとか必要?
0785名前は開発中のものです。2009/02/09(月) 19:54:49ID:Y2SoBYRA
あ、分かった ありがとう
0786名前は開発中のものです。2009/02/10(火) 12:30:16ID:/MJN1cDT
解決法書けよ
0787名前は開発中のものです。2009/02/12(木) 05:41:09ID:1p75ZWmt
785じゃないけど、こうかな?

モデル読み込んでるとこで、

model->setAnimationSpeed(30);
model->setFrameLoop(0, 60);
node->setTransitionTime( 15 );

ループで、

while(device->run())
{
model->animateJoints();

// biginScene〜endScene
}

ソフトウェアでボーン処理(1.4.2)してるから結構重いと思われ。
モレは、通常は
setJointMode( EJUOR_NONE );
で、ブレンディングが必要なタイミングだけ、
setJointMode( EJUOR_CONTROL );
して、ループで
animateJoints();
するようにして、なんとか凌いでる…。

ところで、まだ1.4.2なんだが、1.5は安定してる?
changes.txt見ると、魅力的な機能やらfixやらがあるんだが、
1.4.1→1.4.2でxの読み込みが超バグって泣かされたんで、躊躇してる…。
0788名前は開発中のものです。2009/02/12(木) 19:54:21ID:z0e2gKlB
1.5普通に使えてるよ。オヌヌメ。
0789名前は開発中のものです。2009/02/12(木) 20:30:40ID:1p75ZWmt
>>788
おk、煎ってくる
0790名前は開発中のものです。2009/02/13(金) 09:37:35ID:V2MX8176
セレクター部分が良く分からないんだけど

IAnimatedMesh で読み込んで IAnimatedMeshSceneNode で描画ノード作る。
判定用に ISceneNode で同じメッシュデータから ITriangleSelector を作る。
そうすると ISceneNode と IAnimatedMeshSceneNode の2つ描画されちゃうよね。

こーゆー場合はどうすればいいの?
理想は1つのNodeで両方管理したい。
0791名前は開発中のものです。2009/02/14(土) 00:03:47ID:xrAfzk3Z
>>790
IAnimetedMeshの親はIMesh
IAnimatedMeshSceneNode の親はISecenNode

http://irrlicht.sourceforge.net/docu/classirr_1_1scene_1_1_i_animated_mesh.html
http://irrlicht.sourceforge.net/docu/classirr_1_1scene_1_1_i_scene_node.html

http://irrlicht.sourceforge.net/docu/classirr_1_1scene_1_1_i_scene_manager.html#266625379b1558e9be1dc062ea4e71f7
を使えば 上記2つから作れるんじゃないかな?
もう少し詳しいひと補間よろ
0792名前は開発中のものです。2009/02/14(土) 01:33:42ID:GNk4XXfi
IrrlichtMLの中の人も見ているらしいので、質問させてください。

IrrlichtML1.5のビルドで、「Release - Fast FPU」の時だけ、

1>------ ビルド開始: プロジェクト: Irrlicht, 構成: Release - Fast FPU Win32 ------
1>リンクしています...
1> ライブラリ ..\..\lib\Win32-visualstudio\Irrlicht.lib とオブジェクト ..\..\lib\Win32-visualstudio\Irrlicht.exp を作成中
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Done_Face@4" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Init_FreeType@4" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Load_Glyph@12" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Done_FreeType@4" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_New_Face@16" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Get_Char_Index@8" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Render_Glyph@8" は未解決です。
1>CGUITTFont.obj : error LNK2001: 外部シンボル "@FT_Set_Pixel_Sizes@12" は未解決です。
1>..\..\bin\Win32-visualstudio\Irrlicht.dll : fatal error LNK1120: 外部参照 8 が未解決です。

というリンクエラーが出ます。
他の構成だとエラーおきずにちゃんとlib/dllが作られます。
FreeTypeのビルドで何か特別な設定とかいるのでしょうか?

ビルド環境は、

VS2008SP1
DirectX November 2008
Vista(32bit)

です。
0793名前は開発中のものです。2009/02/14(土) 02:34:45ID:GXRpJZjr
787
1.4.2→1.5
う〜ん。結構変わってるね。
Mayaスタイルのカメラの初期位置指定ができなくなった
カメラの移動速度単位が変わった
string型に直接イコール演算子でs32とかf32とかを代入できなくなった
setRotationは、現在からの相対角度ではなくて絶対角度を入れる仕様になった

bool HardwareSkinning;
の実装が待ち遠しいぜ
0794 ◆YATA/oetrw 2009/02/14(土) 17:22:54ID:doIyOwPB
>>792
エラーの原因は「Release - Fast FPU」の呼び出し規約が__cdeclから__fastcallに変更されているからです。
スタティックライブラリだと問題ないのが不思議。

対策は2つ。
1つ目はIrrlicht側の呼び出し規約だけ__cdeclに戻す方法。
2つ目はFreetypeの呼び出し規約を__fastcallに変更する方法。

後者のほうが速度的には最適だと思われるためファイル一式にまとめてみました。
動作確認をしていないので、動くかどうか報告お願いします。
ttp://etwas.wolfish.org/files/IrrlichtML-1.5-FastFPUModTEST.zip
0795名前は開発中のものです。2009/02/15(日) 22:12:45ID:lvPVKAdJ
>>794
なるほど……呼び出し規約とは気付きませんでした。

ビルドは通り、サンプルのIMETestの動作は確認しました。
Irrlichtは、ごく最近サンプルを読みながら勉強し始めた所なので
それ以上の動作確認はできていません。

対応ありがとうございます。
0796名前は開発中のものです。2009/02/16(月) 12:33:55ID:e7/u8sva
久しぶりに有意義な書き込みが増えたね
0797名前は開発中のものです。2009/02/16(月) 22:38:12ID:j0MqxWkl
文字描画はなんとかしてくんないか?
それさえありゃ、使い物になったのに
0798名前は開発中のものです。2009/02/16(月) 23:46:47ID:rBU4Xntr
MLつかった?あっちは文字つかえなかったけ?
0799名前は開発中のものです。2009/02/17(火) 00:13:02ID:RDK28y0e
>>791
出来ました!ありがとうございます!
普通に

ITriangleSelector Selector = this->Core->Scene->createTriangleSelector( Mesh, Node );
Node->setTriangleSelector( Selector );
Selector->drop();

で出来ました!
OBBとか以前レスあったようなのですが、使いたいのにソースDLできません><
どなたか分かる方いませんか
0800名前は開発中のものです。2009/02/20(金) 20:30:27ID:3qadtHxy
irrPhysxの作者に1.5対応してくれない?ってメール送ったら対応してくれた
一応報告
0801名前は開発中のものです。2009/02/24(火) 23:32:26ID:0RewKqWh
SDLからキー入力が奪えない・・・
ジョイスティックは取得できてるからレシーバー継承して書くしかないのだろうか・・・
なんかスマートじゃない実装で欝だわー
0802名前は開発中のものです。2009/02/25(水) 18:00:38ID:cuEKcEeQ
併用する時点でスマートじゃない気がするが
0803名前は開発中のものです。2009/02/25(水) 18:11:24ID:MKsiDZl8
どうすればいいぬかーーーーーーづけ!!
0804名前は開発中のものです。2009/02/28(土) 00:15:08ID:PWBt4IjE
おま!irrlichtにもジョイスティックのイベントあるじゃないか!
なぜ教えてくれなかった!

> event.JoystickEvent

しかし、イベントが50ms毎とかなのか検出にムラがあるな・・・
0805名前は開発中のものです。2009/02/28(土) 03:49:36ID:PWBt4IjE
なんとかirrlichtだけでキーボードのpress,down,up,releaseの4つ取得と
ジョイスティック使えるようにできた・・・ながいなー
0806名前は開発中のものです。2009/03/01(日) 13:12:49ID:ISZp42BO
ビルボードのUVの変え方貼り逃げ

vector2df UVCount, UVSize, UVScale, UVFrame;

// UVの縦横のコマ個数を保存
UVCount = vector2df( 4, 4 );
//UVの縦横の現在のコマを保存
UVFrame = vector2df( 0, 0 );

// 1つあたりのサイズ取得
UVSize.X = Texture->getOriginalSize().Width/UVCount.X;
UVSize.Y = Texture->getOriginalSize().Height/UVCount.Y;
// スケール比
UVScale.X = 1.0f/UVCount.X;
UVScale.Y = 1.0f/UVCount.Y;
// リソースサイズ取得
f32 sizeW = Texture->getOriginalSize().Width;
f32 sizeH = Texture->getOriginalSize().Height;
//
matrix4 mat;
// UV変更
mat = Node->getMaterial( 0 ).getTextureMatrix( 0 ).buildTextureTransform( 0.0f, vector2df( 0.0f ), vector2df( UVSize.X*UVFrame.X, UVSize.Y*UVFrame.Y ), vector2df( UVScale.X, UVScale.Y ) );
// マテリアル再設定
Node->getMaterial( 0 ).setTextureMatrix( 0, mat );
0807名前は開発中のものです。2009/03/14(土) 14:43:49ID:MYdApQq5
ジョイスティックイベントってずいぶん簡素な感じだけど
イベント起こるたびに使ってるキーの状態取るように自前で書いてねってこと?
0808名前は開発中のものです。2009/03/15(日) 10:05:04ID:acZCrlw8
Rockdebone2で作ったXファイル、読めはすれども動かん……。
他人様がBlenderで作ったらしい奴はちゃんと動くんだが。
0809名前は開発中のものです。2009/03/15(日) 21:31:22ID:I1rvJPrN
イルリヒトレッスンに正常に読めるように直すやり方が書いてあるけど
0810名前は開発中のものです。2009/03/18(水) 12:41:59ID:O/5piR/c
>>809
情報thx。

Meshviewerで再保存したら普通に読めた。
0811名前は開発中のものです。2009/03/22(日) 23:27:46ID:CBvGJds+
頂点数20,000ぐらいのモーション付きxファイルを動かそうとしているのですが、処理が重くて詰まってます。

irrlicht → ver 1.3

exampleの01.HelloWorld → 40fps前後
上記を自前のxファイルに差し替え → 1〜2fps

・そもそもそんな頂点数は無謀?
・PCスペックをどうにかしないと厳しい?
0812名前は開発中のものです。2009/03/23(月) 21:43:43ID:XcDakVO9
>irrlicht → ver 1.3
なぜ最新版を使わない!(現在1.5
あと01.HelloWorldはレンダラーがソフトウェアになっていたと思うけど
EDT_DIRECT3D9かEDT_OPENGLにした方が・・

・そもそもそんな頂点数は無謀?
そんな事無い。2万ぐらい普通。・・多分。
・PCスペックをどうにかしないと厳しい?
スペック見ないとわかんない
■ このスレッドは過去ログ倉庫に格納されています