blenderでライトの出力

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
暇大生

blenderでライトの出力

#1

投稿記事 by 暇大生 » 11年前

blenderで作成したモデル(xファイル)をDXライブラリで読み込み、そのモデルや周辺を照らすライトを
別のxファイルで出力しようと考えているのですが、出力できません。

何か出力のときに設定があるのでしょうか?

前トピの続きになりますが、
softya(ソフト屋) さんが書きました: 光源をモデルデータとして読み込んでライトにパラメータを設定する処理を自分で書けばよいだけです。
と、ありますが、この文からは光源とライトが別物のように思えるのですが、どうなのでしょうか?
それと、パラメータを設定するというのは、プログラム側で何かやるのでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: blenderでライトの出力

#2

投稿記事 by softya(ソフト屋) » 11年前

ライトと光源は同じです。ついDXライブラリではライトと呼んでいるので、そう書いてしまったと言うわけです。
DXライブラリのライトで統一します。

ライトですが、そもそもファイル出力する必要があるのでしょうか?
動的に動くなら別ですが静的なライトならライト関数で設定するだけで問題ないはずです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

暇大生

Re: blenderでライトの出力

#3

投稿記事 by 暇大生 » 11年前

すいません自分も知識がないのでついライトと光源の質問なんかしちゃって。

ライトをファイル出力する必要性ですが、もしDXライブラリかblenderのどちらかで
環境照明のようなものが設定できればファイル出力する意味は正直ないです。
自分が説明する順番が逆でしたねすいません。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: blenderでライトの出力

#4

投稿記事 by softya(ソフト屋) » 11年前

「DXライブラリ置き場 3D関係関数リファレンスページ」
http://homepage2.nifty.com/natupaji/DxL ... nc_3d.html
ここにライト関係の関数の説明があります。
標準ライトを合わせて3つのライトしか設置できませんので、よく考えて使ってください。
他にもリファレンスは必須な関数だらけです。困ったらまず眺めるようにしてください。

環境照明=アンビエントライトの事でしょうか?
こちらも参考にどうぞ。
「その42 何だか取っ付きにくい「ライト」をまとめてみました」
http://marupeke296.com/DXG_No42_HowShouldISetLight.html
用語を間違うと誤って伝わりますので慎重に選んでくださいね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

暇大生

Re: blenderでライトの出力

#5

投稿記事 by 暇大生 » 11年前

なんだか最近質問してばっかになっていたので、言われた通り困ったらまずリファレンスを
見るようにします。すいませんでした。

環境照明という言葉ですが、モデリングの際に参考にしていたサイトと、blenderのUI画面に
環境光、環境照明と出ていたので使いました。
自分の中での環境照明とは、たぶんアンビエントライトと大体一緒だと思います。
モデルを照らすのではなく全体的に光が当たってないときも明るくするやつです。

フリーのxファイルをDXライブラリで動かしてみると、ライトを設定してないのに明るいので、
環境照明、アンビエントライトのようなものを設定しているのかな?と思い質問したわけです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: blenderでライトの出力

#6

投稿記事 by softya(ソフト屋) » 11年前

DXライブラリだと標準ライトのアンビエントカラーがマテリアルのアンビエント反射パラメータで計算されて反映されます。
モデルのマテリアル出力に失敗している様ですので、そこら辺に問題があると思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

暇大生

Re: blenderでライトの出力

#7

投稿記事 by 暇大生 » 11年前

マテリアルも絡んでくるということなので、マテリアルの出力のほうも実験しようと思います。

自分でもいろいろ試しますが、もちろん「マテリアル出力してDXライブラリでも表示されるやり方知ってる」
という方はぜひ教えてください。

blenderはDXライブラリに比べて解説サイトが少なくて困ってるので・・・。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: blenderでライトの出力

#8

投稿記事 by softya(ソフト屋) » 11年前

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ファイルでは後で設定するしか無いかもしれません。
【補足】すごくざっと見ただけのなので間違っているかもしれません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

暇大生

Re: blenderでライトの出力

#9

投稿記事 by 暇大生 » 11年前

どこをどういじったのかはわからないのですが、いつの間にかマテリアルが出力されていました。

そして、プログラムのほうに読み込んでみたのですが、やはり真っ暗でした。

前にちょっと書いたのですが、フリーのxファイルではちゃんと表示されているので、
具体的にどこが違うかモデルビューア上で見てみたのですが、
環境光の欄の輝度と、自己発光の欄の輝度でした。

フリーのモデルは必ず環境光か自己発光の欄の輝度が0より上になっています。
ですが、自分のモデルはどちらも0のままです。

フリーのモデルは、モデルビューアで輝度が0以上になっているので、
モデリングの時点で設定できるのではないかと思っています。
設定の仕方わかる方いたら教えてください。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: blenderでライトの出力

#10

投稿記事 by softya(ソフト屋) » 11年前

ソースコードを見る限りは、xファイルであるかぎりアンビエントは0設定されます。
モデルビューア側で加工されていない限りはですが。
そのアンビエントが反映されるxファイルを教えてもらわないと推測に推測を重ねるだけなので、回り道になるだけだと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

暇大生

Re: blenderでライトの出力

#11

投稿記事 by 暇大生 » 11年前

http://www.nicovideo.jp/watch/smXXXXX
(無断リンクすいません)

【変更】間接的にアダルト系サイトにリンクしていることになりますのでリンクを消させていただきます。 by softya(ソフト屋)

この動画のバトーキン島っていうxファイルを使用しています。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: blenderでライトの出力

#12

投稿記事 by softya(ソフト屋) » 11年前

アダルト系に配慮願えれば幸いです。

で、バトーキン島には環境光のパラメータが見当たりません。
どのマテリアルのことでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

暇大生

Re: blenderでライトの出力

#13

投稿記事 by 暇大生 » 11年前

softya(ソフト屋) さんが書きました: で、バトーキン島には環境光のパラメータが見当たりません。
どのマテリアルのことでしょうか?
おそらくテキスト形式で開かれたのだと思いますが、自分もテキスト形式で開いたのですが、
確かに環境光等の設定をしているような文はありませんでした。

ですが、これをモデルビューアで開き、マテリアルの欄で適当なマテリアルを見てみると、
おそらく環境光か自己発光のどちらかの輝度が0以上になっていることが確認できるかと思います。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: blenderでライトの出力

#14

投稿記事 by softya(ソフト屋) » 11年前

Ver3.10Cのモデルビューアのマテリアルにおいては自己発光はありますが、環境光は(0,0,0)です。
最新3.12aでも自己発光はありますが環境光は見当たりません。

と言うことで環境光については確認できません。
自己発光はXファイルでも対応しています。対応していないと書いた覚えはないのですが・・・。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

暇大生

Re: blenderでライトの出力

#15

投稿記事 by 暇大生 » 11年前

環境光はわからなかったのですが、自己発光の輝度を変えることができました。

プログラムではモデルが明るくちゃんと写っているのでこれで解決とさせていただきます。

解決方法です。

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にすることでうまく描画されました。

閉鎖

“C言語何でも質問掲示板” へ戻る