3Dポイントライトの仕組みについて

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

3Dポイントライトの仕組みについて

#1

投稿記事 by 勉強中 » 12年前

http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=3226
こちらでも質問を行っています通り、DXライブラリのライト設定についてお尋ねします。

ライトをポイントライトに設定
SetLightPosition(VAdd(vPos,VGet( 0,50,0)));
(vPosは自キャラ座標)

ライトの位置は常に自キャラの腰くらいという設定をしているつもりです。
この状態で自キャラを中心として光ってくれれば成功なのですが、地面だけが光りません。

壁に対してはしっかりライトが当たり、壁際のみうっすらと地面も光っている状態です。

光の減衰距離が原因かと思い、かなり少なくしてみた所全て光る状態になりました。
その状態から少しづつ値を大きくすると遠い壁よりも真っ先に地面が光らなくなります。
遠い壁の方が地面よりも距離が遠いため、原因が皆目検討付かず困ってまして、質問しました。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: 3Dポイントライトの仕組みについて

#2

投稿記事 by みけCAT » 12年前

マルチポストをする際は、「相互」リンクをお願いします。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

coc

Re: 3Dポイントライトの仕組みについて

#3

投稿記事 by coc » 12年前

すみません、うっかりしておりました。
相互リンクはこれで問題無いでしょうか?

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: 3Dポイントライトの仕組みについて

#4

投稿記事 by みけCAT » 12年前

相互リンクは問題ないと思いますが、この掲示板で使用する名前は統一してください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

coc

Re: 3Dポイントライトの仕組みについて

#5

投稿記事 by coc » 12年前

あぁすみません・・・あちらで別の名前にて質問してしまっていたのでこちらでも同じ名前にとしましたが、またうっかりしてしまい申し訳御座いませんorz
cocで統一させて下さい。

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

Re: 3Dポイントライトの仕組みについて

#6

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

見解としては地面の三角ポリゴンの頂点が遠いのではないでしょうか?
ライトを頂点カラーとして実装していると思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

coc

Re: 3Dポイントライトの仕組みについて

#7

投稿記事 by coc » 12年前

あぁなるほど、まさしくそれが原因です。
地面はかなり広いポリゴン平面の集合にしているため、自キャラと頂点間の距離が開き過ぎたんですね・・・。

ライトの頂点カラー?設定などは何処で行えば宜しいのでしょうか。
リファレンスにあるアンビエントカラー設定を高めに設定する事で間違いないでしょうか。
(しかしこれでは距離によらず一定の明るさになるため光の距離減衰が表現出来なさそうですが・・・。)

あるいは地面ポリゴンを細分化する事になりそうですが、これは厳しいです・・。

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

Re: 3Dポイントライトの仕組みについて

#8

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

coc さんが書きました:あぁなるほど、まさしくそれが原因です。
地面はかなり広いポリゴン平面の集合にしているため、自キャラと頂点間の距離が開き過ぎたんですね・・・。

ライトの頂点カラー?設定などは何処で行えば宜しいのでしょうか。
リファレンスにあるアンビエントカラー設定を高めに設定する事で間違いないでしょうか。
(しかしこれでは距離によらず一定の明るさになるため光の距離減衰が表現出来なさそうですが・・・。)

あるいは地面ポリゴンを細分化する事になりそうですが、これは厳しいです・・。
頂点あるいはピクセルシェーダを使うぐらいしか思いつかないですね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: 3Dポイントライトの仕組みについて

#9

投稿記事 by h2so5 » 12年前

シェーダーを使う方法が公式に紹介されています。
http://homepage2.nifty.com/natupaji/DxL ... .html#R4N2

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

Re: 3Dポイントライトの仕組みについて

#10

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

h2so5 さんが書きました:シェーダーを使う方法が公式に紹介されています。
http://homepage2.nifty.com/natupaji/DxL ... .html#R4N2
探そうかと思ってたところでした。やはり、ありましたね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

coc

Re: 3Dポイントライトの仕組みについて

#11

投稿記事 by coc » 12年前

お二方とも有り難う御座います!
サンプルは全て目を通したつもりでしたが、なるほどピクセルシェーダーはこういう用途があったんですね。
描画処理がどうなるか少し不安ですが、試してみたいと思います。

ご回答感謝致します!

閉鎖

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