0

我正在尝试在 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 将它的片段和顶点着色器捆绑到同一个函数中,它似乎做了某种坐标插值?(至少这是我的一位更精通着色器的朋友所建议的)。我对 SparkSL 的了解还不够,无法弄清楚如何撤消此插值,并且在线资源也不多,有人知道我应该在这里做什么吗?

这是它目前的样子。

请注意渲染类型是如何围绕我要投影到的立方体内部的。

4

0 回答 0