@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
47 lines (46 loc) • 1.71 kB
JavaScript
;
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
});
}
}