import type { TSLFloatNode, TSLFunction } from '../types/tsl.js'; /** Float node or numeric literal accepted by the Fresnel curve controls. */ export type FresnelScalarInput = TSLFloatNode | number; /** Optional curve controls accepted by {@link fresnel}. */ export type FresnelArguments = [power?: FresnelScalarInput, falloff?: FresnelScalarInput]; /** * Fresnel effect TSL function. * Computes a view-dependent falloff based on the angle between surface normal and view direction. * * ```js * import * as THREE from 'three/webgpu'; * import { float, color } from 'three/tsl'; * import { fresnel } from 'three-blocks'; * * const material = new THREE.MeshStandardNodeMaterial({color: 0x111111}); * * const rim = fresnel(float(3.5), float(0.9)); * const rimCol = color('#F5B700'); * material.emissiveNode = rimCol.mul(rim); * ``` * * @demo docs/demos/fresnel.html * @short TSL Fresnel falloff factor based on view angle, useful for rim lighting and edge highlights. * @category TSL * @tags WebGPU, WebGL * @tsl * @function fresnel * @param {Node.} [power=2.2] - Exponent controlling the falloff curve * @param {Node.} [falloff=1.5] - Smoothstep range for the effect * @return {Node.} Fresnel factor [0..1] */ declare const fresnel: TSLFunction; export { fresnel };