playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
494 lines (493 loc) • 13.3 kB
JavaScript
import { PIXELFORMAT_DEPTH, PIXELFORMAT_DEPTH16, PIXELFORMAT_R32F, PIXELFORMAT_RGBA16F, PIXELFORMAT_RGBA32F } from "../platform/graphics/constants.js";
const BLEND_SUBTRACTIVE = 0;
const BLEND_ADDITIVE = 1;
const BLEND_NORMAL = 2;
const BLEND_NONE = 3;
const BLEND_PREMULTIPLIED = 4;
const BLEND_MULTIPLICATIVE = 5;
const BLEND_ADDITIVEALPHA = 6;
const BLEND_MULTIPLICATIVE2X = 7;
const BLEND_SCREEN = 8;
const BLEND_MIN = 9;
const BLEND_MAX = 10;
const blendNames = {
[BLEND_SUBTRACTIVE]: "SUBTRACTIVE",
[BLEND_ADDITIVE]: "ADDITIVE",
[BLEND_NORMAL]: "NORMAL",
[BLEND_NONE]: "NONE",
[BLEND_PREMULTIPLIED]: "PREMULTIPLIED",
[BLEND_MULTIPLICATIVE]: "MULTIPLICATIVE",
[BLEND_ADDITIVEALPHA]: "ADDITIVEALPHA",
[BLEND_MULTIPLICATIVE2X]: "MULTIPLICATIVE2X",
[BLEND_SCREEN]: "SCREEN",
[BLEND_MIN]: "MIN",
[BLEND_MAX]: "MAX"
};
const FOG_NONE = "none";
const FOG_LINEAR = "linear";
const FOG_EXP = "exp";
const FOG_EXP2 = "exp2";
const FRESNEL_NONE = 0;
const FRESNEL_SCHLICK = 2;
const fresnelNames = {
[FRESNEL_NONE]: "NONE",
[FRESNEL_SCHLICK]: "SCHLICK"
};
const LAYER_HUD = 0;
const LAYER_GIZMO = 1;
const LAYER_WORLD = 15;
const LAYERID_WORLD = 0;
const LAYERID_DEPTH = 1;
const LAYERID_SKYBOX = 2;
const LAYERID_IMMEDIATE = 3;
const LAYERID_UI = 4;
const LIGHTTYPE_DIRECTIONAL = 0;
const LIGHTTYPE_OMNI = 1;
const LIGHTTYPE_POINT = LIGHTTYPE_OMNI;
const LIGHTTYPE_SPOT = 2;
const LIGHTTYPE_COUNT = 3;
const lightTypeNames = {
[LIGHTTYPE_DIRECTIONAL]: "DIRECTIONAL",
[LIGHTTYPE_OMNI]: "OMNI",
[LIGHTTYPE_SPOT]: "SPOT"
};
const LIGHT_COLOR_DIVIDER = 100;
const LIGHTSHAPE_PUNCTUAL = 0;
const LIGHTSHAPE_RECT = 1;
const LIGHTSHAPE_DISK = 2;
const LIGHTSHAPE_SPHERE = 3;
const lightShapeNames = {
[LIGHTSHAPE_PUNCTUAL]: "PUNCTUAL",
[LIGHTSHAPE_RECT]: "RECT",
[LIGHTSHAPE_DISK]: "DISK",
[LIGHTSHAPE_SPHERE]: "SPHERE"
};
const LIGHTFALLOFF_LINEAR = 0;
const LIGHTFALLOFF_INVERSESQUARED = 1;
const lightFalloffNames = {
[LIGHTFALLOFF_LINEAR]: "LINEAR",
[LIGHTFALLOFF_INVERSESQUARED]: "INVERSESQUARED"
};
const SHADOW_PCF3_32F = 0;
const SHADOW_PCF3 = 0;
const SHADOW_VSM_16F = 2;
const SHADOW_VSM16 = 2;
const SHADOW_VSM_32F = 3;
const SHADOW_VSM32 = 3;
const SHADOW_PCF5_32F = 4;
const SHADOW_PCF5 = 4;
const SHADOW_PCF1_32F = 5;
const SHADOW_PCF1 = 5;
const SHADOW_PCSS_32F = 6;
const SHADOW_PCF1_16F = 7;
const SHADOW_PCF3_16F = 8;
const SHADOW_PCF5_16F = 9;
const shadowTypeInfo = /* @__PURE__ */ new Map([
[SHADOW_PCF1_32F, { name: "PCF1_32F", kind: "PCF1", format: PIXELFORMAT_DEPTH, pcf: true }],
[SHADOW_PCF3_32F, { name: "PCF3_32F", kind: "PCF3", format: PIXELFORMAT_DEPTH, pcf: true }],
[SHADOW_PCF5_32F, { name: "PCF5_32F", kind: "PCF5", format: PIXELFORMAT_DEPTH, pcf: true }],
[SHADOW_PCF1_16F, { name: "PCF1_16F", kind: "PCF1", format: PIXELFORMAT_DEPTH16, pcf: true }],
[SHADOW_PCF3_16F, { name: "PCF3_16F", kind: "PCF3", format: PIXELFORMAT_DEPTH16, pcf: true }],
[SHADOW_PCF5_16F, { name: "PCF5_16F", kind: "PCF5", format: PIXELFORMAT_DEPTH16, pcf: true }],
[SHADOW_VSM_16F, { name: "VSM_16F", kind: "VSM", format: PIXELFORMAT_RGBA16F, vsm: true }],
[SHADOW_VSM_32F, { name: "VSM_32F", kind: "VSM", format: PIXELFORMAT_RGBA32F, vsm: true }],
[SHADOW_PCSS_32F, { name: "PCSS_32F", kind: "PCSS", format: PIXELFORMAT_R32F, pcss: true }]
]);
const SHADOW_CASCADE_0 = 1;
const SHADOW_CASCADE_1 = 2;
const SHADOW_CASCADE_2 = 4;
const SHADOW_CASCADE_3 = 8;
const SHADOW_CASCADE_ALL = 255;
const BLUR_BOX = 0;
const BLUR_GAUSSIAN = 1;
const PARTICLESORT_NONE = 0;
const PARTICLESORT_DISTANCE = 1;
const PARTICLESORT_NEWER_FIRST = 2;
const PARTICLESORT_OLDER_FIRST = 3;
const PARTICLEMODE_GPU = 0;
const PARTICLEMODE_CPU = 1;
const EMITTERSHAPE_BOX = 0;
const EMITTERSHAPE_SPHERE = 1;
const PARTICLEORIENTATION_SCREEN = 0;
const PARTICLEORIENTATION_WORLD = 1;
const PARTICLEORIENTATION_EMITTER = 2;
const PROJECTION_PERSPECTIVE = 0;
const PROJECTION_ORTHOGRAPHIC = 1;
const RENDERSTYLE_SOLID = 0;
const RENDERSTYLE_WIREFRAME = 1;
const RENDERSTYLE_POINTS = 2;
const CUBEPROJ_NONE = 0;
const CUBEPROJ_BOX = 1;
const cubemaProjectionNames = {
[CUBEPROJ_NONE]: "NONE",
[CUBEPROJ_BOX]: "BOX"
};
const DETAILMODE_MUL = "mul";
const DETAILMODE_ADD = "add";
const DETAILMODE_SCREEN = "screen";
const DETAILMODE_OVERLAY = "overlay";
const DETAILMODE_MIN = "min";
const DETAILMODE_MAX = "max";
const GAMMA_NONE = 0;
const GAMMA_SRGB = 1;
const gammaNames = {
[GAMMA_NONE]: "NONE",
[GAMMA_SRGB]: "SRGB"
};
const TONEMAP_LINEAR = 0;
const TONEMAP_FILMIC = 1;
const TONEMAP_HEJL = 2;
const TONEMAP_ACES = 3;
const TONEMAP_ACES2 = 4;
const TONEMAP_NEUTRAL = 5;
const TONEMAP_NONE = 6;
const tonemapNames = [
"LINEAR",
"FILMIC",
"HEJL",
"ACES",
"ACES2",
"NEUTRAL",
"NONE"
];
const SPECOCC_NONE = 0;
const SPECOCC_AO = 1;
const SPECOCC_GLOSSDEPENDENT = 2;
const specularOcclusionNames = {
[SPECOCC_NONE]: "NONE",
[SPECOCC_AO]: "AO",
[SPECOCC_GLOSSDEPENDENT]: "GLOSSDEPENDENT"
};
const REFLECTIONSRC_NONE = "none";
const REFLECTIONSRC_ENVATLAS = "envAtlas";
const REFLECTIONSRC_ENVATLASHQ = "envAtlasHQ";
const REFLECTIONSRC_CUBEMAP = "cubeMap";
const REFLECTIONSRC_SPHEREMAP = "sphereMap";
const reflectionSrcNames = {
[REFLECTIONSRC_NONE]: "NONE",
[REFLECTIONSRC_ENVATLAS]: "ENVATLAS",
[REFLECTIONSRC_ENVATLASHQ]: "ENVATLASHQ",
[REFLECTIONSRC_CUBEMAP]: "CUBEMAP",
[REFLECTIONSRC_SPHEREMAP]: "SPHEREMAP"
};
const AMBIENTSRC_AMBIENTSH = "ambientSH";
const AMBIENTSRC_ENVALATLAS = "envAtlas";
const AMBIENTSRC_CONSTANT = "constant";
const ambientSrcNames = {
[AMBIENTSRC_AMBIENTSH]: "AMBIENTSH",
[AMBIENTSRC_ENVALATLAS]: "ENVALATLAS",
[AMBIENTSRC_CONSTANT]: "CONSTANT"
};
const SHADERDEF_NOSHADOW = 1;
const SHADERDEF_SKIN = 2;
const SHADERDEF_UV0 = 4;
const SHADERDEF_UV1 = 8;
const SHADERDEF_VCOLOR = 16;
const SHADERDEF_INSTANCING = 32;
const SHADERDEF_LM = 64;
const SHADERDEF_DIRLM = 128;
const SHADERDEF_SCREENSPACE = 256;
const SHADERDEF_TANGENTS = 512;
const SHADERDEF_MORPH_POSITION = 1024;
const SHADERDEF_MORPH_NORMAL = 2048;
const SHADERDEF_LMAMBIENT = 4096;
const SHADERDEF_MORPH_TEXTURE_BASED_INT = 8192;
const SHADERDEF_BATCH = 16384;
const SHADOWUPDATE_NONE = 0;
const SHADOWUPDATE_THISFRAME = 1;
const SHADOWUPDATE_REALTIME = 2;
const MASK_AFFECT_DYNAMIC = 1;
const MASK_AFFECT_LIGHTMAPPED = 2;
const MASK_BAKE = 4;
const SHADER_FORWARD = 0;
const SHADER_PREPASS = 1;
const SHADER_SHADOW = 2;
const SHADER_PICK = 3;
const SHADER_DEPTH_PICK = 4;
const SHADERPASS_FORWARD = "forward";
const SHADERPASS_ALBEDO = "debug_albedo";
const SHADERPASS_WORLDNORMAL = "debug_world_normal";
const SHADERPASS_OPACITY = "debug_opacity";
const SHADERPASS_SPECULARITY = "debug_specularity";
const SHADERPASS_GLOSS = "debug_gloss";
const SHADERPASS_METALNESS = "debug_metalness";
const SHADERPASS_AO = "debug_ao";
const SHADERPASS_EMISSION = "debug_emission";
const SHADERPASS_LIGHTING = "debug_lighting";
const SHADERPASS_UV0 = "debug_uv0";
const SPRITE_RENDERMODE_SIMPLE = 0;
const SPRITE_RENDERMODE_SLICED = 1;
const SPRITE_RENDERMODE_TILED = 2;
const spriteRenderModeNames = {
[SPRITE_RENDERMODE_SIMPLE]: "SIMPLE",
[SPRITE_RENDERMODE_SLICED]: "SLICED",
[SPRITE_RENDERMODE_TILED]: "TILED"
};
const BAKE_COLOR = 0;
const BAKE_COLORDIR = 1;
const VIEW_CENTER = 0;
const VIEW_LEFT = 1;
const VIEW_RIGHT = 2;
const SORTMODE_NONE = 0;
const SORTMODE_MANUAL = 1;
const SORTMODE_MATERIALMESH = 2;
const SORTMODE_BACK2FRONT = 3;
const SORTMODE_FRONT2BACK = 4;
const SORTMODE_CUSTOM = 5;
const ASPECT_AUTO = 0;
const ASPECT_MANUAL = 1;
const ORIENTATION_HORIZONTAL = 0;
const ORIENTATION_VERTICAL = 1;
const SKYTYPE_INFINITE = "infinite";
const SKYTYPE_BOX = "box";
const SKYTYPE_DOME = "dome";
const DITHER_NONE = "none";
const DITHER_BAYER8 = "bayer8";
const DITHER_BLUENOISE = "bluenoise";
const DITHER_IGNNOISE = "ignnoise";
const ditherNames = {
[DITHER_NONE]: "NONE",
[DITHER_BAYER8]: "BAYER8",
[DITHER_BLUENOISE]: "BLUENOISE",
[DITHER_IGNNOISE]: "IGNNOISE"
};
const EVENT_PRERENDER = "prerender";
const EVENT_POSTRENDER = "postrender";
const EVENT_PRERENDER_LAYER = "prerender:layer";
const EVENT_POSTRENDER_LAYER = "postrender:layer";
const EVENT_PRECULL = "precull";
const EVENT_POSTCULL = "postcull";
const EVENT_CULL_END = "cull:end";
const GSPLAT_FORWARD = 1;
const GSPLAT_SHADOW = 2;
const SHADOWCAMERA_NAME = "pcShadowCamera";
const WORKBUFFER_UPDATE_AUTO = 0;
const WORKBUFFER_UPDATE_ONCE = 1;
const WORKBUFFER_UPDATE_ALWAYS = 2;
const GSPLAT_STREAM_RESOURCE = 0;
const GSPLAT_STREAM_INSTANCE = 1;
const GSPLATDATA_LARGE = "large";
const GSPLATDATA_COMPACT = "compact";
const GSPLAT_RENDERER_AUTO = 0;
const GSPLAT_RENDERER_RASTER_CPU_SORT = 1;
const GSPLAT_RENDERER_RASTER_GPU_SORT = 2;
const GSPLAT_RENDERER_COMPUTE = 3;
const GSPLAT_DEBUG_NONE = 0;
const GSPLAT_DEBUG_LOD = 1;
const GSPLAT_DEBUG_SH_UPDATE = 2;
const GSPLAT_DEBUG_HEATMAP = 3;
const GSPLAT_DEBUG_AABBS = 4;
const GSPLAT_DEBUG_NODE_AABBS = 5;
const RADIX_SORT_AUTO = 0;
const RADIX_SORT_PORTABLE = 1;
const RADIX_SORT_ONESWEEP = 2;
export {
AMBIENTSRC_AMBIENTSH,
AMBIENTSRC_CONSTANT,
AMBIENTSRC_ENVALATLAS,
ASPECT_AUTO,
ASPECT_MANUAL,
BAKE_COLOR,
BAKE_COLORDIR,
BLEND_ADDITIVE,
BLEND_ADDITIVEALPHA,
BLEND_MAX,
BLEND_MIN,
BLEND_MULTIPLICATIVE,
BLEND_MULTIPLICATIVE2X,
BLEND_NONE,
BLEND_NORMAL,
BLEND_PREMULTIPLIED,
BLEND_SCREEN,
BLEND_SUBTRACTIVE,
BLUR_BOX,
BLUR_GAUSSIAN,
CUBEPROJ_BOX,
CUBEPROJ_NONE,
DETAILMODE_ADD,
DETAILMODE_MAX,
DETAILMODE_MIN,
DETAILMODE_MUL,
DETAILMODE_OVERLAY,
DETAILMODE_SCREEN,
DITHER_BAYER8,
DITHER_BLUENOISE,
DITHER_IGNNOISE,
DITHER_NONE,
EMITTERSHAPE_BOX,
EMITTERSHAPE_SPHERE,
EVENT_CULL_END,
EVENT_POSTCULL,
EVENT_POSTRENDER,
EVENT_POSTRENDER_LAYER,
EVENT_PRECULL,
EVENT_PRERENDER,
EVENT_PRERENDER_LAYER,
FOG_EXP,
FOG_EXP2,
FOG_LINEAR,
FOG_NONE,
FRESNEL_NONE,
FRESNEL_SCHLICK,
GAMMA_NONE,
GAMMA_SRGB,
GSPLATDATA_COMPACT,
GSPLATDATA_LARGE,
GSPLAT_DEBUG_AABBS,
GSPLAT_DEBUG_HEATMAP,
GSPLAT_DEBUG_LOD,
GSPLAT_DEBUG_NODE_AABBS,
GSPLAT_DEBUG_NONE,
GSPLAT_DEBUG_SH_UPDATE,
GSPLAT_FORWARD,
GSPLAT_RENDERER_AUTO,
GSPLAT_RENDERER_COMPUTE,
GSPLAT_RENDERER_RASTER_CPU_SORT,
GSPLAT_RENDERER_RASTER_GPU_SORT,
GSPLAT_SHADOW,
GSPLAT_STREAM_INSTANCE,
GSPLAT_STREAM_RESOURCE,
LAYERID_DEPTH,
LAYERID_IMMEDIATE,
LAYERID_SKYBOX,
LAYERID_UI,
LAYERID_WORLD,
LAYER_GIZMO,
LAYER_HUD,
LAYER_WORLD,
LIGHTFALLOFF_INVERSESQUARED,
LIGHTFALLOFF_LINEAR,
LIGHTSHAPE_DISK,
LIGHTSHAPE_PUNCTUAL,
LIGHTSHAPE_RECT,
LIGHTSHAPE_SPHERE,
LIGHTTYPE_COUNT,
LIGHTTYPE_DIRECTIONAL,
LIGHTTYPE_OMNI,
LIGHTTYPE_POINT,
LIGHTTYPE_SPOT,
LIGHT_COLOR_DIVIDER,
MASK_AFFECT_DYNAMIC,
MASK_AFFECT_LIGHTMAPPED,
MASK_BAKE,
ORIENTATION_HORIZONTAL,
ORIENTATION_VERTICAL,
PARTICLEMODE_CPU,
PARTICLEMODE_GPU,
PARTICLEORIENTATION_EMITTER,
PARTICLEORIENTATION_SCREEN,
PARTICLEORIENTATION_WORLD,
PARTICLESORT_DISTANCE,
PARTICLESORT_NEWER_FIRST,
PARTICLESORT_NONE,
PARTICLESORT_OLDER_FIRST,
PROJECTION_ORTHOGRAPHIC,
PROJECTION_PERSPECTIVE,
RADIX_SORT_AUTO,
RADIX_SORT_ONESWEEP,
RADIX_SORT_PORTABLE,
REFLECTIONSRC_CUBEMAP,
REFLECTIONSRC_ENVATLAS,
REFLECTIONSRC_ENVATLASHQ,
REFLECTIONSRC_NONE,
REFLECTIONSRC_SPHEREMAP,
RENDERSTYLE_POINTS,
RENDERSTYLE_SOLID,
RENDERSTYLE_WIREFRAME,
SHADERDEF_BATCH,
SHADERDEF_DIRLM,
SHADERDEF_INSTANCING,
SHADERDEF_LM,
SHADERDEF_LMAMBIENT,
SHADERDEF_MORPH_NORMAL,
SHADERDEF_MORPH_POSITION,
SHADERDEF_MORPH_TEXTURE_BASED_INT,
SHADERDEF_NOSHADOW,
SHADERDEF_SCREENSPACE,
SHADERDEF_SKIN,
SHADERDEF_TANGENTS,
SHADERDEF_UV0,
SHADERDEF_UV1,
SHADERDEF_VCOLOR,
SHADERPASS_ALBEDO,
SHADERPASS_AO,
SHADERPASS_EMISSION,
SHADERPASS_FORWARD,
SHADERPASS_GLOSS,
SHADERPASS_LIGHTING,
SHADERPASS_METALNESS,
SHADERPASS_OPACITY,
SHADERPASS_SPECULARITY,
SHADERPASS_UV0,
SHADERPASS_WORLDNORMAL,
SHADER_DEPTH_PICK,
SHADER_FORWARD,
SHADER_PICK,
SHADER_PREPASS,
SHADER_SHADOW,
SHADOWCAMERA_NAME,
SHADOWUPDATE_NONE,
SHADOWUPDATE_REALTIME,
SHADOWUPDATE_THISFRAME,
SHADOW_CASCADE_0,
SHADOW_CASCADE_1,
SHADOW_CASCADE_2,
SHADOW_CASCADE_3,
SHADOW_CASCADE_ALL,
SHADOW_PCF1,
SHADOW_PCF1_16F,
SHADOW_PCF1_32F,
SHADOW_PCF3,
SHADOW_PCF3_16F,
SHADOW_PCF3_32F,
SHADOW_PCF5,
SHADOW_PCF5_16F,
SHADOW_PCF5_32F,
SHADOW_PCSS_32F,
SHADOW_VSM16,
SHADOW_VSM32,
SHADOW_VSM_16F,
SHADOW_VSM_32F,
SKYTYPE_BOX,
SKYTYPE_DOME,
SKYTYPE_INFINITE,
SORTMODE_BACK2FRONT,
SORTMODE_CUSTOM,
SORTMODE_FRONT2BACK,
SORTMODE_MANUAL,
SORTMODE_MATERIALMESH,
SORTMODE_NONE,
SPECOCC_AO,
SPECOCC_GLOSSDEPENDENT,
SPECOCC_NONE,
SPRITE_RENDERMODE_SIMPLE,
SPRITE_RENDERMODE_SLICED,
SPRITE_RENDERMODE_TILED,
TONEMAP_ACES,
TONEMAP_ACES2,
TONEMAP_FILMIC,
TONEMAP_HEJL,
TONEMAP_LINEAR,
TONEMAP_NEUTRAL,
TONEMAP_NONE,
VIEW_CENTER,
VIEW_LEFT,
VIEW_RIGHT,
WORKBUFFER_UPDATE_ALWAYS,
WORKBUFFER_UPDATE_AUTO,
WORKBUFFER_UPDATE_ONCE,
ambientSrcNames,
blendNames,
cubemaProjectionNames,
ditherNames,
fresnelNames,
gammaNames,
lightFalloffNames,
lightShapeNames,
lightTypeNames,
reflectionSrcNames,
shadowTypeInfo,
specularOcclusionNames,
spriteRenderModeNames,
tonemapNames
};