playcanvas
Version:
PlayCanvas WebGL game engine
30 lines (27 loc) • 1.27 kB
JavaScript
import { SEMANTIC_ATTR13, SEMANTIC_POSITION, CULLFACE_NONE } from '../../platform/graphics/constants.js';
import { DITHER_NONE, BLEND_NONE, BLEND_PREMULTIPLIED } from '../constants.js';
import { ShaderMaterial } from '../materials/shader-material.js';
import { shaderChunks } from '../shader-lib/chunks/chunks.js';
var createGSplatMaterial = (options)=>{
if (options === void 0) options = {};
var _options_dither;
var ditherEnum = (_options_dither = options.dither) != null ? _options_dither : DITHER_NONE;
var dither = ditherEnum !== DITHER_NONE;
var _options_vertex, _options_fragment;
var material = new ShaderMaterial({
uniqueName: 'SplatMaterial',
vertexCode: (_options_vertex = options.vertex) != null ? _options_vertex : shaderChunks.gsplatVS,
fragmentCode: (_options_fragment = options.fragment) != null ? _options_fragment : shaderChunks.gsplatPS,
attributes: {
vertex_position: SEMANTIC_POSITION,
vertex_id_attrib: SEMANTIC_ATTR13
}
});
material.setDefine("DITHER_" + ditherEnum.toUpperCase(), '');
material.cull = CULLFACE_NONE;
material.blendType = dither ? BLEND_NONE : BLEND_PREMULTIPLIED;
material.depthWrite = dither;
material.update();
return material;
};
export { createGSplatMaterial };