Skip to content

Instantly share code, notes, and snippets.

@SableRaf
Created November 23, 2020 13:03
Show Gist options
  • Save SableRaf/1a1cae1fdf5a81884fb5ede7fe31a509 to your computer and use it in GitHub Desktop.
Save SableRaf/1a1cae1fdf5a81884fb5ede7fe31a509 to your computer and use it in GitHub Desktop.
Sohail Mehra – Spark AR Scripting - Ep 1 - Basics (updated for Spark AR Studio v102)
const Materials = require('Materials');
const Textures = require('Textures');
const Shaders = require('Shaders');
const Time = require('Time');
const Reactive = require('Reactive');
async function main()
{
const myMaterial = await Materials.findFirst('material0');
const myCameraTexture = await Textures.findFirst('cameraTexture0');
const myTextureSignal = myCameraTexture.signal;
let uvs = Shaders.vertexAttribute({variableName: Shaders.VertexAttribute.TEX_COORDS}); // {variableName: ‘TEX_COORDS’} would work too
let ct = Reactive.mul(Time.ms,0.001);
let curve = Reactive.abs(Reactive.sin(ct));
let color = Shaders.textureSampler(myTextureSignal, uvs);
let modulationColor = Reactive.pack4(curve,0,0,1);
let finalColor = Reactive.mul(color, modulationColor);
myMaterial.setTextureSlot('DIFFUSE', finalColor);
};
main();
@seyXR
Copy link

seyXR commented Aug 20, 2021

I't works perfectly, thank you so much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment