Created
November 23, 2020 15:26
-
-
Save SableRaf/0351afd587971dec725f833602505c15 to your computer and use it in GitHub Desktop.
Sohail Mehra – Spark AR Scripting - Ep 2 – Updated for Spark AR Studio v102
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// How to load in Modules | |
const M = require('Materials'); | |
const S = require('Shaders'); | |
const T = require('Textures'); | |
const R = require('Reactive'); | |
const Time = require('Time'); | |
// Use export keyword to make a symbol available in scripting debug mode | |
export const D = require('Diagnostics'); | |
function print(a) | |
{ | |
D.log(a); | |
} | |
function modulate(time, lum) | |
{ | |
const ct = R.mul(time,0.001); // -> Signal3 | |
const curve = R.abs(R.sin(ct)); // -> Signal4 | |
const modulationColor = R.pack4(curve,0,0,1); // -> Signal6 | |
const lum4 = R.pack4(lum,lum,lum,1); | |
const finalModulation = R.add(modulationColor,lum4); | |
return finalModulation; | |
} | |
function luminance(color) | |
{ | |
return R.dot(color, R.pack4(0.2125, 0.7154, 0.0721,0)); | |
} | |
async function main() | |
{ | |
const material0 = await M.findFirst('material0'); | |
const cameraTexture = await T.findFirst('cameraTexture0'); | |
const myTextureSignal = cameraTexture.signal; // -> Signal1 | |
const uvs = S.vertexAttribute({variableName: S.VertexAttribute.TEX_COORDS}); // -> Signal2 | |
const color = S.textureSampler(myTextureSignal, uvs); // -> Signal5 | |
const lum = luminance(color); | |
const modulationColor = modulate(Time.ms, lum); | |
const finalColor = R.mul(color, modulationColor); // -> Signal7 | |
material0.setTextureSlot('DIFFUSE', finalColor); // Set Signal8 -> material | |
}; | |
main(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment