[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 09/03 15:07 / Filesize : 299 KB / Number-of Response : 951
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名前は開発中のものです。 mailto:sage [2006/10/05(木) 06:50:19 ID:UN/zUzoQ]
zlibライセンスでクロスプラットホームなゲームライブラリ、Irrlichtのスレです。

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

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

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

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

前スレ
pc8.2ch.net/test/read.cgi/tech/1104179696/

372 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 17:42:06 ID:G2b9tMyR]
クォータニオンを扱う関数があるみたいですけど、どうやって使うんですか?

373 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 01:35:15 ID:9HMeNQD7]
GOGOのサンプルをファイル分割してみた
整理してうpします

374 名前:名前は開発中のものです。 mailto:sage [2007/12/18(火) 23:55:35 ID:cUWqWIvR]
>>372さんも質問していますが、quatanionを使ったベクトルの回転はどうすれば良いのでしょうか。
API リファレンス読んでも、英語力皆無なのでどの関数がどんな機能を持っているのか…。
例えば任意のベクトル v1 とベクトル v2 があるとき、
v2 を軸として v1 を回転する方法などお教えいただけないでしょうか。

375 名前:374 [2007/12/20(木) 15:35:27 ID: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 名前:名前は開発中のものです。 mailto:sage [2007/12/20(木) 17:17:48 ID:D8YXZHbq]
FEZのようなインターフェースを作れないかな?
FPSっぽいカメラとキー操作なんだけど
FPS視点ではなく3rd視点という

377 名前:名前は開発中のものです。 mailto:sage [2007/12/20(木) 17:29:57 ID:1FySn3dT]
普通に作れるでしょ・・・

378 名前:名前は開発中のものです。 mailto:sage [2007/12/21(金) 02:22:22 ID:W06+iKTa]
当たり判定は正確ですか?

379 名前:名前は開発中のものです。 mailto:sage [2007/12/22(土) 03:21:29 ID:qH4tCHw4]
CADとかShadeで作ったメッシュを読み込むには、
どの形式でエクスポートするのがベターでしょうか。
Xファイルだと読み込めないこと多いので……。

380 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 23:31:42 ID:VhCZgB33]
最近ばかり初めてゲームの製作をするですが、
どうイジってIrrlichtでトゥーンレンダリングを出来ますか?



381 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 23:50:22 ID:5nrbPA5X]
ja.wikipedia.org/wiki/シェーダ

382 名前:名前は開発中のものです。 mailto:sage [2007/12/25(火) 00:34:31 ID:IJC6bSYh]
>>380
Toon(Cell) Shading snippet using HLSL. See below.
irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=18281

383 名前:名前は開発中のものです。 mailto:sage [2007/12/26(水) 09:27:39 ID:xCkClyRy]
CollisionResponceAnimatorを二つ設定すると
時間経過ごとに重力が増大していくんだが…Irrlichtのバグ?
SDK同梱のサンプルマップで試したんだが
落下速度が異常に早くなって、階段すら上れなくなる。

誰か、解決法や関連情報を知っている人はいないでしょうか。

384 名前:名前は開発中のものです。 mailto:sage [2007/12/26(水) 19:33:39 ID:yUN26AYS]
ColisionResponceAnimatorを2つ使う必要性が良くわからないんだが。
2つ以上のオブジェクトとColisionResponceしたいんなら、
1つのColisionResponceAnimatorにMetaTriangleSelectorを当てればおk

385 名前:名前は開発中のものです。 mailto:sage [2007/12/26(水) 23:44:30 ID:xCkClyRy]
>>384
出来ました。ありがとうございます。


386 名前:名前は開発中のものです。 mailto:sage [2007/12/27(木) 21:44:30 ID:8IcVTLM6]
Irrlichtでクリッピング距離を変えるにはどうしたらいいでしょうか。
Direct3Dでは
D3DXMatrixPerspectiveFovLH()
の引数で設定することができましたが、
Irrlichtではそれらしきものが見当たらず・・・

387 名前:386 mailto:sage [2007/12/28(金) 20:40:22 ID:Hp4RPsA7]
自己解決しました。

一応書いとくと
scene::ICameraSceneNode* camera = smgr->addCameraSceneNode(〜);
で、
camera->setFarValue( 距離 );
で最大距離、
camera->setNearValue( 距離 );
で最小距離。

なんでForum見ることを思いつかなかったんだろ(;´Д`)

388 名前:名前は開発中のものです。 mailto:sage [2007/12/28(金) 22:39:55 ID: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 mailto:sage [2007/12/30(日) 12:25:25 ID:KN9VCd/i]
ありがとうございます。
ちゃんと調べないとダメですねorz

390 名前:名前は開発中のものです。 [2008/01/04(金) 06:42:00 ID:B3YR/5Yx]
イルリッヒは時代遅れ



391 名前:名前は開発中のものです。 mailto:sage [2008/01/04(金) 07:34:17 ID:CcNPOaPX]
今は何の時代?

392 名前:名前は開発中のものです。 [2008/01/04(金) 10:30:21 ID:B3YR/5Yx]
オーガ

393 名前:名前は開発中のものです。 mailto:sage [2008/01/09(水) 00:31:36 ID:INF4za2E]
あけましておめでとうございます
非公式ドキュメントのトップページが壊されていたため閲覧不能でした
先日修正しておきました

あそこの管理人さんは今どうしておられるのやら

394 名前:名前は開発中のものです。 [2008/01/09(水) 15:48:14 ID:oe3Z1pea]
おまえらなんでwindowsでイルリヒト使ってんの?
ダイレクトエックソでも使ってろよ

395 名前:名前は開発中のものです。 mailto:sage [2008/01/09(水) 19:16:17 ID:1bUx6/kQ]
低レベルな釣りだな
出直して来い

396 名前:名前は開発中のものです。 mailto:sage [2008/01/09(水) 21:37:04 ID:bwau3Xen]
しかしイルリヒトと読んでるところは評価出来る

397 名前:名前は開発中のものです。 mailto:sage [2008/01/23(水) 17:55:29 ID:jmfBDAYQ]
IrrlichtMLの中の人見てるみたいなので質問ここに書きます。
CGUITTFontについてです。
新たな文字が現れるたびにテクスチャに確保しているようですが、これはたとえばノベル
ゲーム等文字種が多数現れる場合、メモリ不足に陥らないでしょうか?キャッシュの上限
を設定したほうがよい気がしますが…

398 名前:名前は開発中のものです。 mailto:sage [2008/01/23(水) 18:05:26 ID:jmfBDAYQ]
連投すいません。フルスクリーン<->ウインドウの切り替えはデバイス作り直し
しかないのでしょうか。
その場合、deviceをdropしたら確保したリソースは自動的に開放されるのでしょうか?

399 名前:名前は開発中のものです。 mailto:sage [2008/01/23(水) 19:23:35 ID:Sr3V79Hv]
>>397
中の人じゃないが、前実験で第二水準まで全部出してみたけど
メモリ不測にはならなかったよ。
WindowsXP 512MB環境

400 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 00:06:10 ID:FpXK7fP/]
ちょっと計算してみました。A8R8G8B8の16x16のテクスチャを確保すると1グリフあたり1024
byte=1kbyte。それが約2万文字なので約20mbyteということで比較的最近のビデオカード
だと問題の無い値に収まりますね。

とはいえたかがフォントのレンダリングにビデオメモリ20mbyteも食われるのはもったいない
おばけが出る気がします。20pixel位のフォントをレンダリングしたらさらに4倍に膨れ上がり
ますし。

やっぱり当初の計画通りFreeTypeを直接叩いてフレームバッファ(あるいはテクスチャロ
ック)に転送するという形をとることにします…



401 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 01:14:48 ID:qECrGTwM]
>>397
MLの中の人です。数日間、モニターが壊れて画面がとてもカレー色でした。

一見メモリ消費量が多いように見えても、読込フォントの最大文字数までです。
なので、現在のOS上では微々たる消費量ではないかと。。
テクスチャは文字単位ではなく、フォント単位で確保されると思ったほうがいいです。
ビットマップフォントも含めて、メモリ不足に遭遇してないので放置ということで…。

どうしても気になるようなら、getFont(...)せずにCGUITTFontを直に生成して、必要なくなったらdrop()してはどうでしょう?
一部のGUIに適用するだけなら、この方法でうまく開放されると思います。


>>398
フルスクリーンへの切替は、IrrlichtサンプルのDEMOのようにデバイス作り直しのみ。
deviceをdrop()した時点で、Irrlicht管理のオブジェクトは全て破棄してくれますよ。



402 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 01:14:49 ID:YttCO1k2]
>>400
おまいさんのこだわりは結構だし、それを止める気はないが、
現実によっぽど長編の小説でも実際に使われてる文字は
せいぜい2000文字ぐらいだぞ。
(以前トルストイの「戦争と平和」の訳で約1800文字種とかいうのを読んだ)
普通のゲームならせいぜい1000文字ぐらいじゃないか?
なので、限りなく杞憂に近いとは思う。
が、まあがんがれ

403 名前:名前は開発中のものです。 [2008/01/24(木) 04:50:43 ID:xvOsgKrW]
横から失礼。

コンシューマだとシナリオ作った後に
よく使う文字をカウントして、必要最低限の文字をもたせたり、
あとは、最近(?でもないか)ならキャッシュ機構をもたせて、
よく使うのはキャッシュヒット、あまり使わないのはその場で生成する。

MLのライブラリの中身見てないから、すでに実装されてるよ!だったらスマソ

404 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 09:52:27 ID:YttCO1k2]
>>403
CGUITTFontはキャッシング機構を持ってる。
で、400が言ってるのは、
「キャッシュに上限がないみたいだけど、メモリ大丈夫?」
ということ。
で、現実としてそう問題にならんよ、と返答されてる

405 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 10:23:18 ID:FpXK7fP/]
>>403
CGUITTFontは一度でも現れた文字は必ずキャッシュされているようです。
だからビデオメモリの消費量が心配なのですが…

>>402
情報ありがとうございます。ですがもうFreeTypeでレンダリングするところ
まではできてしまったので、もうこのままテクスチャ転送まで進めたいと思います。
1枚絵表示するのにテクスチャ確保するのもあほみたいなので、フレームバッファに
直接書き込む手段と、2D周りがかなり弱いのでその辺補うライブラリも構築することにします。

それと動的ロードの話が出てきましたけど、IReferenceCountedの実装を見るとヘッダ
ファイルのなかでdelete thisしてます。
これは、コンパイラの最適化か何かでDLL呼び出し元でdeleteされるとまずくないですかね?
new/deleteの実装が異なるコンパイラで作成されたDLLを動的ロードすると、delete時に
不整合を起こすような気がします。あまり詳しくないのでひょっとしたら無駄な心配
なのかもしれませんが…

406 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 10:45:41 ID:FpXK7fP/]
>>401
回答ありがとうございます。
フルスクリーン切り替えは面倒ですね…。

407 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 10:49:29 ID:YttCO1k2]
>>405
0.5ぐらいの時代だから2年近く前?にdeleteの問題は公式フォーラムで議論されてたはず。
で、結論は「問題なす」だったはづ

408 名前:名前は開発中のものです。 mailto:sage [2008/01/24(木) 17:48:13 ID:FpXK7fP/]
>>407
以前に議論された話題だったのですね。失礼しました。


409 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 19:00:41 ID:MPN2QJSG]
質問です。直感でさくっとお答え頂きたいです。
FPSゲーを作ろうとしていて、よさげなライブラリを探しています。
画面を左右2分割にして、2人でプレイ出来るようにしたいのですが、
irrlicht での実装は描画の面において楽に出来ますか?

410 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 20:32:40 ID:jU51nQMI]
>>409
ビューポートとカメラの切り替えで実現できると思います>分割対戦



411 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 22:21:07 ID:Vt/UlEbN]
>>409
公式のチュートリアルに画面分割のサンプルあるお

412 名前:名前は開発中のものです。 mailto:sage [2008/01/25(金) 23:45:04 ID:+c4l9exa]
OctreeTriangleSelectorを使ってメッシュのどの面とどの面が
衝突したかまで分かる詳細な衝突判定ってできますか?

413 名前:409 mailto:sage [2008/01/26(土) 06:10:08 ID:/SAwn9ff]
>>409-410
レスありがとうございます!
ュルルルリッヒエンジンでがんばってみます。

414 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 06:11:19 ID:/SAwn9ff]
スマソ >>410-411ですた。ありがとう!

415 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 18:00:09 ID:0EKxzkd2]
OGREからこっちに鞍替えを目論んでます。
本家のFeaturesに「BlenderのエクスポーターがSDKにあるよ」みたいな事が書いてあったんで1.4のSDK落としてみたんですが、見つかりません…
readmeのフォルダ一覧にもexportersフォルダが書いてあるのに見つからず。
どうすれば…orz
OGRE用のメッシュファイル(.mesh)も読めるみたいですが、試してみた方いますか?

416 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 18:35:32 ID:zD+QiSlQ]
>>415
OGREのCVSに「blenderimport」と「blendersceneexporter」ってフォルダがあるけど
これがBlender関係のSDKじゃね?

417 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 21:19:47 ID:0EKxzkd2]
>>416
それってもしかしてコレのことですか?
ttp://ogre3d.org/wiki/index.php?title=Tools:_Blender&printable=yes
OGREでBlenderで作ったデータを読むことはできてます。

思いっきり要すると
Blenderで作ったデータをIrrlichtで読むにはどうすればいいの?
という事が聞きたかったのですが、うまく伝えられてなかったらすいません。
OGREで使ってた.meshのデータをIrrlichtでアニメ付でちゃんと読めればベストなんですが。

ttp://irrlicht.sourceforge.net/features.html

there are exporters for popular 3D packages (Blender, 3DSMax, Gile[s], ..) included in the SDK.
って書いてあるから、SDK落とせば何か入ってんだろ、とか思ってたらそれらしいのが入ってないし。。。
BlenderとIrrlichtの組み合わせでやってる人、居ませんか?

418 名前:名前は開発中のものです。 mailto:sage [2008/01/26(土) 22:32:35 ID:zD+QiSlQ]
>>417
すまん、「本家のFeatures」を、OGREのFeaturesと勘違いしてたみたいだ
Irrlichtのスレなのにな・・・

Irrlicht + Blenderなら、アニメーションが出来るDirectXのメッシュ(.x)使った方がいい
IrrlichtはXメッシュをそのまま読めるからIrrlicht用にわざわざコンバートしなくて済むしな

ただ、Xメッシュはツールによってフォーマットが少し異なる場合があるので注意な

419 名前:名前は開発中のものです。 mailto:sage [2008/01/27(日) 00:34:07 ID:+Y3aPJmy]
メタセコで作ると「{」の位置のせいで読めなかったりな。
仕方ないから「{」の前に改行入れるコンバータ作っちまった。

420 名前:名前は開発中のものです。 mailto:sage [2008/01/27(日) 15:56:59 ID:oNRFDMwA]
>>418
.xで試してみました。
IrrlichtのMesh Viewerで読めたので、たぶんコレで大丈夫だと思います。
ありがとうございます。



421 名前:名前は開発中のものです。 mailto:sage [2008/01/28(月) 17:43:17 ID:afuGywxJ]
>>420
ところでOGREからこっちに移行する気になった理由はなんだったんだろか

422 名前:名前は開発中のものです。 mailto:sage [2008/01/28(月) 17:58:37 ID:XOEvg/3a]
どうせ「英語読めない」でしょ

423 名前:名前は開発中のものです。 mailto:sage [2008/01/28(月) 23:58:25 ID:G7mZ8jO6]
自分はOGRE知らないのですが、ライセンスに惹かれてIrrlichtを選択しました。

ところで、drop()を忘れそうな自分はboost::intrusive_ptrを愛用していますが、
使ってる人はいるでしょうか?


424 名前:名前は開発中のものです。 mailto:sage [2008/01/30(水) 11:06:43 ID:+OYkniIM]
>>423
俺も昔は使ってたけど、サイズがでかくなるし、ポインタコピーするたびに
内部でごにょごにょやってるしで精神衛生上よろしくない

だから、解放処理が必要なオブジェクトはシングルトンなマネージャクラスに任せてる

マネージャのコンストラクタで生成&初期化して、デストラクタで開放させれば
管理する必要が無くなる
やろうと思えば手動開放もできる


使うときは

IrrlichtDevice *dev = IrrManager::getSingleton().getIrrDevice();

みたいな感じで、初期化さえしとけばいつでもどこでもアクセスできる


OGRE使ってこの方法を見てから、俺の中ではこれが主流になってる

425 名前:名前は開発中のものです。 mailto:sage [2008/02/02(土) 16:46:40 ID: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 名前:名前は開発中のものです。 mailto:sage [2008/02/05(火) 00:59:32 ID:iDwHPm2h]
Material.Thickness=10.0;
driver->setMaterial(Material);
driver->draw3DLine(・・・)

というとき、Thicknessの値をいろいろ変えても画面上の線が常に1ドット幅なんですが、
どうすれば2ドットの線などを描けますか?

427 名前:名前は開発中のものです。 mailto:sage [2008/02/05(火) 20:36:47 ID:iDwHPm2h]
エンジンをDX9からOPENGLにしたらうまくいきました
メインサポートがOpenGLだったんですね

428 名前:名前は開発中のものです。 mailto:sage [2008/02/06(水) 00:53:20 ID:Ac93WCkK]
たぶん、ラインのサイズ指定がOpenGL依存なんだろうと思う

429 名前:名前は開発中のものです。 mailto:sage [2008/02/13(水) 21:57:17 ID:sC00+SwF]
OpenGLだとaddLightSceneNodeで照らしたaddCubeSceneNodeがちゃんと見えるのに、
DirectXだと光源がない状態になってしまいます。(真っ黒

しかし、ある友人のパソコンでは、
OpenGLのときにguifont->drawをするとクラッシュしてしまうので、(DXなら動く)
DirectXのサポートは続けておきたいのですが、どうしたらいいですか?

その他人のパソコンでguifont->drawが使えない理由としてどんなものか考えられるか、と、
DirectXに切り替えると上の事例が起きる問題の解決方法を教えてください。

430 名前:名前は開発中のものです。 mailto:sage [2008/02/13(水) 23:32:38 ID:1ZAmjx1a]
>>429
友人のGPUがOpenGL2.0に準拠してないかバグ持ちドライバな可能性がある




431 名前:名前は開発中のものです。 mailto:sage [2008/02/13(水) 23:43:28 ID:sC00+SwF]
>>430
うーなるほど そうだとするとこっちには手が無いですね・・・ ありがとうございます

432 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 13:19:44 ID:uwsfmr7Z]
IrrlichtML版のgetFontで得た日本語フォントをISceneManager::addTextSceneNodeに渡すと、
CGUITTGlyphのデストラクタでエラーが出ます。

サンプルでもNode関係を使っているのはなさそうなので、
これは仕様なのでしょうか?
環境はWindowsXPMCEのSP2、IrrlichtML1.4、VisualStudio2005Pro、freetype-2.3.5です。

433 名前:名前は開発中のものです。 mailto:sage [2008/02/15(金) 22:44:27 ID:aJ3r8mIn]
>>425
見えない敵とかの描画を省略しようと思ったらそら交差判定が必要になるでしょう

434 名前:名前は開発中のものです。 mailto:sage [2008/02/16(土) 00:11:18 ID:Kcju6cnr]
ttp://lesson.ifdef.jp/B03.html
このバグ、1.4では直ってないの

435 名前:名前は開発中のものです。 mailto:sage [2008/02/16(土) 19:51:58 ID:BJXzP4O8]
皆さん音楽はIrrlichtで音楽はどうしてますか?IrrKangはフリー以外だとライセンス購入が
必要ですし…何かお勧めのライブラリがあれば教えてほしいです。

436 名前:名前は開発中のものです。 mailto:sage [2008/02/17(日) 11:12:58 ID:k/Iqe8sD]
xファイルの読み込みについて質問があります。
irrlichtでxファイルを読み込むときに右手、左手の座標系を指定して読み込ませることって
できるんでしょうか?

ttp://gamdev.org/up/img/11075.jpg
↑のようにXSIで作成しているときと、Xファイルビューアまたはirrlicht上で表示したときに鏡
 像のような表示になってしまうのを、なんとかしたいのです。

環境はWinXP VC2008 irrlicht-1.4 です。

437 名前:名前は開発中のものです。 mailto:sage [2008/02/18(月) 20:53:38 ID:9PaR4TSR]
>>432
driverに預けてあるテクスチャを本体が先に開放してるくさい
どこかで既にremoveTextureが呼ばれてる気がする

addTextSceneNodeの後にfont->grab()でもしておけばエラー回避は可能
その代わり、テクスチャ開放がされなくなります
どうしたものか

438 名前:名前は開発中のものです。 mailto:sage [2008/02/19(火) 11:43:22 ID:CEbiXydm]
ニコニコ吹いたw

439 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 02:38:40 ID:eWBznvro]
過疎り杉で全俺が泣いた。

ところで、436の件が自己解決したので報告。
汚い方法ではあると思うけど
irrlichtのCXMeshFileLoaderを元にx座標を反転させながら
xファイルを読み込むファイルローダを作って解決させました。

440 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 11:04:27 ID:OyDG9+KH]
>>439
おつかれです。



441 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 23:42:36 ID:ve4woYRm]
カメラがどんな向きを向いていても
常に手前から光が当たる
手抜きライティングをするにはどうすればいいですか?

442 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 00:44:37 ID:pSPDiQm8]
>>441
ライティングしないようにするとかはダメ?
(ポリorテクスチャの色そのまま表示するように)
対象ノード->setMaterialFlag(irr::video::EMF_LIGHTING, false);

443 名前:lesson.ifdef.jp mailto:sage [2008/02/27(水) 01:28:06 ID:7TCghY78]
>>441
考え方として、以下のようなものはどうでしょう?
1.カメラの背後に光源という感じに、カメラを親として光源を設定
2.キーが押されたら、カメラの代わりにワールドを動かす
これで、一応はカメラの方向から必ずライティングされるかと

444 名前:名前は開発中のものです。 mailto:sage [2008/02/28(木) 15:18:04 ID:e5iGSVK/]
いつになったらゲームパッド対応するんだろう・・・


445 名前:名前は開発中のものです。 mailto:sage [2008/02/28(木) 23:49:36 ID:9jMY1Ybl]
>>442
立体感つけたいのでライティングします。
>>443
CameraSceneNodeFPSと組み合わせたいのでそれはちょっと。

446 名前:lesson.ifdef.jp mailto:sage [2008/02/29(金) 19:57:00 ID: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 mailto:sage [2008/02/29(金) 19:59:41 ID:MU+29BuV]
446の修正
・ライトを作成する時に、親を「ライト」にすれば大丈夫です。
 ↓
・ライトを作成する時に、親を「カメラ」にすれば大丈夫です。


448 名前:441 mailto:sage [2008/03/04(火) 23:27:13 ID:+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 mailto:sage [2008/03/08(土) 20:08:31 ID:42plfOng]
>>441
おめでとー!

これを少しいじれば、太陽のように見せることもできそうですね。
あとでやってみようかな。

450 名前:441 mailto:sage [2008/03/08(土) 23:32:53 ID:vuhDlgNP]
>>448
あれ、ELT_POINTでも同じになっている気がします・・。
点光源なのに離れても暗くなりません。
あと、テクスチャつきだとライトの色は反映されているみたいですが影がつきません。



451 名前:lesson.ifdef.jp mailto:sage [2008/03/09(日) 01:14:28 ID:QaJyCdZ9]
>>441
テクスチャつきのオブジェに対してのライトは
マテリアルの設定を操作する必要があります。

SMaterialのLightingを見てみてください。
これがライトの影響を受けるか受けないかです。
(デフォルトでは影響を受けないようになってたかも)

452 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 21:38:47 ID:qxZlvuLX]
αつきテクスチャを貼り付けたビルボードをαテストを使って透過させつつ、
頂点カのαを減少させてフェードアウトってできるんでしょうか?
EMT_TRANSPARENT_ALPHA_CHANNELに頂点のα値を反映させたいんです

453 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 23:26:06 ID:txVQuh45]
lessonさんのライトのところを見たんですが
FPSゲームでよく使われるスポットライトも作れるんでしょうか
その場合カメラと連動してライトも動かさないといけないのですが・・・

454 名前:名前は開発中のものです。 mailto:sage [2008/03/12(水) 22:51:57 ID:biTsIJxr]
>>451
いや、デフォルトではtrueですが・・。
何でだろ、examplesのSpecial FxのroomMeshを読み込む部分のコードを
そのままコピーしたらちゃんとライティングされています。

455 名前:441 mailto:sage [2008/03/12(水) 23:35:51 ID:biTsIJxr]
その内ソースをupします。

456 名前:名前は開発中のものです。 mailto:sage [2008/03/13(木) 16:26:24 ID:Aiv+dbIO]
SIRENみたいなゲームも作れそうですね


457 名前:名前は開発中のものです。 mailto:sage [2008/03/13(木) 17:25:48 ID:23U/XaUN]
>>453
頂点単位でしかライティングできないから、ライトマップ使わないとだめ。
勘違いしてたらすまん。

458 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 22:33:58 ID:HWct05mu]
>>457
いや、出来なくないと思いますが?
バンプマッピングとかパララックスマッピング使えますし。
フォンシェーディングは自分でシェーダー読み込まないと使えないみたいですが。

459 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 23:23:15 ID:haIYreE8]
>>453
スポットライトはパララックスマッピングやバンプマッピングでは使えないようです・・。
しかもライト2個までだし!!自分で実装しないといけませんね、これは。

ttp://gonzo.dip.jp/~gonzo/cgi-bin/uploader2/upload.cgi?mode=dl&file=4407
ライティングはどうやってもうまくいかないのであきらめることにしました・・。
それよりさまざまな問題が。
何故かどうやっても1バイトのメモリリークがなくなりません。行やファイル名が表示されないんです。
OBBTreeを使ったメッシュ同士の衝突判定クラスで、
三角形を含む全ての当たっているOBBを検出したいのですが1個しか検出できません。
ソースのDLKEYはobbtreeです。

ttp://home7.highway.ne.jp/nomura_y/prog005.htm

OBBTreeの使い方はここを参考にしました。というよりプログラムをコピーしました。

460 名前:441 [2008/03/17(月) 23:32:00 ID:haIYreE8]
>>459 = >>441
とりあえず上げときます。



461 名前:名前は開発中のものです。 [2008/03/21(金) 13:41:00 ID:k9t2KKAY]
単純なコリジョンについて誰か教えてください。
BB対BB、セレクタ対セレクタ、セレクタ対BBのどれかで
単純に現在接触しているかを知るにはどうすればいいですか?

462 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 17:06:47 ID:ipDiEarq]
円が2個あるとします。 接触する事とは、中心と中心の距離で求められます。

463 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 18:15:39 ID:k9t2KKAY]
>>462
手のジョイント位置と対象位置でバウンディングスフィアしてパンチ!とか一応やってみました。
でもirrlichtの機能の範囲でBBなんかでさくっと判定できる方法があればやり方を知りたいです。
具体的にはCSceneNodeAnimatorCollisionResponseを参考にしてみたんですが
移動抜きで現時点の接触を知りたい場合にスフィアなりせずにirrlichtの機能任せにできないかなと思って。

464 名前:441 mailto:sage [2008/03/22(土) 21:30:03 ID: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使ったメッシュ同士の当たり判定。結構高速でそれなりに正確です。
ゲームに使うには十分だと思います。

ttp://www-2ch.net:8080/up/download/1206188724122478.uVc1b2
流れちゃったので再うpします。DLKEYはobbtreeです。OBBTreeの部分は
ttp://home7.highway.ne.jp/nomura_y/prog005.htm
をIrrlicht用に移植しました。TriangleSelectorとしての機能もつけたいんですがうまくいきません・・。
ほかにもいろいろ問題がありますが、まぁ動いたのでいいでしょう・・・。

465 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 17:58:02 ID:YyMn0R5A]
また単発質問させてください。

スクリーンの大きさぴったりに描画されるビルボードの作り方はありますでしょうか?
(カメラを親にしてビルボードを作成しているので常に目の前にビルボードを描画するところまではできています。)

何をしたいかというと
1回テクスチャにレンダしたデータを画面に表示するときにピクセルシェーダを経由して表示させようとしています。
draw2dimageではシェーダーマテリアルの設定がうまくいきませんでした。

何かヒントでもあればご教示ください。

466 名前:lesson.ifdef.jp mailto:sage [2008/03/23(日) 22:41:58 ID:fLRzMwSc]
プロバイダが9日から規制されてて書き込みできずorz
規制解除されたので書き込みを

>>441
ライトはビデオカードによって表示できる個数に制限があるかもです
古いカードでも3個まではライトを確認してます
(前面から青、背面から赤、カメラ位置に白で確認)
うちの環境だとバンプマッピングができず、ビデオカード変えると
OpenGLでの描画ができず・・・ (初期不良か

ファイルはダウンロードできたのでOBBTreeを見てみたいと思います
当たっているOBBが違う色で表示されれば目視が楽そうですね
色々いじってみます(rockwall.bmpがなかったので適当に作りました)

467 名前:441 mailto:sage [2008/03/24(月) 21:11:28 ID: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 mailto:sage [2008/03/24(月) 23:59:55 ID:YyeAT6+O]
>>467
ご指摘ありがとうございます。
指摘されたHLSLを使うことで、うまくできました。

以下が作ってたサンプルになります。
(内容は法線MAPを使って輪郭描画を行うサンプルです。)
ttp://gamdev.org/up/img/11248.zip


469 名前:名前は開発中のものです。 mailto:sage [2008/03/25(火) 00:01:49 ID:YyeAT6+O]
あ、書き込み全部書く前に投稿してしまた、、orz..
上のZIPですが、自分の環境がirrlichtライブラリの中に手を入れたりしているので
そのままではコンパイルできないかも知れませんので注意してください。


470 名前:名前は開発中のものです。 mailto:sage [2008/03/29(土) 00:01:52 ID:9eKD+9jY]
キャラクタークラスはどう作ります?
候補と印象は以下

1、エンティティの中にシーンノードを保持する。
 シーンノードを自由に組み合わせられるのは魅力的だが、
 特殊な表現をするには結局新しいシーンノードを作る必要がありそう。

2、シーンノードを継承する。
 自由に描画処理を記述できるメリットは大きいが面倒そう。

3、シーンノードアニメータを継承してシーンノードに追加する。
 複数のシーンノードを組み合わせて使うのが大変そう。

4、それ以外。




471 名前:名前は開発中のものです。 mailto:sage [2008/03/30(日) 23:27:58 ID:q0Ctn/EA]
ttp://www.irrlicht3d.org/wiki/index.php?n=Main.Shaders
Special Shader Pack by Nadroって何処からDL出来るんですか?
フォーラムに飛びますが何処からDLするのか分かりません。

472 名前:lesson.ifdef.jp mailto:sage [2008/04/04(金) 22:03:23 ID: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()が悪さをしているのだとは思いますが
そこまでは調べていません。

とりあえず報告まで お試しください






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<299KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef