07/12/02 16:12:39 gcOHwiFd
1.4入れてみた
以前組んだのを再コンパイルして走らせてみたが、CPU負荷がかなり改善されていい感じだ
356:名前は開発中のものです。
07/12/02 17:15:56 nuORG0MM
以前のが、1.4でも普通にコンパイルできるのか
357:名前は開発中のものです。
07/12/02 19:45:54 dQ2XkPD6
キー入力についてお聞きしたいのですが、
例えば全画面表示などに利用するAlt+ENTERを取得できるのでしょうか?
Alt+ENTERを押してもポンというシステム音がするだけで反応してくれませんでした。
確認として
printf("PressedDown : %s\n", event.KeyInput.PressedDown ? "on" : "off");
printf("KEY_RETURN : %s\n", event.KeyInput.Key == KEY_RETURN ? "on" : "off");
printf("KEY_MENU : %s\n", event.KeyInput.Key == KEY_MENU ? "on" : "off");
printf("KEY_RMENU : %s\n", event.KeyInput.Key == KEY_RMENU ? "on" : "off");
printf("is RETURN : %s\n", isKeyPressed(KEY_RETURN) ? "on" : "off");
printf("is MENU : %s\n", isKeyPressed(KEY_MENU) ? "on" : "off");
printf("is RMENU : %s\n", isKeyPressed(KEY_RMENU) ? "on" : "off");
printf("\n");
というコードをレシーバのEET_KEY_INPUT_EVENTに追加してみたところAlt単体では反応しませんでした。
唯一反応したのがAlt押す→ENT押す→ENT離す→Alt離すのときで、MENUのみonになりました。
ですがこれだと同時押しの判定ができず困っています。
ちなみにisKeyPressed()はIrrlicht Lessonさんの複数キー処理のメソッドです。
358:lesson.ifdef.jp
07/12/03 18:42:59 L4J5OiMR
>>357 さん
WinAPIの以下の関数を使用するとよいでしょう。
・GetKeyboardState(全ての仮想キーの状態を取得)
・GetKeyState(指定したキーの状態を取得)
これらを使用することにより、システムキーの状態も取得できるはずです。
また、Shift/Ctrl/Menu(Alt)を左右別々に取得も可能です。
ただし、システムキー「離した」という情報は取得できません。
これであれば、Alt+Enterを取得できるかと思われます。
359:名前は開発中のものです。
07/12/03 19:29:29 adx0yp9J
イベントレシーバでエンター検出したら、その中で>>358の関数呼べばいいかもね
それにしても、なんで、WM_SYSKEYDOWNは検出対象外なんだろか
CIrrDeviceWin32.cppのメッセージ周りを修正して再コンパイルって手もあるみたいよ
F10 in Windows(vitekのコード参照)
URLリンク(irrlicht.sourceforge.net)
360:357
07/12/03 22:52:11 FEcfD3/b
lessonさん、>>359さんありがとうございます。
>>359のレスを見て簡単かもと思ったのですが、Altを押している間は
イベントが呼ばれないようなので、この中での処理は諦めました。
結果として描画ループ内に
//全画面表示
//Altはirrのイベントで処理できないのでWIN32API使用
if(GetKeyState(VK_RMENU)>>7&1 && GetKeyState(VK_RETURN)>>7&1){
switchToFullScreen(); //自作全画面処理
}
といった感じで追加しました。
>>359の方法を使えれば良いのですが、自分には少々ハードルが高いようです。英語読めないですしw
不恰好ですが目的の動作は実現しました。感謝です。
361:名前は開発中のものです。
07/12/07 22:33:14 COpAhiGY
Windows API使うとLinuxで動かないのから
SDLとか使ったほうがいいんじゃないの
362:lesson.ifdef.jp
07/12/08 00:55:31 ipyfMo3f
>>361 さん
せっかくの掲示板ですから、
もう少し具体的な解決策も書いたらどうでしょう?
お互いスキルアップにもつながりますし
●キー取得
・DLLの改造…SYSKEYの処理を追加する
・SDLを使用する…SDL_PollEventの後で処理を追加する
・OpenGL(GLUT)を使用する…glutGetModifiersで処理
・DirectXを使用する…GetDeviceStateで状態取得
・Win32APIを使用する…GetKeyStateで状態取得
別の方法として、そもそも複数キーを使用しない
・Homeキーを押したら全画面処理をするなど
363:名前は開発中のものです。
07/12/11 01:51:39 WAcCpdFv
◆質問
Irrlicht.dllを動的に読み込むにはどうするのが一番楽?
◆やったこと
状況に応じてIrrlicht.dllを切り替えたくなった。
とりあえずLoadLibraryとGetProcAddressで
createDeviceの関数ポインタ取って来るスケルトンを作ってみたけど、
GetProcAddressの返り値NULL('A`)
◆環境
VC7.1くらい Irrlicht1.4
364:363
07/12/11 23:48:27 WAcCpdFv
そういえば関数名は正しかったのかな・・・と思いdependecywalker使用したら、
createDeviceじゃなくて、150文字くらいのもっさい関数でした…。
スケルトンは動くようになって良かったけど、DLL動的したら、この先ずっとDLL内の関数名を気にしながら開発しないといけないのか・・・?
365:名前は開発中のものです。
07/12/12 00:13:40 4mpK8EPR
シビアに速度を求めないのだったら、 Irrlicht の API を呼び出す単純なラッパーをつくってやればいいんジャマイカね。
俺はスクリプトエンジンから API 呼ぶプラグインつくってるけど、メモリ 2G 未満のもっさりノートで
EventReceiver とか Animator をスクリプトに記述するような無茶しても結構問題なく動いてる。
366:名前は開発中のものです。
07/12/12 00:16:19 4mpK8EPR
どうでもいいが間違ったorz
メモリ 1G 未満 ね。
367:モデム壊れてた ◆YATA/oetrw
07/12/12 00:32:10 hv2mu0E9
>>363
↓このようにC形式で関数エクスポートされてないので難しいかもしれない。
extern 'C' {
IrrlichtDevice* createDevice(...);
}
もし、動的ロードに成功したとしても問題がひとつ。
Irrlichtはマイナーバージョン間ですら互換性がない。
だから、本体実行ファイルが持っているヘッダとは別バージョンの
DLLを読み込んだときに関数エラーが発生してしまうと思います。
バージョン間の差異を解決できれば動的ロードも夢ではないです。
こう言うのしか思いつかなかった(互換性は埋められない)
exe->(動的ロード)->extern 'C' を使ったラッパーDLL1.4->(静的リンク)->Irrlicht.dll 1.4
L(動的ロード)->extern 'C' を使った ラッパーDLL1.3->(静的リンク)->Irrlicht.dll 1.3
-------
チラ裏
irrIMが手詰まりになったので、IrrlichtML 1.4おいていきます。
FreeTypeヘッダをインクルードしなくて済むようにCGUITTFontを隠蔽化。
URLリンク(etwas.wolfish.org)
368:名前は開発中のものです。
07/12/12 00:39:16 hv2mu0E9
かぶった。
>>365さんのほうが詳しそう。
>>364
extern 'C'されてないとCreateDevice@fooxyzzzzのような別の関数名に置き換わってしまうんです。
369:363
07/12/12 00:51:44 byr9Z6t8
>>365,367,368
ありがとう
昔0.8くらいの頃に作ったスケルトンに最新DLLを上書きしたらエラーでまくりで、
createDeviceに至っては引数構成も違う雰囲気。
DLLのヴァージョン上がる度に手製ソースの方までいじるのは避けたいから、
Irrlicht1.dll・・・みたいに用意して動的に切替、と考えてた。
DLLのバージョン更新による差分については、可能ならば自前ラッパーで吸収したいと考え中。
それはそれとして追加質問
Irrlichtに慣れたいんだけど、自分は今まで2D畑中心でやってきたからやはりまず2D系テクから覚えたい。
公式チュートリアルやシューティング勉強中の人のソースは見た、けど、
2Dのキャラクタ画像を拡大縮小したり透過率を指定したり回転させたりするようなサンプルが見当たらない。
今後、これらのサンプルはどういう方向性で探索するべきだろうか?
それとも、複雑な2D機能はIrrlichtでは対応出来ない?
370:名前は開発中のものです。
07/12/12 16:19:26 M90VuyCU
サンプルばっかりに頼らないでAPIドキュメントで調べろよ
でも回転は見当たらないから自分で頂点触るしかないのかな
371:名前は開発中のものです。
07/12/13 00:05:19 NC1QbeZC
前から気になってたんだが、
scene::ISceneNode::getRotation( ) は const core::vector3df& を返すのに、
scene::ISceneNode::getPosition( ) が const core::vector3df を返すのはなんでだぜ。
値返しなのに const はおかしいから単なるバグかね。
372:名前は開発中のものです。
07/12/16 17:42:06 G2b9tMyR
クォータニオンを扱う関数があるみたいですけど、どうやって使うんですか?
373:名前は開発中のものです。
07/12/17 01:35:15 9HMeNQD7
GOGOのサンプルをファイル分割してみた
整理してうpします
374:名前は開発中のものです。
07/12/18 23:55:35 cUWqWIvR
>>372さんも質問していますが、quatanionを使ったベクトルの回転はどうすれば良いのでしょうか。
API リファレンス読んでも、英語力皆無なのでどの関数がどんな機能を持っているのか…。
例えば任意のベクトル v1 とベクトル v2 があるとき、
v2 を軸として v1 を回転する方法などお教えいただけないでしょうか。
375:374
07/12/20 15:35:27 jqRYwRor
一応自己解決。下のコードでいけました。
quaternion qua;
qua.fromAngleAxis(rot, v2);
matrix4 mat = qua.getMatrix();
mat.transformVect(v1);
ただ、Direct3Dの関数で処理したのと微妙に挙動が異なるような。
試しにカメラを縦に回転させるアニメータを作ってみたが、
Y軸付近で回転量が小さくなるような気がしたのと、ジンバルロックが解決できない。
下のコードだとジンバルロックで動かなくなることはないのだが……。
D3DXQUATERNION qua(0.0f, 0.0f, 0.0f, 1.0f);
D3DXQuaternionRotationAxis(&qua, &axis, rot);
D3DXMATRIX mat;
D3DXMatrixRotationQuaternion(&mat, &qua);
D3DXVec3TransformCoord(&normalized, &normalized, &mat);
376:名前は開発中のものです。
07/12/20 17:17:48 D8YXZHbq
FEZのようなインターフェースを作れないかな?
FPSっぽいカメラとキー操作なんだけど
FPS視点ではなく3rd視点という
377:名前は開発中のものです。
07/12/20 17:29:57 1FySn3dT
普通に作れるでしょ・・・
378:名前は開発中のものです。
07/12/21 02:22:22 W06+iKTa
当たり判定は正確ですか?
379:名前は開発中のものです。
07/12/22 03:21:29 qH4tCHw4
CADとかShadeで作ったメッシュを読み込むには、
どの形式でエクスポートするのがベターでしょうか。
Xファイルだと読み込めないこと多いので……。
380:名前は開発中のものです。
07/12/24 23:31:42 VhCZgB33
最近ばかり初めてゲームの製作をするですが、
どうイジってIrrlichtでトゥーンレンダリングを出来ますか?
381:名前は開発中のものです。
07/12/24 23:50:22 5nrbPA5X
URLリンク(ja.wikipedia.org)シェーダ
382:名前は開発中のものです。
07/12/25 00:34:31 IJC6bSYh
>>380
Toon(Cell) Shading snippet using HLSL. See below.
URLリンク(irrlicht.sourceforge.net)
383:名前は開発中のものです。
07/12/26 09:27:39 xCkClyRy
CollisionResponceAnimatorを二つ設定すると
時間経過ごとに重力が増大していくんだが…Irrlichtのバグ?
SDK同梱のサンプルマップで試したんだが
落下速度が異常に早くなって、階段すら上れなくなる。
誰か、解決法や関連情報を知っている人はいないでしょうか。
384:名前は開発中のものです。
07/12/26 19:33:39 yUN26AYS
ColisionResponceAnimatorを2つ使う必要性が良くわからないんだが。
2つ以上のオブジェクトとColisionResponceしたいんなら、
1つのColisionResponceAnimatorにMetaTriangleSelectorを当てればおk
385:名前は開発中のものです。
07/12/26 23:44:30 xCkClyRy
>>384
出来ました。ありがとうございます。
386:名前は開発中のものです。
07/12/27 21:44:30 8IcVTLM6
Irrlichtでクリッピング距離を変えるにはどうしたらいいでしょうか。
Direct3Dでは
D3DXMatrixPerspectiveFovLH()
の引数で設定することができましたが、
Irrlichtではそれらしきものが見当たらず・・・
387:386
07/12/28 20:40:22 Hp4RPsA7
自己解決しました。
一応書いとくと
scene::ICameraSceneNode* camera = smgr->addCameraSceneNode(~);
で、
camera->setFarValue( 距離 );
で最大距離、
camera->setNearValue( 距離 );
で最小距離。
なんでForum見ることを思いつかなかったんだろ(;´Д`)
388:名前は開発中のものです。
07/12/28 22:39:55 ShcOiBSU
>>386
Irrlicht付属のヘルプにも載ってます
irr::scene::ICameraSceneNode Class Reference
setFarValue (f32 zf)=0
Sets the value of the far clipping plane (default: 2000.0f).
setNearValue (f32 zn)=0
Sets the value of the near clipping plane. (default: 1.0f).
389:386
07/12/30 12:25:25 KN9VCd/i
ありがとうございます。
ちゃんと調べないとダメですねorz
390:名前は開発中のものです。
08/01/04 06:42:00 B3YR/5Yx
イルリッヒは時代遅れ
391:名前は開発中のものです。
08/01/04 07:34:17 CcNPOaPX
今は何の時代?
392:名前は開発中のものです。
08/01/04 10:30:21 B3YR/5Yx
オーガ
393:名前は開発中のものです。
08/01/09 00:31:36 INF4za2E
あけましておめでとうございます
非公式ドキュメントのトップページが壊されていたため閲覧不能でした
先日修正しておきました
あそこの管理人さんは今どうしておられるのやら
394:名前は開発中のものです。
08/01/09 15:48:14 oe3Z1pea
おまえらなんでwindowsでイルリヒト使ってんの?
ダイレクトエックソでも使ってろよ
395:名前は開発中のものです。
08/01/09 19:16:17 1bUx6/kQ
低レベルな釣りだな
出直して来い
396:名前は開発中のものです。
08/01/09 21:37:04 bwau3Xen
しかしイルリヒトと読んでるところは評価出来る
397:名前は開発中のものです。
08/01/23 17:55:29 jmfBDAYQ
IrrlichtMLの中の人見てるみたいなので質問ここに書きます。
CGUITTFontについてです。
新たな文字が現れるたびにテクスチャに確保しているようですが、これはたとえばノベル
ゲーム等文字種が多数現れる場合、メモリ不足に陥らないでしょうか?キャッシュの上限
を設定したほうがよい気がしますが…
398:名前は開発中のものです。
08/01/23 18:05:26 jmfBDAYQ
連投すいません。フルスクリーン<->ウインドウの切り替えはデバイス作り直し
しかないのでしょうか。
その場合、deviceをdropしたら確保したリソースは自動的に開放されるのでしょうか?
399:名前は開発中のものです。
08/01/23 19:23:35 Sr3V79Hv
>>397
中の人じゃないが、前実験で第二水準まで全部出してみたけど
メモリ不測にはならなかったよ。
WindowsXP 512MB環境
400:名前は開発中のものです。
08/01/24 00:06:10 FpXK7fP/
ちょっと計算してみました。A8R8G8B8の16x16のテクスチャを確保すると1グリフあたり1024
byte=1kbyte。それが約2万文字なので約20mbyteということで比較的最近のビデオカード
だと問題の無い値に収まりますね。
とはいえたかがフォントのレンダリングにビデオメモリ20mbyteも食われるのはもったいない
おばけが出る気がします。20pixel位のフォントをレンダリングしたらさらに4倍に膨れ上がり
ますし。
やっぱり当初の計画通りFreeTypeを直接叩いてフレームバッファ(あるいはテクスチャロ
ック)に転送するという形をとることにします…
401:名前は開発中のものです。
08/01/24 01:14:48 qECrGTwM
>>397
MLの中の人です。数日間、モニターが壊れて画面がとてもカレー色でした。
一見メモリ消費量が多いように見えても、読込フォントの最大文字数までです。
なので、現在のOS上では微々たる消費量ではないかと。。
テクスチャは文字単位ではなく、フォント単位で確保されると思ったほうがいいです。
ビットマップフォントも含めて、メモリ不足に遭遇してないので放置ということで…。
どうしても気になるようなら、getFont(...)せずにCGUITTFontを直に生成して、必要なくなったらdrop()してはどうでしょう?
一部のGUIに適用するだけなら、この方法でうまく開放されると思います。
>>398
フルスクリーンへの切替は、IrrlichtサンプルのDEMOのようにデバイス作り直しのみ。
deviceをdrop()した時点で、Irrlicht管理のオブジェクトは全て破棄してくれますよ。
402:名前は開発中のものです。
08/01/24 01:14:49 YttCO1k2
>>400
おまいさんのこだわりは結構だし、それを止める気はないが、
現実によっぽど長編の小説でも実際に使われてる文字は
せいぜい2000文字ぐらいだぞ。
(以前トルストイの「戦争と平和」の訳で約1800文字種とかいうのを読んだ)
普通のゲームならせいぜい1000文字ぐらいじゃないか?
なので、限りなく杞憂に近いとは思う。
が、まあがんがれ
403:名前は開発中のものです。
08/01/24 04:50:43 xvOsgKrW
横から失礼。
コンシューマだとシナリオ作った後に
よく使う文字をカウントして、必要最低限の文字をもたせたり、
あとは、最近(?でもないか)ならキャッシュ機構をもたせて、
よく使うのはキャッシュヒット、あまり使わないのはその場で生成する。
MLのライブラリの中身見てないから、すでに実装されてるよ!だったらスマソ
404:名前は開発中のものです。
08/01/24 09:52:27 YttCO1k2
>>403
CGUITTFontはキャッシング機構を持ってる。
で、400が言ってるのは、
「キャッシュに上限がないみたいだけど、メモリ大丈夫?」
ということ。
で、現実としてそう問題にならんよ、と返答されてる
405:名前は開発中のものです。
08/01/24 10:23:18 FpXK7fP/
>>403
CGUITTFontは一度でも現れた文字は必ずキャッシュされているようです。
だからビデオメモリの消費量が心配なのですが…
>>402
情報ありがとうございます。ですがもうFreeTypeでレンダリングするところ
まではできてしまったので、もうこのままテクスチャ転送まで進めたいと思います。
1枚絵表示するのにテクスチャ確保するのもあほみたいなので、フレームバッファに
直接書き込む手段と、2D周りがかなり弱いのでその辺補うライブラリも構築することにします。
それと動的ロードの話が出てきましたけど、IReferenceCountedの実装を見るとヘッダ
ファイルのなかでdelete thisしてます。
これは、コンパイラの最適化か何かでDLL呼び出し元でdeleteされるとまずくないですかね?
new/deleteの実装が異なるコンパイラで作成されたDLLを動的ロードすると、delete時に
不整合を起こすような気がします。あまり詳しくないのでひょっとしたら無駄な心配
なのかもしれませんが…
406:名前は開発中のものです。
08/01/24 10:45:41 FpXK7fP/
>>401
回答ありがとうございます。
フルスクリーン切り替えは面倒ですね…。
407:名前は開発中のものです。
08/01/24 10:49:29 YttCO1k2
>>405
0.5ぐらいの時代だから2年近く前?にdeleteの問題は公式フォーラムで議論されてたはず。
で、結論は「問題なす」だったはづ
408:名前は開発中のものです。
08/01/24 17:48:13 FpXK7fP/
>>407
以前に議論された話題だったのですね。失礼しました。
409:名前は開発中のものです。
08/01/25 19:00:41 MPN2QJSG
質問です。直感でさくっとお答え頂きたいです。
FPSゲーを作ろうとしていて、よさげなライブラリを探しています。
画面を左右2分割にして、2人でプレイ出来るようにしたいのですが、
irrlicht での実装は描画の面において楽に出来ますか?
410:名前は開発中のものです。
08/01/25 20:32:40 jU51nQMI
>>409
ビューポートとカメラの切り替えで実現できると思います>分割対戦
411:名前は開発中のものです。
08/01/25 22:21:07 Vt/UlEbN
>>409
公式のチュートリアルに画面分割のサンプルあるお
412:名前は開発中のものです。
08/01/25 23:45:04 +c4l9exa
OctreeTriangleSelectorを使ってメッシュのどの面とどの面が
衝突したかまで分かる詳細な衝突判定ってできますか?
413:409
08/01/26 06:10:08 /SAwn9ff
>>409-410
レスありがとうございます!
ュルルルリッヒエンジンでがんばってみます。
414:名前は開発中のものです。
08/01/26 06:11:19 /SAwn9ff
スマソ >>410-411ですた。ありがとう!
415:名前は開発中のものです。
08/01/26 18:00:09 0EKxzkd2
OGREからこっちに鞍替えを目論んでます。
本家のFeaturesに「BlenderのエクスポーターがSDKにあるよ」みたいな事が書いてあったんで1.4のSDK落としてみたんですが、見つかりません…
readmeのフォルダ一覧にもexportersフォルダが書いてあるのに見つからず。
どうすれば…orz
OGRE用のメッシュファイル(.mesh)も読めるみたいですが、試してみた方いますか?
416:名前は開発中のものです。
08/01/26 18:35:32 zD+QiSlQ
>>415
OGREのCVSに「blenderimport」と「blendersceneexporter」ってフォルダがあるけど
これがBlender関係のSDKじゃね?
417:名前は開発中のものです。
08/01/26 21:19:47 0EKxzkd2
>>416
それってもしかしてコレのことですか?
URLリンク(ogre3d.org)
OGREでBlenderで作ったデータを読むことはできてます。
思いっきり要すると
Blenderで作ったデータをIrrlichtで読むにはどうすればいいの?
という事が聞きたかったのですが、うまく伝えられてなかったらすいません。
OGREで使ってた.meshのデータをIrrlichtでアニメ付でちゃんと読めればベストなんですが。
URLリンク(irrlicht.sourceforge.net)
に
there are exporters for popular 3D packages (Blender, 3DSMax, Gile[s], ..) included in the SDK.
って書いてあるから、SDK落とせば何か入ってんだろ、とか思ってたらそれらしいのが入ってないし。。。
BlenderとIrrlichtの組み合わせでやってる人、居ませんか?
418:名前は開発中のものです。
08/01/26 22:32:35 zD+QiSlQ
>>417
すまん、「本家のFeatures」を、OGREのFeaturesと勘違いしてたみたいだ
Irrlichtのスレなのにな・・・
Irrlicht + Blenderなら、アニメーションが出来るDirectXのメッシュ(.x)使った方がいい
IrrlichtはXメッシュをそのまま読めるからIrrlicht用にわざわざコンバートしなくて済むしな
ただ、Xメッシュはツールによってフォーマットが少し異なる場合があるので注意な
419:名前は開発中のものです。
08/01/27 00:34:07 +Y3aPJmy
メタセコで作ると「{」の位置のせいで読めなかったりな。
仕方ないから「{」の前に改行入れるコンバータ作っちまった。
420:名前は開発中のものです。
08/01/27 15:56:59 oNRFDMwA
>>418
.xで試してみました。
IrrlichtのMesh Viewerで読めたので、たぶんコレで大丈夫だと思います。
ありがとうございます。
421:名前は開発中のものです。
08/01/28 17:43:17 afuGywxJ
>>420
ところでOGREからこっちに移行する気になった理由はなんだったんだろか
422:名前は開発中のものです。
08/01/28 17:58:37 XOEvg/3a
どうせ「英語読めない」でしょ
423:名前は開発中のものです。
08/01/28 23:58:25 G7mZ8jO6
自分はOGRE知らないのですが、ライセンスに惹かれてIrrlichtを選択しました。
ところで、drop()を忘れそうな自分はboost::intrusive_ptrを愛用していますが、
使ってる人はいるでしょうか?
424:名前は開発中のものです。
08/01/30 11:06:43 +OYkniIM
>>423
俺も昔は使ってたけど、サイズがでかくなるし、ポインタコピーするたびに
内部でごにょごにょやってるしで精神衛生上よろしくない
だから、解放処理が必要なオブジェクトはシングルトンなマネージャクラスに任せてる
マネージャのコンストラクタで生成&初期化して、デストラクタで開放させれば
管理する必要が無くなる
やろうと思えば手動開放もできる
使うときは
IrrlichtDevice *dev = IrrManager::getSingleton().getIrrDevice();
みたいな感じで、初期化さえしとけばいつでもどこでもアクセスできる
OGRE使ってこの方法を見てから、俺の中ではこれが主流になってる
425:名前は開発中のものです。
08/02/02 16:46:40 XyRp6hRG
irr1.3.1で壁の向こう側など、見えないポリゴンの描画を省略したいのですがうまくいきません。
現在は自分の後ろ側などしか省略されず、視線方向のものは全て描画されています。
マップ作成にはGtkRadiant1.4.0を使用しているのですが、マップの作成法に問題があるのでしょうか?
それともそういった処理はirrに何かコードを追加しないといけないのでしょうか?
描画ポリゴン数が4万を越えたあたりから貧弱ノートでは厳しくなってきました。
マップロード部はこんな感じです。
IQ3LevelMesh *mapMesh = (IQ3LevelMesh*)scene->getMesh("maps/village.bsp");
IMesh *geometry = mapMesh->getMesh(quake3::E_Q3_MESH_GEOMETRY);
ISceneNode *mapNode = scene->addOctTreeSceneNode(geometry);
426:名前は開発中のものです。
08/02/05 00:59:32 iDwHPm2h
Material.Thickness=10.0;
driver->setMaterial(Material);
driver->draw3DLine(・・・)
というとき、Thicknessの値をいろいろ変えても画面上の線が常に1ドット幅なんですが、
どうすれば2ドットの線などを描けますか?
427:名前は開発中のものです。
08/02/05 20:36:47 iDwHPm2h
エンジンをDX9からOPENGLにしたらうまくいきました
メインサポートがOpenGLだったんですね
428:名前は開発中のものです。
08/02/06 00:53:20 Ac93WCkK
たぶん、ラインのサイズ指定がOpenGL依存なんだろうと思う
429:名前は開発中のものです。
08/02/13 21:57:17 sC00+SwF
OpenGLだとaddLightSceneNodeで照らしたaddCubeSceneNodeがちゃんと見えるのに、
DirectXだと光源がない状態になってしまいます。(真っ黒
しかし、ある友人のパソコンでは、
OpenGLのときにguifont->drawをするとクラッシュしてしまうので、(DXなら動く)
DirectXのサポートは続けておきたいのですが、どうしたらいいですか?
その他人のパソコンでguifont->drawが使えない理由としてどんなものか考えられるか、と、
DirectXに切り替えると上の事例が起きる問題の解決方法を教えてください。
430:名前は開発中のものです。
08/02/13 23:32:38 1ZAmjx1a
>>429
友人のGPUがOpenGL2.0に準拠してないかバグ持ちドライバな可能性がある
431:名前は開発中のものです。
08/02/13 23:43:28 sC00+SwF
>>430
うーなるほど そうだとするとこっちには手が無いですね・・・ ありがとうございます
432:名前は開発中のものです。
08/02/15 13:19:44 uwsfmr7Z
IrrlichtML版のgetFontで得た日本語フォントをISceneManager::addTextSceneNodeに渡すと、
CGUITTGlyphのデストラクタでエラーが出ます。
サンプルでもNode関係を使っているのはなさそうなので、
これは仕様なのでしょうか?
環境はWindowsXPMCEのSP2、IrrlichtML1.4、VisualStudio2005Pro、freetype-2.3.5です。
433:名前は開発中のものです。
08/02/15 22:44:27 aJ3r8mIn
>>425
見えない敵とかの描画を省略しようと思ったらそら交差判定が必要になるでしょう
434:名前は開発中のものです。
08/02/16 00:11:18 Kcju6cnr
URLリンク(lesson.ifdef.jp)
このバグ、1.4では直ってないの
435:名前は開発中のものです。
08/02/16 19:51:58 BJXzP4O8
皆さん音楽はIrrlichtで音楽はどうしてますか?IrrKangはフリー以外だとライセンス購入が
必要ですし…何かお勧めのライブラリがあれば教えてほしいです。
436:名前は開発中のものです。
08/02/17 11:12:58 k/Iqe8sD
xファイルの読み込みについて質問があります。
irrlichtでxファイルを読み込むときに右手、左手の座標系を指定して読み込ませることって
できるんでしょうか?
URLリンク(gamdev.org)
↑のようにXSIで作成しているときと、Xファイルビューアまたはirrlicht上で表示したときに鏡
像のような表示になってしまうのを、なんとかしたいのです。
環境はWinXP VC2008 irrlicht-1.4 です。
437:名前は開発中のものです。
08/02/18 20:53:38 9PaR4TSR
>>432
driverに預けてあるテクスチャを本体が先に開放してるくさい
どこかで既にremoveTextureが呼ばれてる気がする
addTextSceneNodeの後にfont->grab()でもしておけばエラー回避は可能
その代わり、テクスチャ開放がされなくなります
どうしたものか
438:名前は開発中のものです。
08/02/19 11:43:22 CEbiXydm
ニコニコ吹いたw
439:名前は開発中のものです。
08/02/24 02:38:40 eWBznvro
過疎り杉で全俺が泣いた。
ところで、436の件が自己解決したので報告。
汚い方法ではあると思うけど
irrlichtのCXMeshFileLoaderを元にx座標を反転させながら
xファイルを読み込むファイルローダを作って解決させました。
440:名前は開発中のものです。
08/02/24 11:04:27 OyDG9+KH
>>439
おつかれです。
441:名前は開発中のものです。
08/02/26 23:42:36 ve4woYRm
カメラがどんな向きを向いていても
常に手前から光が当たる
手抜きライティングをするにはどうすればいいですか?
442:名前は開発中のものです。
08/02/27 00:44:37 pSPDiQm8
>>441
ライティングしないようにするとかはダメ?
(ポリorテクスチャの色そのまま表示するように)
対象ノード->setMaterialFlag(irr::video::EMF_LIGHTING, false);
443:lesson.ifdef.jp
08/02/27 01:28:06 7TCghY78
>>441
考え方として、以下のようなものはどうでしょう?
1.カメラの背後に光源という感じに、カメラを親として光源を設定
2.キーが押されたら、カメラの代わりにワールドを動かす
これで、一応はカメラの方向から必ずライティングされるかと
444:名前は開発中のものです。
08/02/28 15:18:04 e5iGSVK/
いつになったらゲームパッド対応するんだろう・・・
445:名前は開発中のものです。
08/02/28 23:49:36 9jMY1Ybl
>>442
立体感つけたいのでライティングします。
>>443
CameraSceneNodeFPSと組み合わせたいのでそれはちょっと。
446:lesson.ifdef.jp
08/02/29 19:57:00 MU+29BuV
>>441
「常にカメラの方向からライティングされる」という意味ですよね?
「常に手前」という表現がちょっと曖昧なので、上記で解釈しました。
ライトを作成する時に、親を「ライト」にすれば大丈夫です。
(前回のは、親に設定したはずが別の値を設定していたため、
期待した動きにならなかったので、別の方法を提示してみました。
今日見たら引数が間違ってた・・・)
//FPSカメラを作成
ICameraSceneNode *CameraNode = smgr->addCameraSceneNodeFPS(0,100,5);
//カメラを親にライトを設定(ライトはカメラの位置)
smgr->addLightSceneNode(CameraNode, vector3df(0,0,0), SColorf(0xFFFF0000), 100.0f);
第1引数にカメラのnodeをセット
第2引数に親からの位置を(0,0,0)=親と一緒をセット
で、やってみてください。
447:lesson.ifdef.jp
08/02/29 19:59:41 MU+29BuV
446の修正
・ライトを作成する時に、親を「ライト」にすれば大丈夫です。
↓
・ライトを作成する時に、親を「カメラ」にすれば大丈夫です。
448:441
08/03/04 23:27:13 +F3tYXlG
出来ました!こんな感じでやりました。
scene::ICameraSceneNode *camera = smgr->addCameraSceneNodeFPS(0, 100.f, 100.f);
camera->setPosition( core::vector3df(0,0,-100) );
scene::ILightSceneNode *light = smgr->addLightSceneNode( camera, core::vector3df(0,0,0) );
light->getLightData().Type = video::ELT_DIRECTIONAL;
449:lesson.ifdef.jp
08/03/08 20:08:31 42plfOng
>>441
おめでとー!
これを少しいじれば、太陽のように見せることもできそうですね。
あとでやってみようかな。
450:441
08/03/08 23:32:53 vuhDlgNP
>>448
あれ、ELT_POINTでも同じになっている気がします・・。
点光源なのに離れても暗くなりません。
あと、テクスチャつきだとライトの色は反映されているみたいですが影がつきません。
451:lesson.ifdef.jp
08/03/09 01:14:28 QaJyCdZ9
>>441
テクスチャつきのオブジェに対してのライトは
マテリアルの設定を操作する必要があります。
SMaterialのLightingを見てみてください。
これがライトの影響を受けるか受けないかです。
(デフォルトでは影響を受けないようになってたかも)
452:名前は開発中のものです。
08/03/11 21:38:47 qxZlvuLX
αつきテクスチャを貼り付けたビルボードをαテストを使って透過させつつ、
頂点カのαを減少させてフェードアウトってできるんでしょうか?
EMT_TRANSPARENT_ALPHA_CHANNELに頂点のα値を反映させたいんです
453:名前は開発中のものです。
08/03/11 23:26:06 txVQuh45
lessonさんのライトのところを見たんですが
FPSゲームでよく使われるスポットライトも作れるんでしょうか
その場合カメラと連動してライトも動かさないといけないのですが・・・
454:名前は開発中のものです。
08/03/12 22:51:57 biTsIJxr
>>451
いや、デフォルトではtrueですが・・。
何でだろ、examplesのSpecial FxのroomMeshを読み込む部分のコードを
そのままコピーしたらちゃんとライティングされています。
455:441
08/03/12 23:35:51 biTsIJxr
その内ソースをupします。
456:名前は開発中のものです。
08/03/13 16:26:24 Aiv+dbIO
SIRENみたいなゲームも作れそうですね
457:名前は開発中のものです。
08/03/13 17:25:48 23U/XaUN
>>453
頂点単位でしかライティングできないから、ライトマップ使わないとだめ。
勘違いしてたらすまん。
458:名前は開発中のものです。
08/03/14 22:33:58 HWct05mu
>>457
いや、出来なくないと思いますが?
バンプマッピングとかパララックスマッピング使えますし。
フォンシェーディングは自分でシェーダー読み込まないと使えないみたいですが。
459:名前は開発中のものです。
08/03/17 23:23:15 haIYreE8
>>453
スポットライトはパララックスマッピングやバンプマッピングでは使えないようです・・。
しかもライト2個までだし!!自分で実装しないといけませんね、これは。
URLリンク(gonzo.dip.jp)
ライティングはどうやってもうまくいかないのであきらめることにしました・・。
それよりさまざまな問題が。
何故かどうやっても1バイトのメモリリークがなくなりません。行やファイル名が表示されないんです。
OBBTreeを使ったメッシュ同士の衝突判定クラスで、
三角形を含む全ての当たっているOBBを検出したいのですが1個しか検出できません。
ソースのDLKEYはobbtreeです。
URLリンク(home7.highway.ne.jp)
OBBTreeの使い方はここを参考にしました。というよりプログラムをコピーしました。
460:441
08/03/17 23:32:00 haIYreE8
>>459 = >>441
とりあえず上げときます。
461:名前は開発中のものです。
08/03/21 13:41:00 k9t2KKAY
単純なコリジョンについて誰か教えてください。
BB対BB、セレクタ対セレクタ、セレクタ対BBのどれかで
単純に現在接触しているかを知るにはどうすればいいですか?
462:名前は開発中のものです。
08/03/21 17:06:47 ipDiEarq
円が2個あるとします。 接触する事とは、中心と中心の距離で求められます。
463:名前は開発中のものです。
08/03/21 18:15:39 k9t2KKAY
>>462
手のジョイント位置と対象位置でバウンディングスフィアしてパンチ!とか一応やってみました。
でもirrlichtの機能の範囲でBBなんかでさくっと判定できる方法があればやり方を知りたいです。
具体的にはCSceneNodeAnimatorCollisionResponseを参考にしてみたんですが
移動抜きで現時点の接触を知りたい場合にスフィアなりせずにirrlichtの機能任せにできないかなと思って。
464:441
08/03/22 21:30:03 KVorMeSU
>>461
BBって一般的なAxis Aligned Bounding Box(AABB)のことですよね。
template<class T>
bool irr::core::aabbox3d<T>::intersectsWithBox(const aabbox3d<T> & other) const [inline]
でAABB同士の当たり判定ができます。
セレクタ対セレクタは、・・・難しそうですね。
セレクタ対BBは、ITriangleSelectorに指定したAABBに含まれる三角形ポリゴンを取り出す機能があります。
それにしてもうpから5日経つのに音沙汰なしですか・・?
>>459 の
OBBTree使ったメッシュ同士の当たり判定。結構高速でそれなりに正確です。
ゲームに使うには十分だと思います。
URLリンク(www-2ch.net:8080)
流れちゃったので再うpします。DLKEYはobbtreeです。OBBTreeの部分は
URLリンク(home7.highway.ne.jp)
をIrrlicht用に移植しました。TriangleSelectorとしての機能もつけたいんですがうまくいきません・・。
ほかにもいろいろ問題がありますが、まぁ動いたのでいいでしょう・・・。
465:名前は開発中のものです。
08/03/23 17:58:02 YyMn0R5A
また単発質問させてください。
スクリーンの大きさぴったりに描画されるビルボードの作り方はありますでしょうか?
(カメラを親にしてビルボードを作成しているので常に目の前にビルボードを描画するところまではできています。)
何をしたいかというと
1回テクスチャにレンダしたデータを画面に表示するときにピクセルシェーダを経由して表示させようとしています。
draw2dimageではシェーダーマテリアルの設定がうまくいきませんでした。
何かヒントでもあればご教示ください。
466:lesson.ifdef.jp
08/03/23 22:41:58 fLRzMwSc
プロバイダが9日から規制されてて書き込みできずorz
規制解除されたので書き込みを
>>441
ライトはビデオカードによって表示できる個数に制限があるかもです
古いカードでも3個まではライトを確認してます
(前面から青、背面から赤、カメラ位置に白で確認)
うちの環境だとバンプマッピングができず、ビデオカード変えると
OpenGLでの描画ができず・・・ (初期不良か
ファイルはダウンロードできたのでOBBTreeを見てみたいと思います
当たっているOBBが違う色で表示されれば目視が楽そうですね
色々いじってみます(rockwall.bmpがなかったので適当に作りました)
467:441
08/03/24 21:11:28 cbUStkSt
>>465
2D用の命令ではシェーダーが適用されない使用になっているのでだめです。(ソースを見ると、シェーダー無しの状態に戻していました)
struct VS_OUTPUT
{
float4 pos : POSITION0;
float2 texCoord : TEXCOORD0;
};
VS_OUTPUT vs_main( float4 inPos: POSITION )
{
VS_OUTPUT o = (VS_OUTPUT) 0;
inPos.xy = sign( inPos.xy);
o.pos = float4( inPos.xy, 0.0f, 1.0f);
// get into range [0,1]
o.texCoord = (float2(o.pos.x, -o.pos.y) + 1.0f)/2.0f;
return o;
}
RenderMonkeyのScreen-AlignedQuadから取ってきた頂点シェーダーです。(HLSL)
別にカメラを親にしなくても、このシェーダーを適用するだけで表示される・・筈です。
シーンノードで描画する場合はsetAutomaticCullingでカリングのモードをEAC_OFFにしておきましょう。
>>466
当たっているOBBは赤で表示されます。最初に見つかった1ペアだけですが。
Irrlicht SDKに含まれていますよrockwall.bmp
(だからIrrlicht SDKと同じフォルダ構造にしていたんです)
468:465
08/03/24 23:59:55 YyeAT6+O
>>467
ご指摘ありがとうございます。
指摘されたHLSLを使うことで、うまくできました。
以下が作ってたサンプルになります。
(内容は法線MAPを使って輪郭描画を行うサンプルです。)
URLリンク(gamdev.org)
469:名前は開発中のものです。
08/03/25 00:01:49 YyeAT6+O
あ、書き込み全部書く前に投稿してしまた、、orz..
上のZIPですが、自分の環境がirrlichtライブラリの中に手を入れたりしているので
そのままではコンパイルできないかも知れませんので注意してください。
470:名前は開発中のものです。
08/03/29 00:01:52 9eKD+9jY
キャラクタークラスはどう作ります?
候補と印象は以下
1、エンティティの中にシーンノードを保持する。
シーンノードを自由に組み合わせられるのは魅力的だが、
特殊な表現をするには結局新しいシーンノードを作る必要がありそう。
2、シーンノードを継承する。
自由に描画処理を記述できるメリットは大きいが面倒そう。
3、シーンノードアニメータを継承してシーンノードに追加する。
複数のシーンノードを組み合わせて使うのが大変そう。
4、それ以外。
471:名前は開発中のものです。
08/03/30 23:27:58 q0Ctn/EA
URLリンク(www.irrlicht3d.org)
Special Shader Pack by Nadroって何処からDL出来るんですか?
フォーラムに飛びますが何処からDLするのか分かりません。
472:lesson.ifdef.jp
08/04/04 22:03:23 I+kk4Izj
>>441
遅くなりましたがOBBTreeの報告です
COBBTreeTriangleSelector.cpp内の17行目辺り
bool COBBTreeTriangleSelector::_checkCollision()の
この部分を
if (!childAL && !childAR && !childBL && !childBR)
{
result = true;
}
trueを返していますが、コメントアウトしておいてください。
if (!childAL && !childAR && !childBL && !childBR)
{
// result = true;
}
これで、当たり判定があった部分は全て表示が変わります。
ただし問題が1つあって、回転させた場合、
「回転する前のオリジナルのOBBTreeの位置に当たり判定が発生」しています。
これは、createRotationAnimator()が悪さをしているのだとは思いますが
そこまでは調べていません。
とりあえず報告まで お試しください
473:lesson.ifdef.jp
08/04/04 22:10:21 I+kk4Izj
>>470
キャラクタークラスを作成するにあたって、
私としては「2、シーンノードを継承する。」が一番楽だとは思います。
キャラを用意して、動きなどを設定してあげれば
render()で全て描画してくれるので確かに楽です。
getPosition/setPosition/getRotationなどがすぐに使えるのがいいです。
気になる点としては、描画順番の管理の仕方でしょうか?
(弾丸を発射させても、MAPの後ろに隠れて表示されないなど
そういう問題が発生して、どうしようかと思っている所です)
これは、他にわかる人からの助言が欲しいです。
474:lesson.ifdef.jp
08/04/04 22:18:25 I+kk4Izj
>>472
17行目ではなく147行目です・・・
関数名で検索してください;;
>>471
Nadro氏の投稿記事内で時々URLが出ていますが、
全てがダウンロードできるわけではなさそうです。
URLリンク(rapidshare.com)
URLリンク(rapidshare.com)
URLリンク(rapidshare.com)
あとは、同じように記事内にShaderのプログラムがそのまま
記載されているので、それを必要な部分に組み込む形になるかと思います。
475:名前は開発中のものです。
08/04/06 00:16:57 Naj1qGbT
>>473
ソースを見た限り、Irrlichtはノードをテクスチャでソートしてしまっているので、
細かい描画順の管理(Ogreのプライオリティ管理のようなもの)は出来ないかと思います。
が、半透明オブジェクトのパスは、通常オブジェクトのパスより後に来ることは保証されているので、
マップのような半透明のHUDで弾オブジェクトが隠れてしまうのを防ぎたいのであれば、
registerNodeForRendering の引数に ESNRP_TRANSPARENT を指定するといいんではないでしょうか。
476:名前は開発中のものです。
08/04/06 00:25:09 8nqMAlGm
>>472
ありがとうございます!試してみます
>「回転する前のオリジナルのOBBTreeの位置に当たり判定が発生」しています。
どうりで当たっていないOBBが赤くなると思いましたよ・・。
さて、どうすりゃいいか・・。
477:lesson.ifdef.jp
08/04/06 01:01:36 qjatMiVM
>>475
>Irrlichtはノードをテクスチャでソートしてしまっているので、
やっぱり、ソートしてる感じですかorz
特定の向きだと表示される場合があったりしてすごいはまりました。
情報ありがとうございます。
はまる前はISceneNodeを継承させずにやってたので気づきませんでした。
478:lesson.ifdef.jp
08/04/06 01:19:50 qjatMiVM
>>476
アニメータが悪さしてるかと思っていましたが
setPosition/setRotationで移動/回転を行ってみたところ
こちらでもオリジナルの座標で計算していました。
なので、_checkCollisionなどで「回転」も与えないと厳しそうですね。
オリジナル版では接触部分の色変化はさせていなかったので、
もしかしたら気づかなかったのかもしれません。
479:名前は開発中のものです。
08/04/07 17:33:46 tTPi+peN
Irrlicht lessonのとうりインストールしましたが、エラーが出てコンパイルできません。
Vista,VC++Expressで、プロジェクト名lessonです。どこが悪いか教えてください
<出力>
1>------ ビルド開始: プロジェクト: lesson, 構成: Debug Win32 ------
1>マニフェストを埋め込んでいます...
1>mt.exe : general error c10100b1: Failed to load file "..\Debug\lesson.exe". U_Q9LdK
1>~[
1>ビルドログは "file://c:\irrlicht-1.4\lesson\lesson\Debug\BuildLog.htm" に保存されました。
1>lesson - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
ビルド ログ ビルド 開始: プロジェクト: lesson、構成: Debug|Win32
コマンド ライン 一時ファイル "c:\irrlicht-1.4\lesson\lesson\Debug\RSP00000113044012.rsp" を作成しています。内容 :
[
/outputresource:"..\Debug\lesson.exe;#1" /manifest
".\Debug\lesson.exe.intermediate.manifest"
]
コマンド ライン "mt.exe @"c:\irrlicht-1.4\lesson\lesson\Debug\RSP00000113044012.rsp" /nologo" を作成しています。
出力ウィンドウ マニフェストを埋め込んでいます...
mt.exe : general error c10100b1: Failed to load file "..\Debug\lesson.exe". U_Q9LdK
~[
結果 ビルドログは "file://c:\irrlicht-1.4\lesson\lesson\Debug\BuildLog.htm" に保存されました。
lesson - エラー 1、警告 0
480:名前は開発中のものです。
08/04/07 17:35:25 tTPi+peN
>>479
VC++2008Expressです
481:441
08/04/07 21:45:06 HN/Waynt
>>478
>なので、_checkCollisionなどで「回転」も与えないと厳しそうですね。
行列を使って回転の処理もちゃんとしているつもりでしたが
どうやら何処か処理が間違っているようです。
野村XX氏のは行列を移動用と回転用で分けて渡していますがこのプログラムでは
そうしていません。core::matrix4のtranslateVectとrotateVectを使えば分けなくてすむと
思ったのでそうしました。
482:lesson.ifdef.jp
08/04/08 00:32:01 UBGq2D2b
>>479
>Irrlicht lessonのとうりインストールしましたが、エラーが出てコンパイルできません。
むむ、すみません。ファイルを作成した場合は、
ビルドする対象に設定する(ソリューションに追加する)必要があります。
その部分を更に詳しく追記しておきましたので、確認してください。
■エラー内容
通訳?すると、ビルドする対象が存在しないためビルドに失敗しました、です。
■対処方法
ソリューションにmain.cppを追加してください。
URLリンク(lesson.ifdef.jp) の下部に詳細を追記しておきました。
ソリューション エクスプローラーにファイルを追加すると大丈夫です。
>>441
OBB自体の描画は問題ないようなので、当たり判定をする時の座標を
注目すれば何とかなりそうな気はします。
こちらでも、確認できたら再度お知らせします。
オリジナルよりも簡潔になっている部分も多々あったので応援してます。
483:名前は開発中のものです。
08/04/08 19:37:04 46Ui6/PR
>>482
できました。ありがとうございます
またお願いします
484:441
08/04/08 23:57:58 s2YHW7Mx
とりあえずイベントレシーバーを使ってオブジェクトを自由に移動、回転できるようにしてみました。
でも今日うpは無理かもです。
485:441
08/04/10 21:51:47 x0tHNvR8
1箇所修正しただけで直りました!
COBBTreeTriangleSelector::isCollisionの
boxA.Matrix.rotateVect(vecAtoBTrans, boxA.Center - boxB.Center);
となっているところを
boxA.Matrix.rotateVect(vecAtoBTrans, boxB.Center - boxA.Center);
にしなければならなかったようです。
486:441
08/04/10 23:42:49 x0tHNvR8
変更予定
1.基底クラスをITriangleSelectorではなく独自のに変更する
(CTriangleSelectorだとTrianglesがCOBBTreeTriangleSelectorを作るたび配列Trianglesが
毎回作られ処理時間とメモリが無駄)
2.できればOBBの面が裏返らないようにしたい
3.接触しているポリゴンのペアと交点を取得可能にする
4.OBBTree以外にも球や直方体と当たり判定が可能にする
lesson.ifdef.jpさんデバッグありがとうございます
487:名前は開発中のものです。
08/04/11 19:18:44 guvAZOSL
こんにちは、Irrlicht Lessonを利用させていただいている者です。
LessonB03ーXファイルの表示について、lesson.exeを実行するとちゃんと表示できます。しかし、Lesson.dswを開いてVC++上で実行するとコンパイルはできても、tiger.xが真っ黒でテキスチャが反映されません。一応Debugフォルダにtiger.xを入れてみてもやっぱりだめです。
何が原因かがわかりません。
Lesson006-テクスチャはともにうまくいきました。
どうぞご確認ください
488:lesson.ifdef.jp
08/04/11 22:13:29 5Azux61S
>>483
VCの初期設定の不足分の指摘ありがとうございました。開発がんばです!
>>441
修正お疲れ様です! 変更予定箇所が沢山ありますね。
変更は大変なので、バックアップを忘れずにっっ
>>487
ご利用ありがとうございます。微妙にライトの挙動がおかしいですね…
プロジェクトから実行した際に、真っ黒なのを確認しました。
現段階の対応策として、nodeの定義の後に以下を追記してください。
ライトの影響を無視するので、テクスチャの確認は可能です。
node1->setPosition(vector3df(-2,0,0));
node1->setMaterialFlag(EMF_LIGHTING, true); //←これ追加 false:ライト無視
:
node2->setPosition(vector3df(2,0,0));
node2->setMaterialFlag(EMF_LIGHTING, true); //←これ追加 false:ライト無視
<<お土産>>
現在作っているFPSゲームの実行ファイルをアップしておきます。
URLリンク(lesson.ifdef.jp)
489:lesson.ifdef.jp
08/04/11 22:36:35 5Azux61S
>>487
ご利用ありがとうございます。微妙にライトの挙動がおかしいですね…
プロジェクトから実行した際に、真っ黒なのを確認しました。
現段階の対応策として、nodeの定義の後に以下を追記してください。
ライトの影響を無視するので、テクスチャの確認は可能です。
node1->setPosition(vector3df(-2,0,0));
node1->setMaterialFlag(EMF_LIGHTING, false); //←これ追加 false:ライト無視
: ^^^^^
node2->setPosition(vector3df(2,0,0));
node2->setMaterialFlag(EMF_LIGHTING, false); //←これ追加 false:ライト無視
^^^^^
※trueではなくfalseです…。
trueで表示されないことを確認して、そのままupしてしまったorz
490:名前は開発中のものです。
08/04/13 10:39:19 DXszE/f/
こんなかんじで
URLリンク(2sen.dip.jp:81)
491:lesson.ifdef.jp
08/04/13 21:34:01 yZyopwHg
>>490
数日で戦車のXファイルを表示できるまでになったのはスゴイですね
キー操作で動かせるようになると、さらに楽しくなるのでオススメです
492:名前は開発中のものです。
08/04/13 23:09:36 ++ZLZc4W
URLリンク(www-2ch.net:8080)
まだまだ間違いがありました・・。
DLKEYはobbtreeです。多分入れ忘れは無いと思います
493:lesson.ifdef.jp
08/04/13 23:50:10 yZyopwHg
>>492
ダウンロードしてみましたが、以下の2つが見つかりませんでした…
CCameraSceneNode.cpp
CCameraTPSSceneNode.cpp
とりあえずご報告まで
494:441
08/04/14 22:12:55 u3RVdEoB
現在は使っていないのでなくても大丈夫だと思います・・・
495:470
08/04/16 11:25:01 0VSRffog
>>473
返信遅れてすいません。
シーンノードはデータ駆動でデータを再現すれば状態を復元できます。
ゲームの特徴と一致していますし
「キャラクターはシーンノードを継承する」というので同感です。
ただ、言われた通り描画順序の問題や更新処理のみを行うことが困難です。
本格的にやるならIrrlichtの改造が必要そうですね。
496:441
08/04/17 22:45:15 t7r2WetS
三角形同士の当たり判定って結構重いですね・・。
BVHとか使わなきゃいけないんでしょうか?
497:lesson.ifdef.jp
08/04/19 18:08:01 IeoDZSma
>>441
使用していないファイルをプロジェクトから外すことで
問題なく動作するのを確認できました。
キーで2つのオブジェクトも操作できるので当たり判定の確認も
わかりやすくなっていました。
>>470
キャラクターの描画だけであれば、シーンノードで特に問題はありません。
銃弾や他オブジェクトはシーンノードを継承せずに、
drawIndexedTriangleList/drawIndexedTriangleFanを使用して
回避することも可能です。
できればシーンノードを継承していきたいですが、
私としては当分は自前の描画で対応してみようかなと思っています。
498:441
08/04/20 20:58:58 A28b/pa+
"Cache-Ef?cient Layouts of Bounding Volume Hierarchies"
を読んでみる事にします。
499:441
08/04/20 21:02:14 A28b/pa+
すいませんコピーするときfiを直すの忘れてました。
Cache-Efficient Layouts of Bounding Volume Hierarchies
です。果たして実装できるのだろうか?
URLリンク(gamma.cs.unc.edu)
URLリンク(lucille.atso-net.jp)
URLリンク(lucille.atso-net.jp)
500:470
08/04/26 22:21:42 LvlHrFkO
>>497
自前で描画できれば最高ですね。
実力不足でシーンノードを利用するというのが本音です。
できればオブジェクトは統一的に管理したいので
OnRegisterSceneNodeを呼ぶタイミングを操作する手もあるかもしれません。
これならIrrlichtを修正する必要はないですしね。
色々と検討してみます。
501:470
08/04/26 22:43:32 LvlHrFkO
>>500
テクスチャでソートされてましたね・・・。
すいません、忘れてました。
勉強してきます。
502:lesson.ifdef.jp
08/04/27 23:35:33 RbWzqJOX
HLMV(Half-Lifeのモデルビューア)を作成しました
最初から読み込めるモデルファイルに
URLリンク(www.counter-strike-dl.com)
で公開されている武器やキャラクターモデルを使用できるようになります
(ここでは、Counter-Strike 1.6のモデルに対応しています)
MD2に比べて、モデルのクオリティが上がっているのでなかなかよさげです
また時間があればSourceやHL2にも対応してみたいと思います
こちらでソースと実行ファイルを公開しました
URLリンク(lesson.ifdef.jp)
>441
BVHは詳しくないですが、基本的にはIrrlichtで用意されている
ITriangleSelectorを使用しています
もしかしたら、こちらの方が参考にしやすいかもしれません
(Irrlichtのソースはかなり見やすい方なのでおすすめです)
>470
シーンノードを使用するとrender()が呼ばれない場合が発生してしまいます
自分の記述ミスなのか、内部のミスなのかは不明ですが
ここも何か関係しているのかもしれません
この場合の無理やりな対策方法としてOnRegisterSceneNode()内で
render()を呼び出すことで何とか回避可能です
自力の描画はモデル等ではなく空間上のスプライト(画像)関連で
使用しています
これであれば、特に描画に苦しむことなく対処可能かと思います
drawIndexedTriangleFan/drawIndexedTriangleListを呼べばいいので
挑戦したくなったときにでも見てみるとよいかもです
(DirectXやOpenGLと記述方法が同じなので、そちらで勉強するのもアリです)
503:名前は開発中のものです。
08/04/30 19:11:34 lXj3d1Z3
URLリンク(www.realintegrity.net)
Irrlicht-Toutorial7.Collisionで
scene::IAnimatedMesh* q3levelmesh = smgr->getMesh("20kdm2.bsp");
scene::ISceneNode* q3node = 0;
if (q3levelmesh)
q3node = smgr->addOctTreeSceneNode(q3levelmesh->getMesh(0));
scene::ITriangleSelector* selector = 0;
if (q3node)
{
q3node->setPosition(core::vector3df(-1370,-130,-1400));
selector = smgr->createOctTreeTriangleSelector(
q3levelmesh->getMesh(0), q3node, 128);
q3node->setTriangleSelector(selector);
selector->drop();
}
と、q3nodeが設定されていますが、このq3nodeは一体何ですか?後で妖精ノードが追加されているけどそれとは違いますよね。
504:名前は開発中のものです。
08/04/30 19:12:19 lXj3d1Z3
もうひとつ
scene::ICameraSceneNode* camera =
camera = smgr->addCameraSceneNodeFPS(0,100.0f,300.0f);
camera->setPosition(core::vector3df(-100,50,-150));
scene::ISceneNodeAnimator* anim =
smgr->createCollisionResponseAnimator(
selector, camera, core::vector3df(30,50,30),
core::vector3df(0,-3,0),
core::vector3df(0,50,0));
camera->addAnimator(anim);
anim->drop();
は、カメラが壁にぶつかるのを防ぐためにカメラ衝突判定用のノードanimを作り、これと壁との衝突を判定しているとうことでいいですか?
505:名前は開発中のものです。
08/05/01 04:56:34 CPjy9vH/
>>503
地面や壁をAnimatedMeshを元にOctTree方式でシーンノードとして生成してる。
その後、q3nodeを通して生成したシーンノード(壁)を移動させたり
衝突判定オブジェクトを各作成したりしてます。
>>504
Yes
506:名前は開発中のものです。
08/05/01 17:53:06 2ANReaIH
>>505
壁がありましたね。学習がはかどりました
507:名前は開発中のものです。
08/05/17 23:39:10 hnGWnyu0
URLリンク(sourceforge.net)
こんなのが発足した模様です。
508:名前は開発中のものです。
08/05/18 00:30:20 4fpjGLSX
かなり前から公式にもアナウンスありますな
でも、まだ再稼動したばかりなので様子見…
Irrlichtは基本機能のみのリリースで
irrExtから必要な拡張機能をチョイスする使い方を想定してるっぽい
フォーラムからエクステンションを発掘してくる時間を、これで節約できればいいな、と
509:名前は開発中のものです。
08/05/27 19:26:56 aolezDeL
スレ違になるかも知れませんが、質問させてください。
GtkRadiantでマップを作ると、商用目的での利用は不可と知ったんですが、
商用目的でゲームを作成する場合、どうしたら良いのでしょうか?
bsp以外の形式では駄目なんですよね?
510:lesson.ifdef.jp
08/05/27 19:58:58 Ku435Aae
>>509
参考になればですが
「Valve Hammer Editor」というものもあります
GtkRadiant同様にbspファイルを作成可能ですので
こちらを調べてみてはどうでしょう
bspにこだわらなければxファイルでマップを作成することも可能です
511:名前は開発中のものです。
08/05/27 22:57:58 aolezDeL
>>510
おお!即答どうもです。
特にbspにはこだわってません。xファイルでもいけるのかぁ。
Valve Hammer Editorもこれから調べてみます。
512:名前は開発中のものです。
08/06/03 21:34:28 M+I6OwAB
案内カキカキ
TopPage - game-develop.com wiki
URLリンク(wiki.game-develop.com)
GameDevWikiを何とかするスレ
スレリンク(gamedev板)
513:名前は開発中のものです。
08/06/03 22:12:48 ioTO156U
>>511
Irrlichtはいろんなメッシュの形式をサポートしています。
そしてIrrlicht Wikiにはいろんなマップエディタへのリンクがあります。
514:名前は開発中のものです。
08/06/11 23:35:53 2R3HrNSv
age
515:名前は開発中のものです。
08/06/16 22:49:04 mwennFf6
DirectXSDKは、最新バージョンを入れておく必要がありますか?
516:名前は開発中のものです。
08/06/17 00:08:09 ED7pbxcn
アーカイブ付属のIrrlicht.dllを使うだけならSDKは全く必要ないですよ
ランタイムだけ最新のものにしておけば大丈夫です
517:名前は開発中のものです。
08/06/17 11:35:23 61jTsrvQ
VC++2005EE に導入してサンプルをビルドしたら、以下の警告が出ました。
LNK4075: /EDITANDCONTINUE は /INCREMENTAL:NO の指定によって無視されます
デバッグオプションに、/ZI が指定されていたので、/Z7 に変更したら警告は回避されましたが、
この回避方法で問題ないでしょうか?
518:名前は開発中のものです。
08/06/18 22:42:17 VmSvuPuh
すみません、meshやテクスチャをリソースから読み込むには、どの命令を
使えばいいのでしょうか?
ヘルプで探しましたが、それらしい命令が見つかりませんでした。
519:名前は開発中のものです。
08/06/19 12:39:05 9n9YiRNS
>>518
フォーラムくらい調べたらどうだ?
520:名前は開発中のものです。
08/06/20 22:09:58 tu1r3q9t
テキスト形式のXファイルをリソースから読み込むのは無理なんじゃない?
DirectXには専用の読み込み命令があるからできるけど、これにはないっぽいし。
テクスチャなら load>lock とかのファイルP取得で可能。
バイナリ形式のXにはIrrlicht自体対応していないから、別のフォーマットを
リソースにするのがよいかと。
521:名前は開発中のものです。
08/06/20 23:43:18 qP/MJpm6
リソースって実行ファイルの一領域のことかね
ファイルクラスにリソースから読み込めるようなコードをかけばいけそうだが面倒だろうね
標準機能ではファイルシステムとZIPファイルからのみ
522:名前は開発中のものです。
08/06/21 22:38:51 RLcQR90a
小数以下まで取得できる高精度なタイマーを使うにはどうすれば?
523:名前は開発中のものです。
08/06/21 23:10:22 r8z/kdJT
少数以下?何が?
524:名前は開発中のものです。
08/06/22 05:02:30 XhnKslKn
違ったらすまん
URLリンク(irrlicht.sourceforge.net)
525:522
08/06/24 23:04:11 WZc05MQe
この関数、整数でしか取得できないんだよなあ・・・
526:名前は開発中のものです。
08/06/24 23:15:25 NpZv7yBS
1000.0で割ればほら秒単位で小数点以下が
527:名前は開発中のものです。
08/06/24 23:41:55 3dzGCyOt
>>522
ITimerで満足できないと他に手段がないような…
Windows上ではWinAPIのメディアタイマーを使って、理論上は高精度な時間を取得してるよ
IrrlichtDevice *irrdevice;
u32 milliseconds;
irrdevice = CreateDevice(...);
milliseconds = IrrlichtDevice->getTimer->getRealTime();
>>526の言うように1000.0で割れば1秒未満は小数点以下になるのだが
528:名前は開発中のものです。
08/06/24 23:43:27 3dzGCyOt
>>527
変数間違えた
milliseconds = irrdevice->getTimer->getRealTime();
529:名前は開発中のものです。
08/06/25 02:27:18 BgXBw7cf
パフォーマンスカウンタじゃいかんのか?
530:522
08/06/25 22:11:45 nNaFuqPk
>>529
それどうやって使うんですか?
1ms未満も取得したいです。
531:名前は開発中のものです。
08/06/26 00:24:03 VosWmIAS
質問の前提条件を小出しにするのはやめてくれんか
532:名前は開発中のものです。
08/06/26 00:35:55 6P5ToaRh
これだけ情報が出たんだからググレカスでおk
533:名前は開発中のものです。
08/07/03 19:23:03 2Vc3TCLM
CollisionManagerについてお聞きします。
irr::scene::ISceneCollisionManager::getSceneNodeFromRayBB()
Returns:
Returns the scene node nearest to ray.start, which collides with the ray and matches the idBitMask, if the mask is not null. If no scene node is found, 0 is returned.
この関数は、ray線に当たっているノードではなくray線に最も近いノードを返し、当たっているか否かは関知しないといことですか?
534:名前は開発中のものです。
08/07/03 20:15:58 aTMEusjJ
which collides with the ray
535:名前は開発中のものです。
08/07/03 21:29:57 j83D325d
>>533
いやいや、>>534も言ってるように、Ray直線上の物体で一番手前のものを返すってこと
言い換えるとRayが当たっているものの中で一番近いノード
536:名前は開発中のものです。
08/07/04 01:01:03 Nuwyr8lG
>>535
だから「which collides with the ray」かつ「nearest to ray.start」なんだろ
説明読めば、答えがまんま書いてあるぞって言いたかっただけだよ
537:名前は開発中のものです。
08/07/04 01:02:27 Nuwyr8lG
>>535
あ、すまん何をとちったか補足に煽り入れちまったwww俺m9(^Д^)プギャー
>>535さんごめんね、そして補足ありがトン
538:名前は開発中のものです。
08/07/04 01:04:11 58m11+HL
533です。わかりました。
それと
getSceneNodeFromRayBB ( core::line3d< f32 > ray,
s32 idBitMask = 0,
bool bNoDebugObjects = false
)
idBitMaskはいったい何のことですか?お願いします
539:名前は開発中のものです。
08/07/04 02:33:32 FKcMRpjl
>>538
衝突判定先SceneNodeのidを選別するためのマスク
id AND idBitMask = 0ではないNodeだけがRay判定対象
対象Nodeには予め自分で好きな値を定義しておくれ
540:名前は開発中のものです。
08/07/04 14:00:28 m932bkDc
irrlichtてWindowsメッセージのコールバックを受け取ることって出来ますか?
搭載GUI の外観ショボいから自前のを使いたいんですが
サンプルなどを見たところ
Winのメッセージプロシジャのループみたいなのも
全部隠蔽されちゃってるっぽいのですが。
541:名前は開発中のものです。
08/07/04 14:45:08 m932bkDc
あ、あった。
URLリンク(www.realintegrity.net)
542:名前は開発中のものです。
08/07/04 15:51:38 m932bkDc
メッシュ表示したいだけなのに実行時エラーがでるんですが、誰か助けてください><
VisualStudio2005 WinXPを使ってます。
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
{
IrrlichtDevice *Device = createDevice(EDT_OPENGL, dimension2d<s32>(512, 384), 16, false, false, 0);
IVideoDriver *Driver = Device->getVideoDriver();
ISceneManager *Scene = Device->getSceneManager();
Scene->addCameraSceneNode(0, vector3df(0,10,-40), vector3df(0,0,0));
IAnimatedMesh* TigerMesh = Scene->getMesh("tiger.x");
IAnimatedMeshSceneNode* Tiger = Scene->addAnimatedMeshSceneNode(TigerMesh);
Tiger->setPosition(vector3df(-2,0,0));
while(Device->run())
{
Driver->beginScene(true, true, SColor(0,100,100,160));
Scene->drawAll();
Driver->endScene();
}
Device->drop();
return 0;
}
543:名前は開発中のものです。
08/07/04 16:44:31 m932bkDc
あ、DLLのバージョンが違うとか?
DLL作るのってSDKに入ってるプロジェクトをそのままビルドしたら
いいんですかね?
なんかコンパイルは通りましたが何処にもDLLができてません><;
プロジェクトの構成もdllになってるようですけど、やり方があるんでしょうか?
544:名前は開発中のものです。
08/07/04 16:51:38 m932bkDc
あ、binフォルダに入ってましたwww
545:名前は開発中のものです。
08/07/04 17:19:59 h5ni90+9
誤爆も含めて、ここはお前の日記帳じゃないんだぞ
546:名前は開発中のものです。
08/07/04 18:19:35 FKcMRpjl
ブログに書いてな
DLLなんてプリコンパイルされてるのがあるんだから、それを使えばいいじゃない
メッセージのコールバックはDevice->run()を自分で処理すればおk
以上終了
547:名前は開発中のものです。
08/07/04 19:35:40 58m11+HL
>>538
ありがとうございました
548:名前は開発中のものです。
08/07/04 20:10:39 Nuwyr8lG
>>548
いえいえ、どういたしまして。
549:名前は開発中のものです。
08/07/05 17:38:38 DHgfPhX0
下のような感じでアルファ用とカラー用で二つのUVもたせて
テクスチャを何層か重ねて描画したいんですけど
ITerrainSceneNodeでそういうのってできますか?
------ 花カラー
****** 花アルファ
------ 草カラー
****** 草アルファ
------ 土カラー
550:名前は開発中のものです。
08/07/06 07:55:11 IqMgGGcD
irrlichtの座標軸ってこう?なんかカメラ位置決める時とか分かりづらい。
y
/
/
/
------→x
¦
¦
↓
z
551:名前は開発中のものです。
08/07/06 09:56:54 IqMgGGcD
見え方なんてのはカメラのアップベクトルとかで変わるか・・・
ごめん。
552:名前は開発中のものです。
08/07/08 18:39:07 MJ51wxLd
モデルのデータファイルとか皆さんどうしてます?
ユーザーにデータ丸出しにするのは抵抗があるんだけど・・・
DXDの3DXLoadMeshFromXInMemoryみたいな
メモリ上に展開したデータから読み込む関数はないですよね?
なにか方法はないでしょうか?
553:名前は開発中のものです。
08/07/08 22:36:05 ELir2XE9
>>552
irr::io::IFileSystemのcreateMemoryReadFileでいけるんじゃない?
メモリ上のデータをファイルのように扱える関数と思われる。
554:名前は開発中のものです。
08/07/08 22:37:04 ELir2XE9
って、いつの間にか1.4.1リリースしてんだ。
知らなかった・・
555:名前は開発中のものです。
08/07/08 23:03:37 gy2iNnCl
私たちはIrrlicht1.4.1をリリースしました。sourceforgeサーバから利用可能です。
ゆっくりダウンロードしていってね。1.4.1はバグフィックスメインだよ。
・COLLADA1.3ローダーの改善。Milkshape1.8形式、拡張.3ds、.obj、
マイクロソフト.xファイルアニメーションプレイバックのサポートや改善。
・OSXでX11追加。
・いくつかの速度最適化
・たくさんのバグフィックス、API拡張、および他の小さな改善。
irrchilit1.4.1と100%互換の新しいirrEditをリリースしました。IrrEditはIrrlicht用でフリーの3Dシーンエディタです。
詳細は更新履歴を見てください。
556:名前は開発中のものです。
08/07/08 23:59:47 JhsSynUi
おいおいw
気づくの遅ーよwww
>>552
ファイルシステムは自前のアルゴリズムのものを読み込ませられなかったっけ?
557:名前は開発中のものです。
08/07/09 05:49:19 yHOeFPG0
>>553
マニュアルみたら、なにやら「内部関数だから使わないでくれ」と・・・
>>556
>ファイルシステムは自前のアルゴリズムのものを読み込ませられなかったっけ?
もう少し具体的に教えてもらえないでしょうか。
どういうことかいまいち分かんないです。
あくまでファイルのパースやメッシュ・ボーンの構築とかはirrlichtに任せたいんです。
そこまで自前でやるとしたらこれ使う意味がかなり無くなりますし・・・
558:名前は開発中のものです。
08/07/09 15:41:36 T43bLGu5
lesson.ifdef.jpタソありがとう!
559:名前は開発中のものです。
08/07/09 22:40:05 SF8ehHxO
おまいらIrrlichtを何で知った?
560:名前は開発中のものです。
08/07/09 22:45:22 SDEdX/tX
このスレwww
561:名前は開発中のものです。
08/07/09 22:54:37 DBg69Y8l
ogreスレ。資料少なくてこっちきちゃった
562:1
08/07/09 23:22:05 2Ro0RYQH
3D Engine Databaseの上位レビュー数のリンクから。
前スレが埋まらないのは大きな誤算でした。
>>557
>>553のやり方ならこれは?
URLリンク(irrlicht.sourceforge.net)
563:名前は開発中のものです。
08/07/10 05:03:35 W/0efpFG
>>562
ありがとう。丁度それを調べてて、その辺が落としどころかなと思った。
564:553
08/07/10 21:53:53 Ji3rYPpZ
>>557
>マニュアルみたら、なにやら「内部関数だから使わないでくれ」と・・・
・・・そんな事書いていないけど?
Creates an IReadFile interface for accessing memory like a file.
This allows you to use a pointer to memory where an IReadFile is requested.
Parameters:
memory,: A pointer to the start of the file in memory
len,: The length of the memory in bytes
fileName,: The name given to this file
deleteMemoryWhenDropped,: True if the memory should be deleted along with the IReadFile when it is dropped.
Returns:
Returns a pointer to the created file interface. The returned pointer should be dropped when no longer needed. See IReferenceCounted::drop() for more information.
565:名前は開発中のものです。
08/07/10 21:58:59 W/0efpFG
>>564
すまそ。
irr::io::createMemoryReadFile の方を見てたw
566:名前は開発中のものです。
08/07/12 15:03:40 Mi2YO7SP
IrrNewtを落としたのですが、サンプル(helllo.cpp)をコンパイルできません。
#include "irrnewt.hpp"はリンクがうまくできましたが、その中の#include <newton.h>で
c:\irrnewt_sdk_0_4\include\irrnewt.hpp(27) : fatal error C1083: include ファイルを開けません。'newton.h': No such file or directory
と出ます。そこでnewton.hを探してもIrrNewt中どこにも見当たらず困っています。
newton.hはどこにあるのでしょうか?
サンプルのexeファイル自体は動くので問題はそれだけだと思います。
567:名前は開発中のものです。
08/07/12 15:27:54 ffOHtAdU
Newton Game Dynamics SDK必須
URLリンク(www.newtondynamics.com)
568:名前は開発中のものです。
08/07/12 16:56:53 Mi2YO7SP
>>567
それ入れて再コンパイルしたらエラー警告の嵐。別の使います
569:名前は開発中のものです。
08/07/13 16:36:30 Gix+c9ik
irrlichtってモデル大量に生成したらその分だけもモデルデータ読み込む?
たとえば、同じモデルデータならそこから参照するとかの最適化は実装されてない?
調べればいいんだろうけどDLしてないからさ・・・
570:名前は開発中のものです。
08/07/13 17:23:39 4McjhppB
DLすればいいじゃん。
571:名前は開発中のものです。
08/07/13 17:36:49 Gix+c9ik
DLしたいんだけど目がつぶれちゃって確認できないんだよね。
572:名前は開発中のものです。
08/07/13 19:03:54 b/sDRfyP
目がつぶれてるなら確認できないな・・・
となるとモデルの最適化も確認できないしこの話題はこれでもう終わりか。
573:名前は開発中のものです。
08/07/13 19:08:08 Gix+c9ik
あ、目治った。
けど、DLするための手が折れたからDLできない。
574:名前は開発中のものです。
08/07/13 21:03:55 pMB423a9
もう夏休みなのか
575:名前は開発中のものです。
08/07/13 21:35:54 M1BsVdsc
嘘を言っているようには見えない
俺が確認してやるよ
576:名前は開発中のものです。
08/07/13 22:07:31 Gix+c9ik
ありがとうございます。ついでに答えてください。
じゃないと今度は心が折れそうです。
577:名前は開発中のものです。
08/07/13 22:58:45 M1BsVdsc
俺はおまえを信じたのに、おまえは俺を信じないのか?
黙って待ってろ
578:名前は開発中のものです。
08/07/13 23:17:10 Gix+c9ik
(;^q^) 信じてます・・・ごめんなさい・・・待ちます
579:名前は開発中のものです。
08/07/13 23:25:44 M1BsVdsc
今後俺を疑ったり催促するような真似をしたらもう教えねえ
いいな
580:名前は開発中のものです。
08/07/14 00:17:00 n7MzDU6p
はい、ほんと信じて待ってます
581:名前は開発中のものです。
08/07/14 00:22:26 t4sVOdei
よし待ってろ
他の奴らは普通に話進めてくれや
582:名前は開発中のものです。
08/07/14 18:37:37 NUWzYR3F
あげ
583:名前は開発中のものです。
08/07/14 18:48:05 n7MzDU6p
あのどの位待てばよいですか?
584:名前は開発中のものです。
08/07/15 19:17:07 kClkDntU
大うそつきめ!地獄におちろ!
おちてしまえ!
585:名前は開発中のものです。
08/07/16 11:44:30 iSpH132a
泣いた女が バカなのか
だました男が 悪いのか
褪(あ)せたルージュの くちびる噛んで
夜霧の街で むせび哭(な)く
恋のみれんの 東京ブルース
586:名前は開発中のものです。
08/07/17 19:20:01 o/DUvkgJ
irrlicht用モデルにMilkshape3Dを使うと思っています
しかし、感想を読むとMilkshapeは簡単にモデルを作れる反面、アニメーションには向かない。
アニメーションをつけて動かすとばらばらになる
またシェーディングができないとかありました
そんなに使えないのでしょうか。あくまでirrlichtとの関係でなんですけど...
587:名前は開発中のものです。
08/07/17 21:00:06 uAQ9zE97
Milkshapeがアニメーションに向かないなんて初めて聞いたけどソースどこ?
588:名前は開発中のものです。
08/07/17 22:54:05 o/DUvkgJ
forum
589:名前は開発中のものです。
08/07/18 09:08:39 UGzqvHd8
>>588
ちゃんと書こうよ。君の為のチラ裏スレじゃないんだよ?
590:名前は開発中のものです。
08/07/18 09:20:49 lURobZwZ
ちゃんと書いてもこのスレ頼りにならないもの。どうせ。
591:名前は開発中のものです。
08/07/18 10:48:34 UGzqvHd8
じゃあ、最初から質問レスしなきゃいいのに
どうせ。
592:名前は開発中のものです。
08/07/18 11:27:57 8KTlYCyj
ForumのURLをはってほしかった
593:名前は開発中のものです。
08/07/20 09:22:15 ftAAg5vX
そもそもIrrとMilkのどっちのforumなんだよ
なぜ使えないって書かれてるかわからないと答えようない
それに、使えないって言ってるやつに使えるソフトを聞くと
MAYAとXSIのどっちが使いやすいかの論争になって
MAXユーザーが「昔はみんなMAX使ってたけどね」と哀愁に浸っていると
LWユーザーが「人に勧めるわけじゃないけどLW使いやすいよ」って控えめに割り込んでくる
メタセコユーザーが「メタセコで十分だよ。むしろ高額ソフト使いにくいよ」と主張し始める
そして、全員から「メタセコはアニメーションできねーよ!!」とツッコミが入り終了
涙目で作者逃亡したアニメーション作成ソフトを引き合いに出すが誰にも相手にされず。
594:名前は開発中のものです。
08/07/20 09:39:36 NEoxp7jg
落ち着けよ
595:名前は開発中のものです。
08/07/20 10:24:18 QG3DgdEh
まあ3Dソフトはそれごとに仕様が違いすぎて単純に比較する事自体無理がある
596:名前は開発中のものです。
08/07/20 14:39:34 zgBZw03q
そもそもMilkshape3Dはフォーマットのコンバートぐらいしか使い道ないだろ
個人的にはgameSpaceでもいいから市販パッケージもの使えと思うけどな(Shade以外で)
できれば最近安価になってきた4大3DCGソフトのどれかを選ぶべき
597:名前は開発中のものです。
08/07/20 16:26:03 V9aQD2R1
>>596のオススメは?
598:名前は開発中のものです。
08/07/20 17:06:23 n1XBSwxO
suretigai
599:名前は開発中のものです。
08/07/20 17:25:33 W8xdRxhe
今日のチラ裏
違う環境でモデリングして出力倍率をソフトのデフォルト値でやってしまった
お城が鶏小屋サイズ('▽'
600:名前は開発中のものです。
08/07/21 17:23:10 SToAXBSf
ボーンの子にしたモデルがぴったり追従してくれないみたいなんですがなぜでしょうか?
Forumで質問してみたけど英語が通じてないのか誰も答えてくれないw
URLリンク(irrlicht.sourceforge.net)
解決方法を知ってる人がいたら教えてください。
601:名前は開発中のものです。
08/07/21 19:22:06 FidJB4ox
>>600
現メインコーダーのHybridがレスしてくれてるぞw
要約するとこんな感じ?
>何件か報告があり、2つ程考えられる原因がある。
>詳しいことが分かるまでバグフォーラムに移すね。
602:名前は開発中のものです。
08/07/21 19:50:44 SToAXBSf
>>601
バグスレに移されたw
困ったなぁ・・・
装備アイテムにもキャラと同じ骨仕込んでモーション付けて重ね置きするしか解決法が思いつかない。
他になにかアイデアないですか。
603:名前は開発中のものです。
08/07/23 01:43:10 g3maxvXW
OGREを使ってるゲームの画像と比べてIrrlichtのはかなりクォリティ低いみたいですけど、
やっぱり向こうの方が性能いいのかなあ
604:名前は開発中のものです。
08/07/23 08:38:28 akH1GhBF
性能に差はそれほど無いと思うのだが、Irrlichtはチュートリアルのモデルが超が付くほどショボい
605:名前は開発中のものです。
08/07/23 13:50:22 mrkPJ98o
簡単なゲームを作るんだったらIrrlichtの方が楽
逆に金とれるような、規模の大きいゲームを作りたいんだったらOGREの方が楽
606:名前は開発中のものです。
08/07/23 14:12:09 iTcNFbMW
その代わり、OGREは本体とエクステンションのライセンスが複雑
本体自身がIrrlicht程自由じゃないのものね
ま、金取るゲームならライセンス料払えばいいのではないかな
607:名前は開発中のものです。
08/07/23 14:18:22 UKJLenJr
OGREはダイナミックリンクにしとけばおk
スタティックでも金はかからんよ。ソースは公開しなきゃならんけど
608:名前は開発中のものです。
08/07/23 14:26:08 iTcNFbMW
ダイナミックでもLGPLだとリバースエンジニアリングは妨げてはいけないっぽいことが
wikipediaに書いてあったけど、真相はどうなんだろ?
609:名前は開発中のものです。
08/07/23 14:27:21 OzVNaIY+
ライセンスといえばIrrlichtの方も配布の仕方がいまいち分からないんだけど
license.txtとかに
URLリンク(irrlicht.sourceforge.net)
ここの文章コピペって、
あとはソース改造してdllに変更加えた場合は
何処をいじったかchange.txtとかに適当に書いておけばいいかな?
610:名前は開発中のものです。
08/07/23 14:35:45 iTcNFbMW
>>609
Readme.txtに概要、change.txtに詳細を書けばいいと思う
後は元のソースをどこからDLすればいいかとか
611:名前は開発中のものです。
08/07/23 14:42:37 OzVNaIY+
概要って何の概要?
612:名前は開発中のものです。
08/07/23 14:54:19 qT85z1qg
>>610
>詳細を書けばいいと思う
ライセンスの問題が絡むから憶測や、曖昧さを残して
レスしては、見てる回りの人が混乱するだけですよ
613:名前は開発中のものです。
08/07/23 15:05:53 UKJLenJr
>>608
ダイナミックだと、LGPLはOGRE DLLだけで、自アプリには好きな独立してライセンスを適用できるyp
スレ違いすまん
614:名前は開発中のものです。
08/07/23 15:16:54 iTcNFbMW
>>611-612
概要ってのは、どんな目的の改造なのか
ともかく憶測ですんません
作者に直接聞いてください
615:名前は開発中のものです。
08/07/23 15:33:27 OzVNaIY+
>>614
改造の”目的”なんて全く問われてないでしょう?
なんか言葉の使い方が杜撰だと思う。
>>609の
2を訳してみると、”改造した事を明示”すればいいんだと思うんだけど
それが単に”改造しましたという事実”を述べればいいのか、
あるいは”改造した内容”まで提示する必要があるのか、
その辺が分からない。
あと、3は
”この表示を消しちゃいけない”って事だと思うから
”概要”なんかじゃなくてきちんと
The Irrlicht Engine License以下を全部をコピペして貼る必要があると思うんですけど。
フォーラムにポストするにもこの辺の微妙なニュアンスを英語で書く自信がないw
616:名前は開発中のものです。
08/07/23 16:47:08 iTcNFbMW
>>615
ご立腹している理由がわからないけど、言葉遣いが不適切で申し訳ない
>あるいは”改造した内容”まで提示する必要があるのか
公開されたものをDLしてみる側としては、これがあると相違点がすぐわかって嬉しい
617:名前は開発中のものです。
08/07/23 17:07:19 1mEIYJe8
質問しといて回答の仕方にケチつけるとか阿呆にも程がある
そういうのは放置しとくに限るよ
618:名前は開発中のものです。
08/07/23 17:33:47 OzVNaIY+
>>616
>公開されたものをDLしてみる側としては、これがあると相違点がすぐわかって嬉しい
DLした人が嬉しいか嬉しくないかって問題じゃないでしょw
大は小をかねるという意味で改造の内容も書いとけば安全といえば安全なんだろけど。
>>617
むしろありがたい。
まともに回答もする気も考える気もない人間に適当な書き込みをされても
612もいうように周りが混乱するだけだから。
619:名前は開発中のものです。
08/07/24 01:09:21 HsrNUR2y
LGPLだとDLL使っても感染しないんだっけ?
「そのアプリケーションに必須の機能」の場合はDLLで外に出しても丸ごと感染するのがGPLだったと思うが。
620:名前は開発中のものです。
08/07/24 01:35:34 hR1ptHB3
上から目線の夏厨が降臨してるwww
自分の思い通りにいかないと気がすまないメンヘラみたいな野郎だ
621:名前は開発中のものです。
08/07/24 03:30:12 xNFLyC/c
更に上を行くわけですね、わかります
622:名前は開発中のものです。
08/07/24 21:52:56 eKs5QfTK
zlibはゆるい
623:名前は開発中のものです。
08/07/27 14:59:45 VW6euZzn
Irrlicht a GoGoの日本語フォント表示クラス使いたいんですけど、
1.41だとコンパイル通りません;;
どうやって改造したらよいのでしょうか?
とりあえずIUnknownは既に無くなったらしいのでIReferenceCountedに変更。
さらに純粋仮想関数化された関数を何個か再定義しつつ、
const化された関数をconst化していくと
どんどん伝播して最後にはcache関数もconst化しなければいけなくなって
この中でメンバを変更してるのでエラー。
とりあえずconstメンバ関数はメンバ変数を変更できない、ってくらいしか難しくて分かりません・・・
624:名前は開発中のものです。
08/07/27 15:07:26 VW6euZzn
うぉ、フォーラムに1.4.1対応版上げてくれてあったようです・・・
超感謝・・・
625:名前は開発中のものです。
08/08/02 23:47:01 Pnu26psa
IrrlichtML使えばいいじゃん
626:名前は開発中のものです。
08/08/03 17:31:19 uQa+vIJd
IrrlichtML導入(Irrlichtに上書き)したら、MLのサンプルIMETest.exe以外のirrlichtのサンプルHelloWorld.exe以下が全てエラーで実行できなくなりました。
どうなってるんですか?
627:名前は開発中のものです。
08/08/03 19:26:20 MvGZaNHZ
IrrlichtMLってfont->size=nで文字サイズ変更効かないんですか?
628:627
08/08/03 19:53:02 MvGZaNHZ
CGUITTFontだけ使わせてもらってるんですが、
ソースみるとsizeは中で使われてるっぽいんだけど・・・
なぜか表示サイズ変わらないです;;
629: ◆YATA/oetrw
08/08/03 20:58:57 6ok4WfcM
>>626
IMETest.exe以外は再コンパイルを
>>627
IGUIFont同様の動作をするはず
なので、別サイズを作り直してsetFontをしてください
630:名前は開発中のものです。
08/08/03 21:20:54 MvGZaNHZ
>>629
了解しますた。ありがとうございます。
631:名前は開発中のものです。
08/08/03 23:09:03 uQa+vIJd
>>626
ありがとうございました
632:名前は開発中のものです。
08/08/04 20:28:39 zIBesbiU
irrlicht lessonA02.日本語表示の最後で
1.文字を縦方向に2倍にして表示してみましょう。
2.文字を太字にして表示してみましょう。
3.影つきの文字を表示してみましょう。
という宿題があります。恥ずかしい話ですがさっぱり分かりません。
Printf(driver,0,120,0xFFFFFF00,"こんにちは");
をどうすればいいか教えてください
633:名前は開発中のものです。
08/08/04 20:29:21 zIBesbiU
あげときます
634:名前は開発中のものです。
08/08/05 19:45:45 0B8D+Y1A
>>632
Printf(IVideoDriver *driver, int x, int y, int sx, int sy, SColor color, const char *fmt, ...)
にでも改造して、
DrawImage(driver,tex,x+posx,y+posy, w,h,tx,ty,color,color,sx,sx);
呼び出しは、
Printf(driver,0,120,1,2,0xFFFFFF00,"こんにちは");
635:名前は開発中のものです。
08/08/05 19:59:40 0B8D+Y1A
>>634
追伸。
そのままだと、sxとsyに1以外を入れると隣の文字同士が重なったりするから、Printf内で posx と posy をプラスしているところを弄らないといけない。
それから、sx と sy は float形(f32)の方がいいかな。とすると、posx と posy も f32 に直すか。
636:lesson.ifdef.jp
08/08/05 21:22:20 Qt6IOczc
拡大に関しては634さんのようなやり方で大丈夫です
■太字・影つきに関してのヒント
改造をしなくとも X,Y.COLORを指定できるので
座標をちょっとずらして表示してみましょう
色が同じだと…
先に描画した文字が黒なら…
これができたら関数の中身をいじって表示する感じです
637:名前は開発中のものです。
08/08/05 22:10:03 0B8D+Y1A
>>636
そうだな、まずは大規模に改造するよりか、
関数内の変数とか数値弄ってみるのがわかりやすいな。
教え馴れしてなくてスマソ。
以下チラ裏
ところで、時々SVN更新してみてるんだが、最近は処理速度が1.4.1の
倍くらいになってる気がする。1.5が楽しみだ。
638:名前は開発中のものです。
08/08/06 20:08:59 mu9KVvJv
>>632
通常のスプライト処理と同様に処理すればいいわけですね。下線の場合も自分で線を引けばいい
ご協力ありがとうございました
639:名前は開発中のものです。
08/08/07 01:13:21 U7n2nokl
おすすめの3Dモデルフォーマットなにか無い?
作成ソフトに金使う気はないのでフリーので作れるようなものおながいします
640:名前は開発中のものです。
08/08/07 07:07:48 sPTbyZsz
X
641:名前は開発中のものです。
08/08/07 08:15:38 jIGgrvQE
遊星からの
642:名前は開発中のものです。
08/08/07 09:04:49 WY0EU+xF
>>641
おじさんは仕事に行かなくていいの?
643:名前は開発中のものです。
08/08/07 17:18:08 U7n2nokl
サンクスコ
とりあえずx出せるらしいメタセコとかミコト使ってみます
644:名前は開発中のものです。
08/08/07 18:30:41 R551o2aE
>>639
Xファイルがいいんじゃない?
MikotoはXファイルに書き出しするのに手間かかったような…。
別なツール通さないといけないとか。
サイバデリアとかRokDeBone2はどうなんだろ。
そのあたりは別スレに行った方がいいな。
645:名前は開発中のものです。
08/08/08 01:11:56 Qfhnq7Ob
>>642
おじさんは、ホームレスプログラマーなんだ
646:名前は開発中のものです。
08/08/08 16:59:28 AnSVcYEn
Irrichtでユーザー独自の3Dフォーマットに対応させるにはどうすればいいですか?
647:名前は開発中のものです。
08/08/08 17:10:36 EmX2O7hN
どんなフォーマットも統一的に読み込んでそのままぱっと使えるってのが
いいところだから、そこ対応させるくらいならほとんどもう使う意味無いと思う。
つうかそこ意外には特に便利なところはないw
648:名前は開発中のものです。
08/08/08 19:34:06 AnSVcYEn
つまりirrlichtのコードでもいじらない限り出来ないってこと?
649:名前は開発中のものです。
08/08/08 20:34:47 uE3WeKho
>>648
本体のソースを参考にしてローダーを作ればおk
詳しく読んだことないから、これ以上は知らない
650:名前は開発中のものです。
08/08/08 20:57:39 EmX2O7hN
>>648
あたりまえじゃん。
魔法じゃないんだから対応してる形式以外読めるわけねぇ。
自分でファイル解析してirrが扱う形に渡してあげるくらいなら
irrなんか使わない方がいい。
むしろ足かせの方が多い。
651:名前は開発中のものです。
08/08/09 13:53:02 BXFNkJCj
>>648
言いたいのは「ライブラリに手を入れる必要があるのか?」
って言いたいんだとエスパーすると、
ライブラリに手を入れる必要はないよ。
独自モデルローダーをフックできる切り口は用意されてる。
652:名前は開発中のものです。
08/08/09 14:15:01 jG2LYjRz
>>651
ありがとうございます
653:名前は開発中のものです。
08/08/10 11:53:31 tgjQQtRr
1.5実装機能抜粋
- Support for LWO files.
- Support for Collada 1.4 files.
- Added volume light scene node
- added Initial Windows Mobile 6 Version
- New device creation parameter to disable Irrlicht's system event handling.
654:名前は開発中のものです。
08/08/11 01:25:49 MsZNHFvl
チュートリアルをためしてる時に、マウスの挙動を取られてプログラムから抜け出せなくならない?
マウスのポインタが動かせないから終了マークをクリックできない・・・
655:名前は開発中のものです。
08/08/11 02:04:18 hNWdlkPK
Alt+F4
656:名前は開発中のものです。
08/08/11 21:30:57 MsZNHFvl
>>655
できました ありがとうございます
657:名前は開発中のものです。
08/08/12 03:58:41 87eJ2Jsk
次はマウスを取られないよう改造するんだ
658:名前は開発中のものです。
08/08/13 01:42:42 QXaISmP9
もうIrrlichtでいいような気がした
市販ゲーでもエンジン使ってるんだし。ねえ。
659:名前は開発中のものです。
08/08/16 14:05:40 MAdEwJ55
公式フォーラムの書き込みや検索できないのってうちだけ?
660:名前は開発中のものです。
08/08/16 15:27:35 qTYdLGNG
書き込みにはフォーラムのアカウントがいるよ
検索できないってのがあるならIPが弾かれてるのかな?
661:名前は開発中のものです。
08/08/16 15:50:52 MAdEwJ55
なんかPHPのエラーがでてるんだけど。
Could not obtain matched posts list
DEBUG MODE
SQL Error : 1016 Can't open file: 'phpbb_search_wordlist.MYI' (errno: 145)
SELECT m.post_id FROM phpbb_search_wordlist w, phpbb_search_wordmatch m WHERE w.word_text LIKE 'test' AND m.word_id = w.word_id AND w.word_common <> 1
Line : 340
File : search.php
662:名前は開発中のものです。
08/08/16 16:26:43 qTYdLGNG
うわ、これはフォーラムに使ってるSQL鯖かファイルが死んでる
と思ってフォーラムのオープンディスカッションを開いてみたらトップにアナウンスあったよ
ホスト先のメンテで18日前後は障害出るらしい
SF maintenance, problems ahead around August 18th
URLリンク(irrlicht.sourceforge.net)
既に始まってるようだから、必要なものは今のうちにDLしておいたほうがいいかもね
663:名前は開発中のものです。
08/08/16 20:26:28 MAdEwJ55
>>662
ほんとだ。ありがとう。
664:名前は開発中のものです。
08/08/16 20:44:13 MAdEwJ55
ところで公式で聞けないので質問です。
シェーダーをちょっとはじめてみたんですがirr公式のチュートのshaderのサンプルを見つつ
手元の参考書に載ってる簡単なシェーダを試してみたいんですが、想定している色がつかないです。
そもそもDXの本だからirrとの絡ませ方がよく分かりません。
シェーダーのソース:
float4x4 g_wvp;
float4 g_color;
void BasicVS( float3 in_pos : POSITION,
out float4 out_pos : POSITION,
out float4 out_color : COLOR0)
{
out_pos = mul(float4(in_pos, 1.0f), g_wvp); //座標変換
out_color = g_color; //頂点の色決定
}
void BasicPS( float4 in_color : COLOR0,
out float4 out_color : COLOR0)
{
out_color = in_color; //入力された色情報をそのまま
}
tachnique BasicTeck
{
pass P0
{
vetexShader = compile vs_3_0 BasicVS();
pixelsShader = compile vs_3_0 BasicPS();
}
}
665:名前は開発中のものです。
08/08/16 20:50:02 MAdEwJ55
続き。irrの場合は定数をコールバックで渡すらしい・・・?
class MyShaderCallBack : public video::IShaderConstantSetCallBack
{
public:
virtual void OnSetConstants(video::IMaterialRendererServices* services, s32 userData)
{
IVideoDriver* driver = services->getVideoDriver();
matrix4 worldMat,viewMat,projMat;
viewMat = driver->getTransform(video::ETS_VIEW);
projMat = driver->getTransform(video::ETS_PROJECTION);
worldMat = viewMat * projMat;
services->setVertexShaderConstant("g_wvp",&worldMat[0],16);
video::SColorf col(0.0f,1.0f,0.0f,0.0f);
services->setVertexShaderConstant("g_color",reinterpret_cast<f32*>(&col),4);
}
};
666:名前は開発中のものです。
08/08/16 20:51:00 MAdEwJ55
続き。メイン部分。
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
{
/*カメラとかライトとかのセッティング略*/
//Shaderの準備
IGPUProgrammingServices* gpu = Driver->getGPUProgrammingServices();
s32 newMaterialType1 = 0;
MyShaderCallBack* mc = new MyShaderCallBack();
newMaterialType1 = gpu->addHighLevelShaderMaterialFromFiles(
"basicShader.fx","BasicVS", video::EVST_VS_3_0,
"basicShader.fx", "BasicPS", video::EPST_PS_3_0,
mc, video::EMT_SOLID);
mc->drop();
ISceneNode* boxNode = Scene->addCubeSceneNode(1);
boxNode->setMaterialType((video::E_MATERIAL_TYPE)newMaterialType1);
while(Device->run())
{
Driver->beginScene(true, true, SColor(0,100,100,160));
Scene->drawAll();
Driver->endScene();
}
Device->drop();
return 0;
}