Spark AR で raymarcher を作成しようとしています。これには、画面上のすべてのピクセルのカメラ位置とレイ方向が必要です。現在、世界の位置からカメラの位置を差し引いて正規化することで、このように方向を取得しようとしています。
// Get camera position
vec3 cam = getCameraPosition().xyz;
// Get world position and use that to figure out the camera direction
vec3 worldPos = fragment(getVertexPosition() * getModelMatrix()).xyz;
vec3 dir = normalize(worldPos-cam);
問題は、SparkSL がフラグメント シェーダーと頂点シェーダーを同じ関数にバンドルしているため、何らかの座標補間を行っているように見えることです。(少なくとも、シェーダーに詳しい友人の 1 人が提案したことです)。この補間を元に戻す方法を理解するには、SparkSL について十分な知識がなく、オンラインのリソースもあまり多くありません。ここで何をすべきか知っている人はいますか?
私が投影している立方体の内側をレンダーがどのように包み込んでいるかに注意してください。