【3Dエンジン】Irrlicht初心者質問スレその4
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2010/09/21(火) 17:32:25ID:pmlmAOqn※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近Irrlichtを始めたばかり
3.SDKを見ても、Googleで検索しても、エキサイト翻訳でもいまいち理解できない人
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「英語読め」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する人 】
・ どんな事で躓いているのか明確にする。
・ 長くならないなら躓いている部分のコードを晒してみてください。
・ 解決した場合、お礼を言うのは当然ですが、何をどうしたら解決したかを明確に書くこと。
過去スレ
3 http://hibari.2ch.net/test/read.cgi/gamedev/1281085813
2 http://hibari.2ch.net/test/read.cgi/gamedev/1159998619/
1 http://pc8.2ch.net/test/read.cgi/tech/1104179696/
0074名前は開発中のものです。
2011/07/28(木) 22:34:43.64ID:PCcpUSxP透過色を設定するというか、指定した色を投下したテクスチャを新たに作るメソッドなのだが
IVideoDriver::makeColorKeyTexture
http://irrlicht.sourceforge.net/docu/classirr_1_1video_1_1_i_video_driver.html#aed772902f4fe1185b44ce81b9b0b9add
・アルファテストを有効にしたままマテリアルカラー(または頂点カラー)のアルファを使う
・テクスチャのアルファとマテリアルカラー(または頂点カラー)のアルファを乗算する
マテリアルタイプがあれば良かったんだが、どうやら無さそうだな・・・
>>73で言うようにテクスチャを書き換えるか、シェーダーを使うしか無いかも
固定機能でテクスチャ書き換えずにやるにはIrrlicht本体のソースをいじるしかない
CD3D9Texture.cppを見てみた
テクスチャ生成フラグにvideo::ETCF_NO_ALPHA_CHANNELが指定されていると、
ETCF_ALWAYS_32BITでもR8G8B8になるよ
あと、生成に失敗すると16bitでリトライしているようだ。
テクスチャのカラーフォーマットが指定されたものになっているかは確認したほうがいいと思う。
007572
2011/07/28(木) 23:31:32.54ID:G6+n8kg0調べてくださってありがとうございます
その通りのマテリアルタイプがあれば万々歳でしたね
テクスチャ書き換えでは毎フレーム行うと相当な負荷がかかるようで工夫が要りそうでした
試しに同じ結果になる処理をDXライブラリにやらせたらCPU使用率3%以下で毎フレーム余裕orz
ソースいじる自信もないので保留か
0076名前は開発中のものです。
2011/07/28(木) 23:38:49.94ID:xiHpfsSTマテリアルタイプは EMT_ONETEXTURE_BLEND にして。
ブレンド/アルファソース情報をMaterialTypeParamに適切にpackする必要あるけど、
まあそこはCD3D9MaterialRender.hのTRANSPARENT_ALPHA_CHANNELを参考に、
SMaterial.h の enum なんかとにらめっこする感じで、あとはアルファソースを EAS_VERTEX_COLOR | EAS_DIFFUSE にすれば modulate してくれる。はず。
あ、最近のバージョンって、マテリアルで D3DRS_DIFFUSEMATERIALSOURCE 選択できんだっけ?
SMaterial.ColorMaterial かな。頂点カラーがダイナミックライトに反応しなくていいなら
これを NONE にして、SMaterial.DiffuseColorのaいじるだけでいいかも。
適当に説明端折ってるんで、ヘッダとかソースとか見つつで。
0077名前は開発中のものです。
2011/07/28(木) 23:50:11.73ID:xiHpfsSTその前段に書いた ONETEXTURE_BLEND の対応をした上で、
頂点カラーをいじるんじゃなくて、マテリアルのDiffuseColorの設定だけで
いけるかも、っつーことね。
007872
2011/07/29(金) 12:52:00.50ID:YxVVrSXe仰るとおりにやってみたら上手くいきました
結果的には以下のようなコードで確認できました(テストではスプライトを意識したものです)
material.MaterialType = EMT_ONETEXTURE_BLEND;
material.MaterialTypeParam = pack_texureBlendFunc( // texureってなんぞ
EBF_SRC_ALPHA,
EBF_ONE_MINUS_SRC_ALPHA,
EMFN_MODULATE_1X,
EAS_TEXTURE | EAS_VERTEX_COLOR);
verts[0].Color.setAlpha(alpha);
verts[1].Color.setAlpha(alpha);
verts[2].Color.setAlpha(alpha);
verts[3].Color.setAlpha(alpha);
速度も損なわずに動作するようなので目的は達成できそうです、本当にありがとうございました
Diffuseを使う方法については思うようにいきませんでした。EAS_DIFFUSEも存在しないようです
0079名前は開発中のものです。
2011/07/29(金) 14:32:35.72ID:CB0S1CvFあ、EAS_DIFFUSE は記憶で書いた後直そうとして間違ったみたいw
EAS_TEXTURE | EAS_DIFFUSE って最初書いてて、ヘッダ確認したら
_DIFFUSE じゃなくて _VERTEX_COLOR だったので直そうとしたら、
間違って _TEXTURE のほう書き換えちゃったみたいw
マテリアルのDiffuseはダメだったかー。そのコードで、
material.ColorMaterial = ECM_NONE;
material.DiffuseColor.setAlpha(alpha);
みたいにすると、ドライバ見る限りはディフューズソースを
マテリアルディフューズにしてくれそうな感じだったんだけど(1.7.2)。
まあ、目的はこなせたようなので良かった。
0080名前は開発中のものです。
2011/07/29(金) 19:04:17.17ID:aD6FRI410081名前は開発中のものです。
2011/07/30(土) 14:40:03.45ID:gdot1QHZ0082名前は開発中のものです。
2011/07/31(日) 19:03:44.47ID:ysj+R9C4吹き出しを書いた画像を作って、それを描画した上に文字を出せとか
そういう答えが聞きたいのかい
0083名前は開発中のものです。
2011/08/03(水) 21:45:34.89ID:1OUEYNZw拡大縮小、反転、アルファブレンドまでならdraw2DImageで高速描画
回転や加算ブレンドが絡むと独自の何でもできるポリゴン描画、というとこまできた
ところで2Dとか自前のポリゴンってシーンマネージャーに触らずとも表示されるんだね
0084名前は開発中のものです。
2011/08/21(日) 11:11:34.12ID:F+Difsej順に取り出して扱うにはどうすればいいのですか?
0085名前は開発中のものです。
2011/08/21(日) 11:29:24.84ID:F+Difsej0086名前は開発中のものです。
2011/08/21(日) 15:25:08.62ID:wn52FNThリファレンス読んでないのがばればれだし意味も無く上げんな
0087名前は開発中のものです。
2011/08/21(日) 16:08:06.46ID:F+Difsej?
addBillboardSceneNodeの第一引数は親となるノードの指定なんだけど?
0088名前は開発中のものです。
2011/08/21(日) 17:35:29.81ID:4N5xj2ObISceneNode.h を読むなりリファレンスを読むなりすれば、
childrenを引っ張り出すメソッドがあると思うのでそれを使っておくれ。
parent=0 で追加した連中がよくわからんというなら、
ISceneManager に root node 取るメソッドがあるのでそれ使っておくれ。
CSceneManager の実装的な事を言えば、root = SceneManager のはずだが、
まあ API を使っておいた方が良いだろう。
008984
2011/08/21(日) 18:15:59.25ID:DqBbORdq調子乗んなよ
0090名前は開発中のものです。
2011/09/17(土) 10:20:18.79ID:Nsy1iM/D自分で触る前に概要だけ把握しておきたい
0091名前は開発中のものです。
2011/09/17(土) 11:28:19.67ID:N8llzchqhttps://www.packtpub.com/irrlicht-1-7-1-realtime-3d-engine-beginners-guide/book
0092名前は開発中のものです。
2011/09/17(土) 12:15:29.10ID:ax69YZYg0093名前は開発中のものです。
2011/10/04(火) 23:17:42.58ID:0k2KN61D0094名前は開発中のものです。
2011/10/05(水) 00:00:41.38ID:49qjvTSF完成度が違いすぎる
Irrlichitが悪いとは思わんが商用利用するようなものじゃない
良くも悪くも個人クリエイター向け
0095名前は開発中のものです。
2011/10/05(水) 00:14:08.12ID:5QbI06Hj0096名前は開発中のものです。
2011/10/05(水) 22:04:50.65ID:9b+FJDSeIrrlicht Engine ? View topic - "AlterEgo" First Adult game in the world using Irr
http://irrlicht.sourceforge.net/forum/viewtopic.php?f=6&t=34558
0097名前は開発中のものです。
2011/10/06(木) 13:12:38.93ID:Ir67+dBU0098名前は開発中のものです。
2011/10/07(金) 21:59:13.44ID:y1GWstBC0099名前は開発中のものです。
2011/10/08(土) 12:35:14.23ID:sFk3CyHnただ3Dで絵を出したいだけのRPGとかシミュレーションとかだと、
こっちの方がやっぱり楽そう。
フレームワークがかえって足かせになる、とUnityをろくに触ってもいない人が言ってみる。
0100名前は開発中のものです。
2011/11/01(火) 23:32:36.33ID:MVAqFmIZ0101名前は開発中のものです。
2011/11/02(水) 14:53:04.59ID:T5ViUgxdIrrlichtはOSSのレンダリングエンジン
0102名前は開発中のものです。
2011/11/03(木) 00:49:38.76ID:juQARGZ90103名前は開発中のものです。
2011/11/04(金) 11:24:52.53ID:Gf/7N90yらしい
0104名前は開発中のものです。
2011/11/05(土) 00:48:25.49ID:2vszTO2XDCCからのアセットワークフローも貧弱だし機能もやや古臭いし。
でもゲームは結局自由度が必要だからZlibは大きなメリットだと思うがなぁ。
0105名前は開発中のものです。
2011/12/11(日) 12:15:52.07ID:ixtV7GeAEDT_DIRECT3D9でARGB8888テクスチャのlock unlock結果反映される?
EDT_OPENGLなら反映されるけどEDT_DIRECT3D9だとintel nvidia amd 全滅
■ このスレッドは過去ログ倉庫に格納されています