あまりにも多くのコンテキストが必要になるため、この質問のコードは投稿しませんが、私が行っていることを概念的に説明します。
アフィン変換を使用する単純なレイトレーサーを構築しています。つまり、カメラ座標からのすべての光線を一般的な形状と交差させているということです。すべての形状にはアフィン変換が関連付けられており、シーンオブジェクトと交差する前に、光線は最初にこれらの変換の逆数で乗算されます。
たとえば、半径3の球を(10,10,10)に配置したいとします。球を作成し、この変換を表す変換行列を与えます。
カメラ座標で光線を作成します。光線に球の変換行列の逆数を掛けて、一般的な球と交差させます((0,0,0)でr = 1)。交点でこの一般的な光線に沿った距離を取り、それを使用して、一般的な法線と元の光線に沿った点を見つけ、これらを変換オブジェクトに保存します(距離(t)と実際の変換とともに)。
この交点の色を理解するときが来たら、変換の逆転置を取り、それを一般的な法線で乗算して法線を見つけます。逆変換された光線の交点からのt値を使用する場合、交点は元の変換されていない光線に沿った点にすぎません。
問題は、私がこのように物事を行うとき、変換が奇妙な効果をもたらすことです。主な効果は、変換によってライトがシーンから引きずられるように見えることです。たくさんの画像を作成し、フレームごとに球に少し大きな回転を適用すると、シーン内のライトがその周りをドラッグしているように見えます。これが例です
正直なところ、ここで何が間違っているのか理解できませんが、髪を引き裂いています。これが起こっている理由は何も考えられません。どんな助けでも大歓迎です。