これは明らかなはずの非常に単純な問題のように思えるため、申し訳ありませんが、私には無知のようです。
エンジンを作成し、ライト 0 をシーンの「太陽」として使用しています。理想的には、太陽はベクトルではなく固定光源になるので、位置ベクトルの 4 番目のインデックスは 1.0f になるはずです。
シーンのオルソ視点を設定し、ライトをキャラクターの位置に設定します (x/y は平面地形の座標で、正の z はカメラに面し、地形の「高さ」を示します。シーンはまた、x 軸上でアイソメ ビュー用に回転します)。
キャラクターは常に画面の中心にありますが、何らかの理由で、キャラクターとワールド座標 0,0,0 の間の位置で光が輝いているように見えることに気付きました。キャラクターがワールド座標 0,0,0 から遠ざかるほど、ライトは大きく/広くなります。文字が 0,0,0 の場合、ライトは非常に小さいです。キャラクターが 0,200,0 のような位置に移動すると、光は非常に大きくなります。
私は足を濡らして、キャラクターに追従する「光」を手に入れようとしています(そして、後で位置などを調整して太陽を作成します)。
Graphics.BeginRenderingLayer();
{
Video.MapRenderingMode();
Graphics.BeginLightingLayer( Graphics.AmbientR, Graphics.AmbientG, Graphics.AmbientB, Graphics.DiffuseR, Graphics.DiffuseG, Graphics.DiffuseB, pCenter.X, pCenter.Y, pCenter.Z );
{
Graphics.BeginRenderingLayer();
{
Graphics.CenterCamera( pCenter.X, pCenter.Y, pCenter.Z );
RenderMap( pWorld, pCenter, pCoordinate );
}
Graphics.EndRenderingLayer();
Graphics.BeginRenderingLayer();
{
Graphics.DrawMan( pCenter );
}
Graphics.EndRenderingLayer();
}
Graphics.EndLightingLayer();
}
Graphics.EndRenderingLayer();
Graphics.BeginRenderingLayer = PushMatrix、EndRenderingLayer = PopMatrix Video.MapRenderingMode = Ortho Projection およびシーンの回転/ズーム画面の真ん中。
何かご意見は?ここで私のコードの一部を少し混乱させたのでしょうか?