UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

47 lines (46 loc) 1.71 kB
"use strict"; import { UniformsUtils } from "three"; import { ShaderMaterial } from "three"; import { ShaderAssemblerMaterial } from "../../_BaseMaterial"; import TemplateVertex from "../../../../templates/custom/points/CustomPointsDepthDOF.vert.glsl"; import TemplateFragment from "../../../../templates/custom/mesh/CustomMeshDepthDOF.frag.glsl"; import { ShaderName } from "../../../../../../utils/shaders/ShaderName"; const INSERT_DEFINE_AFTER_MAP = /* @__PURE__ */ new Map([[ShaderName.VERTEX, "// INSERT DEFINES"]]); const INSERT_BODY_AFTER_MAP = /* @__PURE__ */ new Map([[ShaderName.VERTEX, "// INSERT BODY"]]); export class ShaderAssemblerCustomPointsDepthDOF extends ShaderAssemblerMaterial { // _color_declaration() { return 'vec4 diffuseColor' } // _template_shader(){ return ShaderLib.standard } templateShader() { return { vertexShader: TemplateVertex, fragmentShader: TemplateFragment, uniforms: { size: { value: 1 }, scale: { value: 1 }, mNear: { value: 0 }, mFar: { value: 10 } } }; } insertDefineAfter(shader_name) { return INSERT_DEFINE_AFTER_MAP.get(shader_name); } insertBodyAfter(shader_name) { return INSERT_BODY_AFTER_MAP.get(shader_name); } createMaterial() { const template_shader = this.templateShader(); return new ShaderMaterial({ // defines: { // DEPTH_PACKING: [RGBADepthPacking, BasicDepthPacking][0] // }, depthTest: true, defines: { USE_SIZEATTENUATION: 1 }, uniforms: UniformsUtils.clone(template_shader.uniforms), vertexShader: template_shader.vertexShader, fragmentShader: template_shader.fragmentShader }); } }