Buckets:
| import { Fn, vec2, vec4 } from '../../tsl/TSLBase.js'; | |
| // Analytical approximation of the DFG LUT, one half of the | |
| // split-sum approximation used in indirect specular lighting. | |
| // via 'environmentBRDF' from "Physically Based Shading on Mobile" | |
| // https://www.unrealengine.com/blog/physically-based-shading-on-mobile | |
| const DFGApprox = /*@__PURE__*/ Fn( ( { roughness, dotNV } ) => { | |
| const c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); | |
| const c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); | |
| const r = roughness.mul( c0 ).add( c1 ); | |
| const a004 = r.x.mul( r.x ).min( dotNV.mul( - 9.28 ).exp2() ).mul( r.x ).add( r.y ); | |
| const fab = vec2( - 1.04, 1.04 ).mul( a004 ).add( r.zw ); | |
| return fab; | |
| } ).setLayout( { | |
| name: 'DFGApprox', | |
| type: 'vec2', | |
| inputs: [ | |
| { name: 'roughness', type: 'float' }, | |
| { name: 'dotNV', type: 'vec3' } | |
| ] | |
| } ); | |
| export default DFGApprox; | |
Xet Storage Details
- Size:
- 859 Bytes
- Xet hash:
- 7f591b291ebfeedf2e36fb21b30d493ff63141d16a35b0bc7014accb84243c06
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.