ShaderNodeElements.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. // accessors
  2. import CubeTextureNode from '../accessors/CubeTextureNode.js';
  3. import InstanceNode from '../accessors/InstanceNode.js';
  4. import ReflectNode from '../accessors/ReflectNode.js';
  5. import SkinningNode from '../accessors/SkinningNode.js';
  6. // display
  7. import ColorSpaceNode from '../display/ColorSpaceNode.js';
  8. import NormalMapNode from '../display/NormalMapNode.js';
  9. import ToneMappingNode from '../display/ToneMappingNode.js';
  10. // lighting
  11. import LightsNode from '../lighting/LightsNode.js';
  12. //import LightingNode from '../lighting/LightingNode.js';
  13. import LightingContextNode from '../lighting/LightingContextNode.js';
  14. // utils
  15. import MatcapUVNode from '../utils/MatcapUVNode.js';
  16. import MaxMipLevelNode from '../utils/MaxMipLevelNode.js';
  17. import OscNode from '../utils/OscNode.js';
  18. import SpriteSheetUVNode from '../utils/SpriteSheetUVNode.js';
  19. import TimerNode from '../utils/TimerNode.js';
  20. // procedural
  21. import CheckerNode from '../procedural/CheckerNode.js';
  22. // fog
  23. import FogNode from '../fog/FogNode.js';
  24. import FogRangeNode from '../fog/FogRangeNode.js';
  25. // shader node utils
  26. import { nodeObject, nodeProxy, nodeImmutable } from './ShaderNode.js';
  27. //
  28. // Node Material Shader Syntax
  29. //
  30. // shader node base
  31. export * from './ShaderNodeBaseElements.js';
  32. // functions
  33. export { default as BRDF_GGX } from '../functions/BSDF/BRDF_GGX.js'; // see https://github.com/tc39/proposal-export-default-from
  34. export { default as BRDF_Lambert } from '../functions/BSDF/BRDF_Lambert.js';
  35. export { default as D_GGX } from '../functions/BSDF/D_GGX.js';
  36. export { default as DFGApprox } from '../functions/BSDF/DFGApprox.js';
  37. export { default as F_Schlick } from '../functions/BSDF/F_Schlick.js';
  38. export { default as V_GGX_SmithCorrelated } from '../functions/BSDF/V_GGX_SmithCorrelated.js';
  39. export { default as getDistanceAttenuation } from '../functions/light/getDistanceAttenuation.js';
  40. export { default as getGeometryRoughness } from '../functions/material/getGeometryRoughness.js';
  41. export { default as getRoughness } from '../functions/material/getRoughness.js';
  42. export { default as PhysicalLightingModel } from '../functions/PhysicalLightingModel.js';
  43. // accessors
  44. export const cubeTexture = nodeProxy( CubeTextureNode );
  45. export const instance = nodeProxy( InstanceNode );
  46. export const reflectVector = nodeImmutable( ReflectNode, ReflectNode.VECTOR );
  47. export const reflectCube = nodeImmutable( ReflectNode, ReflectNode.CUBE );
  48. export const skinning = nodeProxy( SkinningNode );
  49. // display
  50. export const colorSpace = ( node, encoding ) => nodeObject( new ColorSpaceNode( null, nodeObject( node ) ).fromEncoding( encoding ) );
  51. export const normalMap = nodeProxy( NormalMapNode );
  52. export const toneMapping = ( mapping, exposure, color ) => nodeObject( new ToneMappingNode( mapping, nodeObject( exposure ), nodeObject( color ) ) );
  53. // lighting
  54. //export const lighting = nodeProxy( LightingNode ); // abstract
  55. //export const light; // still needs to be added
  56. export const lights = ( lights ) => nodeObject( new LightsNode().fromLights( lights ) );
  57. export const lightingContext = nodeProxy( LightingContextNode );
  58. // utils
  59. export const matcapUV = nodeImmutable( MatcapUVNode );
  60. export const maxMipLevel = nodeProxy( MaxMipLevelNode );
  61. export const oscSine = nodeProxy( OscNode, OscNode.SINE );
  62. export const oscSquare = nodeProxy( OscNode, OscNode.SQUARE );
  63. export const oscTriangle = nodeProxy( OscNode, OscNode.TRIANGLE );
  64. export const oscSawtooth = nodeProxy( OscNode, OscNode.SAWTOOTH );
  65. export const spritesheetUV = nodeProxy( SpriteSheetUVNode );
  66. export const timerLocal = nodeImmutable( TimerNode, TimerNode.LOCAL );
  67. export const timerGlobal = nodeImmutable( TimerNode, TimerNode.GLOBAL );
  68. export const timerDelta = nodeImmutable( TimerNode, TimerNode.DELTA );
  69. // procedural
  70. export const checker = nodeProxy( CheckerNode );
  71. // fog
  72. export const fog = nodeProxy( FogNode );
  73. export const rangeFog = nodeProxy( FogRangeNode );