ページ 1 / 1
blenderでライトの出力
Posted: 2014年6月11日(水) 22:27
by 暇大生
blenderで作成したモデル(xファイル)をDXライブラリで読み込み、そのモデルや周辺を照らすライトを
別のxファイルで出力しようと考えているのですが、出力できません。
何か出力のときに設定があるのでしょうか?
前トピの続きになりますが、
softya(ソフト屋) さんが書きました:
光源をモデルデータとして読み込んでライトにパラメータを設定する処理を自分で書けばよいだけです。
と、ありますが、この文からは光源とライトが別物のように思えるのですが、どうなのでしょうか?
それと、パラメータを設定するというのは、プログラム側で何かやるのでしょうか?
Re: blenderでライトの出力
Posted: 2014年6月11日(水) 22:47
by softya(ソフト屋)
ライトと光源は同じです。ついDXライブラリではライトと呼んでいるので、そう書いてしまったと言うわけです。
DXライブラリのライトで統一します。
ライトですが、そもそもファイル出力する必要があるのでしょうか?
動的に動くなら別ですが静的なライトならライト関数で設定するだけで問題ないはずです。
Re: blenderでライトの出力
Posted: 2014年6月11日(水) 23:09
by 暇大生
すいません自分も知識がないのでついライトと光源の質問なんかしちゃって。
ライトをファイル出力する必要性ですが、もしDXライブラリかblenderのどちらかで
環境照明のようなものが設定できればファイル出力する意味は正直ないです。
自分が説明する順番が逆でしたねすいません。
Re: blenderでライトの出力
Posted: 2014年6月11日(水) 23:45
by softya(ソフト屋)
「DXライブラリ置き場 3D関係関数リファレンスページ」
http://homepage2.nifty.com/natupaji/DxL ... nc_3d.html
ここにライト関係の関数の説明があります。
標準ライトを合わせて3つのライトしか設置できませんので、よく考えて使ってください。
他にもリファレンスは必須な関数だらけです。困ったらまず眺めるようにしてください。
環境照明=アンビエントライトの事でしょうか?
こちらも参考にどうぞ。
「その42 何だか取っ付きにくい「ライト」をまとめてみました」
http://marupeke296.com/DXG_No42_HowShouldISetLight.html
用語を間違うと誤って伝わりますので慎重に選んでくださいね。
Re: blenderでライトの出力
Posted: 2014年6月12日(木) 00:20
by 暇大生
なんだか最近質問してばっかになっていたので、言われた通り困ったらまずリファレンスを
見るようにします。すいませんでした。
環境照明という言葉ですが、モデリングの際に参考にしていたサイトと、blenderのUI画面に
環境光、環境照明と出ていたので使いました。
自分の中での環境照明とは、たぶんアンビエントライトと大体一緒だと思います。
モデルを照らすのではなく全体的に光が当たってないときも明るくするやつです。
フリーのxファイルをDXライブラリで動かしてみると、ライトを設定してないのに明るいので、
環境照明、アンビエントライトのようなものを設定しているのかな?と思い質問したわけです。
Re: blenderでライトの出力
Posted: 2014年6月12日(木) 00:28
by softya(ソフト屋)
DXライブラリだと標準ライトのアンビエントカラーがマテリアルのアンビエント反射パラメータで計算されて反映されます。
モデルのマテリアル出力に失敗している様ですので、そこら辺に問題があると思います。
Re: blenderでライトの出力
Posted: 2014年6月12日(木) 20:46
by 暇大生
マテリアルも絡んでくるということなので、マテリアルの出力のほうも実験しようと思います。
自分でもいろいろ試しますが、もちろん「マテリアル出力してDXライブラリでも表示されるやり方知ってる」
という方はぜひ教えてください。
blenderはDXライブラリに比べて解説サイトが少なくて困ってるので・・・。
Re: blenderでライトの出力
Posted: 2014年6月12日(木) 21:05
by softya(ソフト屋)
xファイルのフォーマットは、こうなっています。
「ゲームプログラマーを目指すひと Xファイルを解析してみる」
http://rudora7.blog81.fc2.com/blog-entry-238.html
アンビエント反射パラメータが無いですね。
公開されているDXライブラリのソースでざっとXファイル処理を見てみましたが、
DxModelLoader0.cpp(2077): Material->Ambient.r = 0.0f ;
DxModelLoader0.cpp(2078): Material->Ambient.g = 0.0f ;
DxModelLoader0.cpp(2079): Material->Ambient.b = 0.0f ;
DxModelLoader0.cpp(2080): Material->Ambient.a = 0.0f ;
と0.0fになっています。
fbxだと反映されているみたいので、
DxModelLoader1.cpp(709): Material->Ambient.r = ( float )FbxLambert->Ambient.Get()[ 0 ] ;
DxModelLoader1.cpp(710): Material->Ambient.g = ( float )FbxLambert->Ambient.Get()[ 1 ] ;
DxModelLoader1.cpp(711): Material->Ambient.b = ( float )FbxLambert->Ambient.Get()[ 2 ] ;
DxModelLoader1.cpp(712): Material->Ambient.a = 0.0f ;
Xファイルでは後で設定するしか無いかもしれません。
【補足】すごくざっと見ただけのなので間違っているかもしれません。
Re: blenderでライトの出力
Posted: 2014年6月17日(火) 23:30
by 暇大生
どこをどういじったのかはわからないのですが、いつの間にかマテリアルが出力されていました。
そして、プログラムのほうに読み込んでみたのですが、やはり真っ暗でした。
前にちょっと書いたのですが、フリーのxファイルではちゃんと表示されているので、
具体的にどこが違うかモデルビューア上で見てみたのですが、
環境光の欄の輝度と、自己発光の欄の輝度でした。
フリーのモデルは必ず環境光か自己発光の欄の輝度が0より上になっています。
ですが、自分のモデルはどちらも0のままです。
フリーのモデルは、モデルビューアで輝度が0以上になっているので、
モデリングの時点で設定できるのではないかと思っています。
設定の仕方わかる方いたら教えてください。
Re: blenderでライトの出力
Posted: 2014年6月17日(火) 23:38
by softya(ソフト屋)
ソースコードを見る限りは、xファイルであるかぎりアンビエントは0設定されます。
モデルビューア側で加工されていない限りはですが。
そのアンビエントが反映されるxファイルを教えてもらわないと推測に推測を重ねるだけなので、回り道になるだけだと思います。
Re: blenderでライトの出力
Posted: 2014年6月18日(水) 21:18
by 暇大生
http://www.nicovideo.jp/watch/smXXXXX
(無断リンクすいません)
【変更】間接的にアダルト系サイトにリンクしていることになりますのでリンクを消させていただきます。 by softya(ソフト屋)
この動画のバトーキン島っていうxファイルを使用しています。
Re: blenderでライトの出力
Posted: 2014年6月18日(水) 21:35
by softya(ソフト屋)
アダルト系に配慮願えれば幸いです。
で、バトーキン島には環境光のパラメータが見当たりません。
どのマテリアルのことでしょうか?
Re: blenderでライトの出力
Posted: 2014年6月18日(水) 22:29
by 暇大生
softya(ソフト屋) さんが書きました:
で、バトーキン島には環境光のパラメータが見当たりません。
どのマテリアルのことでしょうか?
おそらくテキスト形式で開かれたのだと思いますが、自分もテキスト形式で開いたのですが、
確かに環境光等の設定をしているような文はありませんでした。
ですが、これをモデルビューアで開き、マテリアルの欄で適当なマテリアルを見てみると、
おそらく環境光か自己発光のどちらかの輝度が0以上になっていることが確認できるかと思います。
Re: blenderでライトの出力
Posted: 2014年6月18日(水) 23:06
by softya(ソフト屋)
Ver3.10Cのモデルビューアのマテリアルにおいては自己発光はありますが、環境光は(0,0,0)です。
最新3.12aでも自己発光はありますが環境光は見当たりません。
と言うことで環境光については確認できません。
自己発光はXファイルでも対応しています。対応していないと書いた覚えはないのですが・・・。
Re: blenderでライトの出力
Posted: 2014年6月20日(金) 23:07
by 暇大生
環境光はわからなかったのですが、自己発光の輝度を変えることができました。
プログラムではモデルが明るくちゃんと写っているのでこれで解決とさせていただきます。
解決方法です。
xファイルをテキスト形式で開くと
Material ・・・ {
0.000000; 1.000000; 1.000000; 1.000000;;
488.235294;
0.700000; 0.700000; 0.700000;;
1.000000; 1.000000; 1.000000;;
TextureFilename {"・・・";}
}
という項目があったのですが、これがどうやら
Material ・・・ {
0.000000; 1.000000; 1.000000; 1.000000;; //拡散光の輝度(R,G,B),透過率(透明度みたいなやつ)?
488.235294; //謎です
0.700000; 0.700000; 0.700000;; //反射光の輝度(R,G,B)
1.000000; 1.000000; 1.000000;; //自己発光の輝度(R,G,B)
TextureFilename {"・・・";}
}
に対応していたので、自己発光の部分を3つ1にすることでうまく描画されました。