| 1381 | const originalImage = p5.createFramebuffer(); |
| 1382 | |
| 1383 | function fresnelShaderCallback({ p5 }) { |
| 1384 | const fresnelPower = p5.uniformFloat(2); |
| 1385 | const fresnelBias = p5.uniformFloat(-0.1); |
| 1386 | const fresnelScale = p5.uniformFloat(2); |
| 1387 | |
| 1388 | p5.getCameraInputs((inputs) => { |
| 1389 | let n = p5.normalize(inputs.normal); |
| 1390 | let v = p5.normalize(-inputs.position); |
| 1391 | let base = 1.0 - p5.dot(n, v); |
| 1392 | let fresnel = fresnelScale * p5.pow(base, fresnelPower) + fresnelBias; |
| 1393 | let col = p5.mix([0, 0, 0], [1, .5, .7], fresnel); |
| 1394 | inputs.color = [col, 1]; |
| 1395 | return inputs; |
| 1396 | }); |
| 1397 | } |
| 1398 | |
| 1399 | const starShader = p5.baseMaterialShader().modify(starShaderCallback, { p5 }); |
| 1400 | const starStrokeShader = p5.baseStrokeShader().modify(starShaderCallback, { p5 }) |