@forgeax/engine-render 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
- import { tilemapChunkExtractSystem } from './chunk-QRXPSX4X.mjs';
2
- import { GpuBuffer, GpuTexture, getOrCreateMipmapPipeline, deriveRenderDataTexture, deriveRenderDataMesh, blitMipmapsSync, deriveMipUploadLayout, deriveRenderDataCubemap, createIblPipelines, GPU_TEXTURE_USAGE_TEXTURE_BINDING, GPU_TEXTURE_USAGE_COPY_DST, CUBEMAP_FACE_VERTICES, GPU_BUFFER_USAGE_VERTEX, GPU_BUFFER_USAGE_COPY_DST, runIblPrecompute, MeshUpdateError, GPU_BUFFER_USAGE_INDEX, colorFormatsForPassKind, buildPipelineDescriptor, createMembershipTiming, createRenderFeatureHost, createParamSchemaProjectionCensus, SKIN_MATERIAL_SHADER_ID, createRenderSystem, URP_PIPELINE_ID, urpPipeline, HDRP_PIPELINE_ID, hdrpPipeline, assertStorageBufferCap, GPU_BUFFER_USAGE_UNIFORM, CAPTURE_VIEW_PROJS, PREFILTER_MIP_LEVELS, RENDER_FEATURE_VERTEX_LAYOUTS, cacheKeyOf, RecoverError, clearIblCacheForDevice, GPU_BUFFER_USAGE_STORAGE, setIblComposedShaders, TONEMAP_POST_PROCESS_ID, HDRP_DEFERRED_LIGHTING_POST_PROCESS_ID, createTaaResolvePipelineResources, createHdrpBindGroupLayoutDescriptor, createHdrpClusterMembershipBindGroupLayoutDescriptor, MATERIAL_PER_ENTITY_STRIDE, createSkylightFallback, buildSpecConstTable, buildLinearLdrMaterialSpecTable, getOrBuildPipeline, PipelineSpecError, buildBindGroupLayoutDescriptor, directionalCascadeAtlasSize, GPU_BUFFER_USAGE_MAP_READ, configureSurface, GPU_SHADER_STAGE_VERTEX, GPU_SHADER_STAGE_FRAGMENT, ATMOSPHERE_PARAMS_BYTES, ATMOSPHERE_PARAMS_SLOT_BYTES, ATMOSPHERE_PARAMS_SLOT_COUNT, buildPbrPipelineLayouts, buildPbrSkinLayouts, VIEW_UNIFORM_BUFFER_SIZE, SHADOW_CASTER_BUFFER_SIZE, FALLBACK_BYTES_PER_ROW, GPU_TEXTURE_USAGE_RENDER_ATTACHMENT_AND_TEXTURE_BINDING, LIGHT_ARRAY_HEADER_BYTES, POINT_LIGHT_STD430_BYTES, LIGHT_ARRAY_MAX_SLOTS, SPOT_LIGHT_STD430_BYTES, GPU_TEXTURE_USAGE_COPY_SRC, PREFILTER_SIZE } from './chunk-A5QCJSNL.mjs';
3
- import { MeshSsboCeilingReachedError, MeshSsboCapacityExceededError, glyphTextLayoutSystem, RenderFeatureStageFailedError, RenderFeatureCapabilityMissingError, SkinPaletteOverflowError } from './chunk-YAKEQPWO.mjs';
1
+ import { tilemapChunkExtractSystem } from './chunk-KHI6K4C6.mjs';
2
+ import { GpuBuffer, GpuTexture, getOrCreateMipmapPipeline, deriveRenderDataTexture, deriveRenderDataMesh, blitMipmapsSync, deriveMipUploadLayout, deriveRenderDataCubemap, createIblPipelines, GPU_TEXTURE_USAGE_TEXTURE_BINDING, GPU_TEXTURE_USAGE_COPY_DST, CUBEMAP_FACE_VERTICES, GPU_BUFFER_USAGE_VERTEX, GPU_BUFFER_USAGE_COPY_DST, runIblPrecompute, MeshUpdateError, GPU_BUFFER_USAGE_INDEX, colorFormatsForPassKind, buildPipelineDescriptor, createMembershipTiming, createRenderFeatureHost, createParamSchemaProjectionCensus, SKIN_MATERIAL_SHADER_ID, createRenderSystem, URP_PIPELINE_ID, urpPipeline, HDRP_PIPELINE_ID, hdrpPipeline, assertStorageBufferCap, GPU_BUFFER_USAGE_UNIFORM, CAPTURE_VIEW_PROJS, PREFILTER_MIP_LEVELS, RENDER_FEATURE_VERTEX_LAYOUTS, cacheKeyOf, RecoverError, clearIblCacheForDevice, GPU_BUFFER_USAGE_STORAGE, setIblComposedShaders, TONEMAP_POST_PROCESS_ID, HDRP_DEFERRED_LIGHTING_POST_PROCESS_ID, createTaaResolvePipelineResources, createHdrpBindGroupLayoutDescriptor, createHdrpClusterMembershipBindGroupLayoutDescriptor, MATERIAL_PER_ENTITY_STRIDE, createSkylightFallback, buildSpecConstTable, buildLinearLdrMaterialSpecTable, getOrBuildPipeline, PipelineSpecError, buildBindGroupLayoutDescriptor, directionalCascadeAtlasSize, GPU_BUFFER_USAGE_MAP_READ, configureSurface, GPU_SHADER_STAGE_VERTEX, GPU_SHADER_STAGE_FRAGMENT, ATMOSPHERE_PARAMS_BYTES, ATMOSPHERE_PARAMS_SLOT_BYTES, ATMOSPHERE_PARAMS_SLOT_COUNT, buildPbrPipelineLayouts, buildPbrSkinLayouts, VIEW_UNIFORM_BUFFER_SIZE, SHADOW_CASTER_BUFFER_SIZE, FALLBACK_BYTES_PER_ROW, GPU_TEXTURE_USAGE_RENDER_ATTACHMENT_AND_TEXTURE_BINDING, LIGHT_ARRAY_HEADER_BYTES, POINT_LIGHT_STD430_BYTES, LIGHT_ARRAY_MAX_SLOTS, SPOT_LIGHT_STD430_BYTES, GPU_TEXTURE_USAGE_COPY_SRC, PREFILTER_SIZE } from './chunk-UOJGMDGP.mjs';
3
+ import { MeshSsboCeilingReachedError, MeshSsboCapacityExceededError, glyphTextLayoutSystem, RenderFeatureStageFailedError, RenderFeatureCapabilityMissingError, SkinPaletteOverflowError } from './chunk-DJIMFYX6.mjs';
4
4
  import { halfFloat, mat4 } from '@forgeax/engine-math';
5
5
  import { err, RhiError, ok, validateDrawArgs } from '@forgeax/engine-rhi';
6
6
  import { handleSlot, ASSET_ERROR_HINTS, AssetError, ok as ok$1, err as err$1, derive, IMAGE_ERROR_HINTS } from '@forgeax/engine-types';
@@ -2187,6 +2187,12 @@ function selectHdrpPbrPrewarmVariants(manifestEntry, storageBufferCapable) {
2187
2187
  (variant) => variant.defines.STORAGE_BUFFER_AVAILABLE === storageBufferCapable && variant.defines.CLUSTER_FORWARD_AVAILABLE === true
2188
2188
  ) ?? [];
2189
2189
  }
2190
+ function selectNoColorPbrVariant(manifestEntry, storageBufferCapable, variantSet) {
2191
+ const hdrpRequested = variantSet === "" || variantSet?.includes("CLUSTER_FORWARD_AVAILABLE=true") === true;
2192
+ return manifestEntry?.variants.find(
2193
+ (variant) => variant.defines.STORAGE_BUFFER_AVAILABLE === storageBufferCapable && variant.defines.VERTEX_COLOR_AVAILABLE === false && (!("CLUSTER_FORWARD_AVAILABLE" in variant.defines) || variant.defines.CLUSTER_FORWARD_AVAILABLE === hdrpRequested)
2194
+ );
2195
+ }
2190
2196
  function resolveMaterialShaderBindingContract(source) {
2191
2197
  const withoutComments = source.replace(/\/\*[\s\S]*?\*\//gu, "").replace(/\/\/.*$/gmu, "");
2192
2198
  const groups = [...withoutComments.matchAll(/@group\s*\(\s*(\d+)\s*\)/gu)].map(
@@ -2874,11 +2880,31 @@ async function makeWebGPURenderer(internals) {
2874
2880
  );
2875
2881
  }
2876
2882
  );
2877
- const findStandardPbrEntry = () => {
2883
+ const findStandardPbrEntry = (variantSet) => {
2884
+ let standardEntry;
2878
2885
  for (const entry of getShader().entries()) {
2879
- if (entry.wgsl.includes("f_schlick")) return entry;
2886
+ if (entry.wgsl.includes("f_schlick")) {
2887
+ standardEntry = entry;
2888
+ break;
2889
+ }
2880
2890
  }
2881
- return void 0;
2891
+ if (standardEntry === void 0) return void 0;
2892
+ const pbrManifestEntry = [...getShader().materialShaderManifestEntries()].find(
2893
+ (entry) => entry.identifier === "forgeax::default-standard-pbr"
2894
+ );
2895
+ const noColorVariant = selectNoColorPbrVariant(
2896
+ pbrManifestEntry,
2897
+ internals.device.caps.storageBuffer,
2898
+ variantSet
2899
+ );
2900
+ if (noColorVariant !== void 0 && noColorVariant.composedWgsl !== standardEntry.wgsl) {
2901
+ return { ...standardEntry, wgsl: noColorVariant.composedWgsl };
2902
+ }
2903
+ const runtimePbr = getShader().findMaterialArtifact("forgeax::default-standard-pbr");
2904
+ if (runtimePbr.ok && runtimePbr.value.source !== standardEntry.wgsl) {
2905
+ return { ...standardEntry, wgsl: runtimePbr.value.source };
2906
+ }
2907
+ return standardEntry;
2882
2908
  };
2883
2909
  const buildPipelineContext = (variantSet, materialShaderId, meshAttributes, vertexLayout, vertexLayoutProjection) => {
2884
2910
  const layoutKind = materialShaderId === SKIN_MATERIAL_SHADER_ID ? "pbr-skin" : materialShaderId === "forgeax::sprite" || materialShaderId === "forgeax::sprite-lit" ? "sprite-urp" : materialShaderId === "forgeax::default-unlit" ? "unlit-urp" : void 0;
@@ -3078,7 +3104,7 @@ async function makeWebGPURenderer(internals) {
3078
3104
  vertexLayoutProjection
3079
3105
  );
3080
3106
  }
3081
- const pbrEntry = findStandardPbrEntry();
3107
+ const pbrEntry = findStandardPbrEntry(effectiveVariantSet);
3082
3108
  if (pbrEntry === void 0) return null;
3083
3109
  return buildAndCachePipeline(
3084
3110
  cacheKey,
@@ -7392,6 +7418,6 @@ async function runShimStep(fn, fallbackCode, expected, hint) {
7392
7418
  }
7393
7419
  }
7394
7420
 
7395
- export { EngineEnvironmentError, GpuResourceStore, HealthListenerRegistry, LostListenerRegistry, RhiErrorListenerRegistry, SHADOW_PROBE_WGSL, assembleMaterialProjection, buildPipelineForMaterialShader, createEngineMetrics, createMaterialAssetService, createMeshSsboGrowController, createRenderer, createSkinPaletteAllocator, deriveRecoverable, deriveStorageBufferCeiling, loadRhiPack2 as loadRhiPack, resolveMaterialShaderBindingContract, resolveMaterialShaderVariantSet, resolveMaterialShaderVertexInputContract, selectHdrpPbrPrewarmVariants, selectPipelineLayoutForVariant };
7396
- //# sourceMappingURL=chunk-33UF5SAO.mjs.map
7397
- //# sourceMappingURL=chunk-33UF5SAO.mjs.map
7421
+ export { EngineEnvironmentError, GpuResourceStore, HealthListenerRegistry, LostListenerRegistry, RhiErrorListenerRegistry, SHADOW_PROBE_WGSL, assembleMaterialProjection, buildPipelineForMaterialShader, createEngineMetrics, createMaterialAssetService, createMeshSsboGrowController, createRenderer, createSkinPaletteAllocator, deriveRecoverable, deriveStorageBufferCeiling, loadRhiPack2 as loadRhiPack, resolveMaterialShaderBindingContract, resolveMaterialShaderVariantSet, resolveMaterialShaderVertexInputContract, selectHdrpPbrPrewarmVariants, selectNoColorPbrVariant, selectPipelineLayoutForVariant };
7422
+ //# sourceMappingURL=chunk-F2SIOCRM.mjs.map
7423
+ //# sourceMappingURL=chunk-F2SIOCRM.mjs.map