降低 Spark AR 中相机纹理的分辨率

Lowering resolution of the camera texture in Spark AR

我正在尝试通过脚本或补丁修改 Spark AR 中相机纹理的分辨率。 This medium post 有助于理解相机纹理的某些组件,但我需要一些帮助。

require('Textures')require('CameraInfo')好像是必须的,但是不知道怎么修改。

CameraInfo.previewSize.widthCameraInfo.previewSize.height 可能会在减小尺寸方面发挥重要作用,但我也不确定如何将这些变量传递给纹理。

这是一个非功能性示例。任何建议将不胜感激:

const Scene = require('Scene');
const R = require('Reactive');
const Textures = require('Textures'); 
const CameraInfo = require('CameraInfo'); 

const blur_mat = Materials.get('blur_mat');
const cameraTex = Textures.get('cameraTex');

const cameraLoRes = cameraTex.signal;

// attempt reduce resolution of camera texture
const loResX = R.div(4, CameraInfo.previewSize.width);
const loResY = R.div(4, CameraInfo.previewSize.height);
const loResTex = R.mul(loResX, loResY);
const loResTex = R.add(texcoords, R.pack2(loResX,loResY));

blur_mat.setTexture(cameraLoRes, {textureSlotName: "diffuseTexture"});

非常简单的答案 - 着色器渲染通道补丁允许您降低特定对象的相机纹理分辨率。

从补丁菜单添加着色器渲染通道。根据需要调整大小变量并选择所需的大小调整模式。将您的纹理插入着色器端口,并将纹理输出附加到您的 material 补丁。

看这篇精彩又详细的教程:https://www.youtube.com/watch?v=0L2Gr-SQpCU&feature=youtu.be

因此目前渲染通道不可用于脚本。目前仅适用于补丁。