--- layout: stdlib-reference --- # refract ## Description Refract incident vector given surface normal and index of refraction. ## Signature
vector<T, N> refract<T, int N>( vector<T, N> i, vector<T, N> n, T eta) where T : __BuiltinFloatingPointType; T refract<T>( T i, T n, T eta) where T : __BuiltinFloatingPointType;## Generic Parameters #### T: [\_\_BuiltinFloatingPointType](../interfaces/0_builtinfloatingpointtype-029hm/index.html) #### N : int ## Parameters #### i : [vector](../types/vector/index.html)\<[T](../types/vector/index.html#typeparam-T), [N](../types/vector/index.html#decl-N)\> The incident vector. #### n : [vector](../types/vector/index.html)\<[T](../types/vector/index.html#typeparam-T), [N](../types/vector/index.html#decl-N)\> The normal vector. #### eta : [T](refract.html#typeparam-T) The relative refractive index. #### i : [T](refract.html#typeparam-T) The incident vector. #### n : [T](refract.html#typeparam-T) The normal vector. ## Availability and Requirements Defined for the following targets: #### hlsl Available in all stages. #### glsl Available in all stages. #### cpp Available in all stages. #### cuda Available in all stages. #### metal Available in all stages. #### wgsl Available in all stages. #### spirv Available in all stages.