ris-framework 0.2.0-dev.11 → 0.2.0-dev.12
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.
- package/CHANGELOG.md +22 -29
- package/README.md +13 -1
- package/dist/Framework.d.ts +26 -8
- package/dist/Framework.d.ts.map +1 -1
- package/dist/api/IFramework.d.ts +43 -0
- package/dist/api/IFramework.d.ts.map +1 -1
- package/dist/api/_export.d.ts +1 -1
- package/dist/api/_export.d.ts.map +1 -1
- package/dist/api/content/ContentManager.d.ts +5 -57
- package/dist/api/content/ContentManager.d.ts.map +1 -1
- package/dist/api/content/IContentManager.d.ts +24 -21
- package/dist/api/content/IContentManager.d.ts.map +1 -1
- package/dist/api/lights/LightsBuffer.d.ts +13 -6
- package/dist/api/lights/LightsBuffer.d.ts.map +1 -1
- package/dist/api/loaders/ObjGeometryMapper.d.ts +2 -2
- package/dist/api/loaders/ObjLoader.d.ts +61 -0
- package/dist/api/loaders/ObjLoader.d.ts.map +1 -0
- package/dist/api/loaders/_export.d.ts +1 -0
- package/dist/api/loaders/_export.d.ts.map +1 -1
- package/dist/api/loaders/obj/{ObjLoader.d.ts → ObjParser.d.ts} +20 -5
- package/dist/api/loaders/obj/ObjParser.d.ts.map +1 -0
- package/dist/api/loaders/obj/ObjTypes.d.ts +17 -1
- package/dist/api/loaders/obj/ObjTypes.d.ts.map +1 -1
- package/dist/api/loaders/obj/index.d.ts +1 -1
- package/dist/api/material/ForwardBlinnPhongMaterial.d.ts +22 -11
- package/dist/api/material/ForwardBlinnPhongMaterial.d.ts.map +1 -1
- package/dist/api/material/ICameraMaterial.d.ts +18 -0
- package/dist/api/material/ICameraMaterial.d.ts.map +1 -0
- package/dist/api/material/ILightsMaterial.d.ts +26 -0
- package/dist/api/material/ILightsMaterial.d.ts.map +1 -0
- package/dist/api/material/IMaterial.d.ts +2 -8
- package/dist/api/material/IMaterial.d.ts.map +1 -1
- package/dist/api/material/InspectTextureMipsMaterial.d.ts +2 -2
- package/dist/api/material/InspectTextureMipsMaterial.d.ts.map +1 -1
- package/dist/api/material/SpriteMaterial.d.ts +2 -2
- package/dist/api/material/SpriteMaterial.d.ts.map +1 -1
- package/dist/api/material/UnlitMaterial.d.ts +4 -3
- package/dist/api/material/UnlitMaterial.d.ts.map +1 -1
- package/dist/api/material/_export.d.ts +2 -0
- package/dist/api/material/_export.d.ts.map +1 -1
- package/dist/api/meshes/IMesh.d.ts +29 -34
- package/dist/api/meshes/IMesh.d.ts.map +1 -1
- package/dist/api/meshes/IMeshFactory.d.ts +13 -8
- package/dist/api/meshes/IMeshFactory.d.ts.map +1 -1
- package/dist/api/meshes/IRenderableMesh.d.ts +47 -0
- package/dist/api/meshes/IRenderableMesh.d.ts.map +1 -0
- package/dist/api/meshes/Mesh.d.ts +11 -57
- package/dist/api/meshes/Mesh.d.ts.map +1 -1
- package/dist/api/meshes/MeshFactory.d.ts +6 -3
- package/dist/api/meshes/MeshFactory.d.ts.map +1 -1
- package/dist/api/meshes/QuadMesh.d.ts +3 -5
- package/dist/api/meshes/QuadMesh.d.ts.map +1 -1
- package/dist/api/meshes/RenderableMesh.d.ts +95 -0
- package/dist/api/meshes/RenderableMesh.d.ts.map +1 -0
- package/dist/api/meshes/_export.d.ts +2 -1
- package/dist/api/meshes/_export.d.ts.map +1 -1
- package/dist/api/rendering/IGraphicsDeviceFeatures.d.ts +8 -2
- package/dist/api/rendering/IGraphicsDeviceFeatures.d.ts.map +1 -1
- package/dist/api/rendering/IRenderer.d.ts +28 -1
- package/dist/api/rendering/IRenderer.d.ts.map +1 -1
- package/dist/api/rendering/enums.d.ts +7 -0
- package/dist/api/rendering/enums.d.ts.map +1 -1
- package/dist/api/rendering/renderer-interface.d.ts +1 -31
- package/dist/api/rendering/renderer-interface.d.ts.map +1 -1
- package/dist/api/rendering/renderpass/RenderPassDescriptor.d.ts +2 -6
- package/dist/api/rendering/renderpass/RenderPassDescriptor.d.ts.map +1 -1
- package/dist/api/rendering/swapchain/ISwapChain.d.ts +1 -3
- package/dist/api/rendering/swapchain/ISwapChain.d.ts.map +1 -1
- package/dist/api/rendering/texture/TextureFormat.d.ts +88 -14
- package/dist/api/rendering/texture/TextureFormat.d.ts.map +1 -1
- package/dist/api/rendering/texture/TextureUtilities.d.ts +23 -0
- package/dist/api/rendering/texture/TextureUtilities.d.ts.map +1 -1
- package/dist/api/scene/Scene.d.ts +30 -21
- package/dist/api/scene/Scene.d.ts.map +1 -1
- package/dist/api/scene/SceneMesh.d.ts +27 -0
- package/dist/api/scene/SceneMesh.d.ts.map +1 -0
- package/dist/api/utilities/AlignUtilities.d.ts.map +1 -1
- package/dist/api/window/WindowManager.d.ts.map +1 -1
- package/dist/core/rendering/ARenderer.d.ts +5 -5
- package/dist/core/rendering/ARenderer.d.ts.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4006 -1355
- package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts +4 -0
- package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts.map +1 -1
- package/dist/webgl/WebGlRenderer.d.ts +1 -3
- package/dist/webgl/WebGlRenderer.d.ts.map +1 -1
- package/dist/webgl/lights/WebGlLightsBuffer.d.ts +8 -4
- package/dist/webgl/lights/WebGlLightsBuffer.d.ts.map +1 -1
- package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts +2 -0
- package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts.map +1 -1
- package/dist/webgl/swap-chain/WebGlSwapChain.d.ts +3 -2
- package/dist/webgl/swap-chain/WebGlSwapChain.d.ts.map +1 -1
- package/dist/webgl/texture/WebGlTextureFactory.d.ts +7 -0
- package/dist/webgl/texture/WebGlTextureFactory.d.ts.map +1 -1
- package/dist/webgl/utilities/WebGlConstants.d.ts +91 -0
- package/dist/webgl/utilities/WebGlConstants.d.ts.map +1 -0
- package/dist/webgl/utilities/WebGlConverter.d.ts +0 -7
- package/dist/webgl/utilities/WebGlConverter.d.ts.map +1 -1
- package/dist/webgl/utilities/WebGlErrorUtilities.d.ts +10 -0
- package/dist/webgl/utilities/WebGlErrorUtilities.d.ts.map +1 -0
- package/dist/webgl/utilities/WebGlTextureUtilities.d.ts.map +1 -1
- package/dist/webgl/utilities/WebGlUtilities.d.ts +3 -0
- package/dist/webgl/utilities/WebGlUtilities.d.ts.map +1 -1
- package/dist/webgpu/WebGpuGpuInfo.d.ts +28 -0
- package/dist/webgpu/WebGpuGpuInfo.d.ts.map +1 -0
- package/dist/webgpu/WebGpuGraphicsDevice.d.ts +80 -0
- package/dist/webgpu/WebGpuGraphicsDevice.d.ts.map +1 -0
- package/dist/webgpu/WebGpuGraphicsDeviceFeatures.d.ts +26 -0
- package/dist/webgpu/WebGpuGraphicsDeviceFeatures.d.ts.map +1 -0
- package/dist/webgpu/WebGpuRenderer.d.ts +26 -0
- package/dist/webgpu/WebGpuRenderer.d.ts.map +1 -0
- package/dist/webgpu/WebGpuTypes.d.ts +355 -0
- package/dist/webgpu/WebGpuTypes.d.ts.map +1 -0
- package/dist/webgpu/blending/WebGpuBlendState.d.ts +30 -0
- package/dist/webgpu/blending/WebGpuBlendState.d.ts.map +1 -0
- package/dist/webgpu/buffers/WebGpuBuffersFactory.d.ts +20 -0
- package/dist/webgpu/buffers/WebGpuBuffersFactory.d.ts.map +1 -0
- package/dist/webgpu/buffers/WebGpuIndexBuffer.d.ts +46 -0
- package/dist/webgpu/buffers/WebGpuIndexBuffer.d.ts.map +1 -0
- package/dist/webgpu/buffers/WebGpuUniformBuffer.d.ts +43 -0
- package/dist/webgpu/buffers/WebGpuUniformBuffer.d.ts.map +1 -0
- package/dist/webgpu/buffers/WebGpuVertexBuffer.d.ts +49 -0
- package/dist/webgpu/buffers/WebGpuVertexBuffer.d.ts.map +1 -0
- package/dist/webgpu/primitive/WebGpuPrimitiveState.d.ts +32 -0
- package/dist/webgpu/primitive/WebGpuPrimitiveState.d.ts.map +1 -0
- package/dist/webgpu/render-pass/WebGpuRenderPass.d.ts +28 -0
- package/dist/webgpu/render-pass/WebGpuRenderPass.d.ts.map +1 -0
- package/dist/webgpu/render-pipelines/AWebGpuRenderPipeline.d.ts +50 -0
- package/dist/webgpu/render-pipelines/AWebGpuRenderPipeline.d.ts.map +1 -0
- package/dist/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.d.ts +34 -0
- package/dist/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.d.ts.map +1 -0
- package/dist/webgpu/render-pipelines/WebGpuRenderPipelineFactory.d.ts +26 -0
- package/dist/webgpu/render-pipelines/WebGpuRenderPipelineFactory.d.ts.map +1 -0
- package/dist/webgpu/render-pipelines/material/AWebGpuMeshRenderPipeline.d.ts +72 -0
- package/dist/webgpu/render-pipelines/material/AWebGpuMeshRenderPipeline.d.ts.map +1 -0
- package/dist/webgpu/render-pipelines/material/WebGpuUnlitRenderPipeline.d.ts +40 -0
- package/dist/webgpu/render-pipelines/material/WebGpuUnlitRenderPipeline.d.ts.map +1 -0
- package/dist/webgpu/sampler/WebGpuSampler.d.ts +39 -0
- package/dist/webgpu/sampler/WebGpuSampler.d.ts.map +1 -0
- package/dist/webgpu/shader/WebGpuShaderModule.d.ts +29 -0
- package/dist/webgpu/shader/WebGpuShaderModule.d.ts.map +1 -0
- package/dist/webgpu/shader/WebGpuShaderModuleLoader.d.ts +21 -0
- package/dist/webgpu/shader/WebGpuShaderModuleLoader.d.ts.map +1 -0
- package/dist/webgpu/shader/WgslShaderContent.d.ts +9 -0
- package/dist/webgpu/shader/WgslShaderContent.d.ts.map +1 -0
- package/dist/webgpu/swap-chain/WebGpuSwapChain.d.ts +41 -0
- package/dist/webgpu/swap-chain/WebGpuSwapChain.d.ts.map +1 -0
- package/dist/webgpu/texture/WebGpuTexture2D.d.ts +47 -0
- package/dist/webgpu/texture/WebGpuTexture2D.d.ts.map +1 -0
- package/dist/webgpu/texture/WebGpuTextureFactory.d.ts +21 -0
- package/dist/webgpu/texture/WebGpuTextureFactory.d.ts.map +1 -0
- package/dist/webgpu/texture/WebGpuTextureView.d.ts +25 -0
- package/dist/webgpu/texture/WebGpuTextureView.d.ts.map +1 -0
- package/dist/webgpu/utilities/WebGpuConverter.d.ts +45 -0
- package/dist/webgpu/utilities/WebGpuConverter.d.ts.map +1 -0
- package/package.json +2 -2
- package/shaders/glsl/main_render_target_flip_y_fs.glsl +35 -1
- package/shaders/wgsl/forward_blinn_phong_material.wgsl +150 -0
- package/shaders/wgsl/inspect_texture_mips.wgsl +51 -0
- package/shaders/wgsl/main_frame_buffer.wgsl +35 -0
- package/shaders/wgsl/main_render_target_flip_y.wgsl +35 -0
- package/shaders/wgsl/sprite.wgsl +40 -0
- package/shaders/wgsl/unlit_material.wgsl +49 -0
- package/src/Framework.ts +121 -37
- package/src/api/IFramework.ts +55 -0
- package/src/api/_export.ts +1 -1
- package/src/api/content/ContentManager.ts +46 -180
- package/src/api/content/IContentManager.ts +25 -21
- package/src/api/lights/LightsBuffer.ts +13 -6
- package/src/api/loaders/ObjGeometryMapper.ts +2 -2
- package/src/api/loaders/ObjLoader.ts +126 -0
- package/src/api/loaders/_export.ts +1 -0
- package/src/api/loaders/obj/{ObjLoader.ts → ObjParser.ts} +35 -4
- package/src/api/loaders/obj/ObjTypes.ts +19 -1
- package/src/api/loaders/obj/index.ts +1 -1
- package/src/api/material/ForwardBlinnPhongMaterial.ts +48 -22
- package/src/api/material/ICameraMaterial.ts +22 -0
- package/src/api/material/ILightsMaterial.ts +32 -0
- package/src/api/material/IMaterial.ts +2 -9
- package/src/api/material/InspectTextureMipsMaterial.ts +2 -2
- package/src/api/material/SpriteMaterial.ts +2 -2
- package/src/api/material/UnlitMaterial.ts +4 -3
- package/src/api/material/_export.ts +2 -0
- package/src/api/meshes/IMesh.ts +32 -37
- package/src/api/meshes/IMeshFactory.ts +14 -8
- package/src/api/meshes/IRenderableMesh.ts +58 -0
- package/src/api/meshes/Mesh.ts +17 -132
- package/src/api/meshes/MeshFactory.ts +14 -5
- package/src/api/meshes/QuadMesh.ts +4 -6
- package/src/api/meshes/RenderableMesh.ts +207 -0
- package/src/api/meshes/_export.ts +6 -5
- package/src/api/rendering/IGraphicsDeviceFeatures.ts +28 -21
- package/src/api/rendering/IRenderer.ts +34 -1
- package/src/api/rendering/enums.ts +10 -0
- package/src/api/rendering/renderer-interface.ts +1 -36
- package/src/api/rendering/renderpass/RenderPassDescriptor.ts +10 -14
- package/src/api/rendering/swapchain/ISwapChain.ts +1 -3
- package/src/api/rendering/texture/TextureFormat.ts +128 -14
- package/src/api/rendering/texture/TextureUtilities.ts +225 -10
- package/src/api/scene/Scene.ts +102 -69
- package/src/api/scene/SceneMesh.ts +61 -0
- package/src/api/sprites/SpriteBatchMesh.ts +1 -1
- package/src/api/utilities/AlignUtilities.ts +2 -1
- package/src/api/window/WindowManager.ts +1 -1
- package/src/core/rendering/ARenderer.ts +24 -15
- package/src/index.ts +0 -1
- package/src/main.ts +2 -3
- package/src/webgl/WebGLGraphicsDeviceFeatures.ts +12 -2
- package/src/webgl/WebGlGpuInfo.ts +1 -1
- package/src/webgl/WebGlRenderer.ts +2 -5
- package/src/webgl/lights/WebGlLightsBuffer.ts +14 -4
- package/src/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.ts +18 -1
- package/src/webgl/swap-chain/WebGlSwapChain.ts +7 -6
- package/src/webgl/texture/WebGlTextureFactory.ts +49 -7
- package/src/webgl/utilities/WebGlConstants.ts +136 -0
- package/src/webgl/utilities/WebGlConverter.ts +91 -22
- package/src/webgl/utilities/WebGlErrorUtilities.ts +15 -0
- package/src/webgl/utilities/WebGlTextureUtilities.ts +5 -2
- package/src/webgl/utilities/WebGlUtilities.ts +4 -0
- package/src/webgpu/WebGpuGpuInfo.ts +61 -0
- package/src/webgpu/WebGpuGraphicsDevice.ts +199 -0
- package/src/webgpu/WebGpuGraphicsDeviceFeatures.ts +41 -0
- package/src/webgpu/WebGpuRenderer.ts +49 -0
- package/src/webgpu/WebGpuTypes.ts +288 -0
- package/src/webgpu/blending/WebGpuBlendState.ts +53 -0
- package/src/webgpu/buffers/WebGpuBuffersFactory.ts +46 -0
- package/src/webgpu/buffers/WebGpuIndexBuffer.ts +118 -0
- package/src/webgpu/buffers/WebGpuUniformBuffer.ts +102 -0
- package/src/webgpu/buffers/WebGpuVertexBuffer.ts +119 -0
- package/src/webgpu/primitive/WebGpuPrimitiveState.ts +52 -0
- package/src/webgpu/render-pass/WebGpuRenderPass.ts +131 -0
- package/src/webgpu/render-pipelines/AWebGpuRenderPipeline.ts +123 -0
- package/src/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.ts +119 -0
- package/src/webgpu/render-pipelines/WebGpuRenderPipelineFactory.ts +66 -0
- package/src/webgpu/render-pipelines/material/AWebGpuMeshRenderPipeline.ts +249 -0
- package/src/webgpu/render-pipelines/material/WebGpuUnlitRenderPipeline.ts +101 -0
- package/src/webgpu/sampler/WebGpuSampler.ts +84 -0
- package/src/webgpu/shader/WebGpuShaderModule.ts +65 -0
- package/src/webgpu/shader/WebGpuShaderModuleLoader.ts +38 -0
- package/src/webgpu/shader/WgslShaderContent.ts +20 -0
- package/src/webgpu/swap-chain/WebGpuSwapChain.ts +93 -0
- package/src/webgpu/texture/WebGpuTexture2D.ts +197 -0
- package/src/webgpu/texture/WebGpuTextureFactory.ts +118 -0
- package/src/webgpu/texture/WebGpuTextureView.ts +43 -0
- package/src/webgpu/utilities/WebGpuConverter.ts +299 -0
- package/src/wgsl-raw.d.ts +4 -0
- package/dist/api/FrameworkConfiguration.d.ts +0 -23
- package/dist/api/FrameworkConfiguration.d.ts.map +0 -1
- package/dist/api/IFrameworkConfiguration.d.ts +0 -25
- package/dist/api/IFrameworkConfiguration.d.ts.map +0 -1
- package/dist/api/loaders/obj/ObjLoader.d.ts.map +0 -1
- package/dist/api/meshes/SubMesh.d.ts +0 -47
- package/dist/api/meshes/SubMesh.d.ts.map +0 -1
- package/src/api/FrameworkConfiguration.ts +0 -29
- package/src/api/IFrameworkConfiguration.ts +0 -30
- package/src/api/meshes/SubMesh.ts +0 -71
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { ObjMaterialDefinition, type ObjLoadResult, type ObjLoadOptions } from "./ObjTypes.js";
|
|
1
|
+
import { ObjMaterialDefinition, type ObjLoadResult, type ObjLoadOptions, type ObjModel } from "./ObjTypes.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* Engine-independent; uses only `fetch` and `URL
|
|
3
|
+
* Parses .obj models (and their .mtl materials) from text or a URL into plain data.
|
|
4
|
+
* Engine-independent; uses only `fetch` and `URL`, and creates no GPU resources.
|
|
5
|
+
* `framework.objLoader` (or the static `ObjLoader.parseAsync`) builds on it.
|
|
5
6
|
*/
|
|
6
|
-
export declare class
|
|
7
|
+
export declare class ObjParser {
|
|
7
8
|
/**
|
|
8
9
|
* Parses .mtl text.
|
|
9
10
|
* @param text The .mtl contents.
|
|
@@ -25,5 +26,19 @@ export declare class ObjLoader {
|
|
|
25
26
|
* @returns The geometry, materials and raw data.
|
|
26
27
|
*/
|
|
27
28
|
loadAsync(filePath: string, options?: ObjLoadOptions): Promise<ObjLoadResult>;
|
|
29
|
+
/**
|
|
30
|
+
* Loads an .obj file (and its .mtl files) into an {@link ObjModel}: the geometry plus one sub mesh per `usemtl`
|
|
31
|
+
* range with its resolved material definition.
|
|
32
|
+
* @param filePath The .obj URL.
|
|
33
|
+
* @param options Optional: how to resolve `mtllib` names, or skip materials.
|
|
34
|
+
* @returns The model.
|
|
35
|
+
*/
|
|
36
|
+
parseAsync(filePath: string, options?: ObjLoadOptions): Promise<ObjModel>;
|
|
37
|
+
/**
|
|
38
|
+
* Turns a load result into an {@link ObjModel}.
|
|
39
|
+
* @param result The load result.
|
|
40
|
+
* @returns The model.
|
|
41
|
+
*/
|
|
42
|
+
static toModel(result: ObjLoadResult): ObjModel;
|
|
28
43
|
}
|
|
29
|
-
//# sourceMappingURL=
|
|
44
|
+
//# sourceMappingURL=ObjParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjParser.d.ts","sourceRoot":"","sources":["../../../../src/api/loaders/obj/ObjParser.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EAErB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,QAAQ,EAEhB,MAAM,eAAe,CAAC;AAiBvB;;;;GAIG;AACH,qBAAa,SAAS;IAElB;;;;OAIG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAqEtD;;;;;OAKG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,qBAAqB,EAAO,GAAG,aAAa;IAiHrF;;;;;;OAMG;IACU,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAyC1F;;;;;;OAMG;IACU,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAItF;;;;OAIG;WACW,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,QAAQ;CAYzD"}
|
|
@@ -89,7 +89,7 @@ export interface ObjLoadResult {
|
|
|
89
89
|
/** The raw OBJ lists. */
|
|
90
90
|
readonly raw: ObjRawData;
|
|
91
91
|
}
|
|
92
|
-
/** Options for {@link
|
|
92
|
+
/** Options for {@link ObjParser.loadAsync} and `ObjLoader.loadAsync`. */
|
|
93
93
|
export interface ObjLoadOptions {
|
|
94
94
|
/**
|
|
95
95
|
* Maps an `mtllib` name to the URL to fetch.
|
|
@@ -100,4 +100,20 @@ export interface ObjLoadOptions {
|
|
|
100
100
|
/** Skip fetching .mtl files. */
|
|
101
101
|
ignoreMaterials?: boolean;
|
|
102
102
|
}
|
|
103
|
+
/** One `usemtl` range of an {@link ObjModel}: its index range and resolved material definition. */
|
|
104
|
+
export interface ObjSubMesh {
|
|
105
|
+
/** The material name from `usemtl`, or undefined for faces before any `usemtl`. */
|
|
106
|
+
readonly materialName?: string;
|
|
107
|
+
/** The material definition from the .mtl files, or undefined when there is none. */
|
|
108
|
+
readonly material?: ObjMaterialDefinition;
|
|
109
|
+
/** First index in `geometry.indices`. */
|
|
110
|
+
readonly indexStart: number;
|
|
111
|
+
/** Number of indices. */
|
|
112
|
+
readonly indexCount: number;
|
|
113
|
+
}
|
|
114
|
+
/** A parsed OBJ model (C# `ObjModel`): geometry, sub meshes and material definitions. No GPU resources. */
|
|
115
|
+
export interface ObjModel extends ObjLoadResult {
|
|
116
|
+
/** One entry per `usemtl` range, in file order. */
|
|
117
|
+
readonly subMeshes: ObjSubMesh[];
|
|
118
|
+
}
|
|
103
119
|
//# sourceMappingURL=ObjTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjTypes.d.ts","sourceRoot":"","sources":["../../../../src/api/loaders/obj/ObjTypes.ts"],"names":[],"mappings":"AAKA,6EAA6E;AAC7E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAEzD;;;GAGG;AACH,qBAAa,qBAAqB;IAMJ,IAAI,EAAE,MAAM;IAJtC;;;OAGG;gBACuB,IAAI,EAAE,MAAM;IAGtC,6BAA6B;IACtB,YAAY,CAAC,EAAE,QAAQ,CAAC;IAE/B,6BAA6B;IACtB,YAAY,CAAC,EAAE,QAAQ,CAAC;IAE/B,8BAA8B;IACvB,aAAa,CAAC,EAAE,QAAQ,CAAC;IAEhC,8BAA8B;IACvB,aAAa,CAAC,EAAE,QAAQ,CAAC;IAEhC,gCAAgC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAEjC,8DAA8D;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAExB,oDAAoD;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,oCAAoC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAElC;;;OAGG;IACI,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAEzC,+FAA+F;IACxF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;CAClD;AAED,4FAA4F;AAC5F,MAAM,WAAW,gBAAgB;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,yCAAyC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAED,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACvB,kCAAkC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IACjC,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,qGAAqG;IACrG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAAC;CAC/C;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,sHAAsH;IACtH,QAAQ,CAAC,SAAS,EAAE,qBAAqB,EAAE,CAAC;IAC5C,kDAAkD;IAClD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IACrC,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;CAC5B;AAED
|
|
1
|
+
{"version":3,"file":"ObjTypes.d.ts","sourceRoot":"","sources":["../../../../src/api/loaders/obj/ObjTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IRenderableMesh } from "../meshes/IRenderableMesh.js";
|
|
2
2
|
import type { ITexture2D } from "../rendering/texture/ITexture2D.js";
|
|
3
3
|
import type { ISampler } from "../rendering/sampler/ISampler.js";
|
|
4
4
|
import { GeometryFormat } from "../geometry/GeometryFormat.js";
|
|
@@ -9,7 +9,11 @@ import type { IFramework } from "../IFramework.js";
|
|
|
9
9
|
import { Color } from "../data/Color.js";
|
|
10
10
|
import type { IPrimitiveState } from "../rendering/primitive/IPrimitiveState.js";
|
|
11
11
|
import type { ICamera } from "../camera/ICamera.js";
|
|
12
|
-
import type {
|
|
12
|
+
import type { AmbientLight } from "../lights/AmbientLight.js";
|
|
13
|
+
import type { DirectionalLight } from "../lights/DirectionalLight.js";
|
|
14
|
+
import type { PointLight } from "../lights/PointLight.js";
|
|
15
|
+
import type { ICameraMaterial } from "./ICameraMaterial.js";
|
|
16
|
+
import type { ILightsMaterial } from "./ILightsMaterial.js";
|
|
13
17
|
/**
|
|
14
18
|
* The additional material config options.
|
|
15
19
|
* @public
|
|
@@ -21,16 +25,18 @@ export declare class ForwardBlinnPhongMaterialDescriptor {
|
|
|
21
25
|
projectionViewBuffer: IUniformBuffer;
|
|
22
26
|
/** The camera position buffer. */
|
|
23
27
|
cameraPositionBuffer: IUniformBuffer;
|
|
24
|
-
/** The lights buffer. The shader is compiled for its light counts. Can also be set later through `material.lightsBuffer`. */
|
|
25
|
-
lightsBuffer?: LightsBuffer;
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
28
30
|
* The Blinn-Phong material with forward calculated lighting.
|
|
29
31
|
* @public
|
|
30
32
|
*/
|
|
31
|
-
export declare class ForwardBlinnPhongMaterial {
|
|
33
|
+
export declare class ForwardBlinnPhongMaterial implements ICameraMaterial, ILightsMaterial {
|
|
34
|
+
/** The directional light slots of the material's lights buffer and shader. */
|
|
35
|
+
static readonly MAX_DIRECTIONAL_LIGHTS = 3;
|
|
36
|
+
/** The point light slots of the material's lights buffer and shader. */
|
|
37
|
+
static readonly MAX_POINT_LIGHTS = 5;
|
|
32
38
|
private readonly _framework;
|
|
33
|
-
private _lightsBuffer
|
|
39
|
+
private readonly _lightsBuffer;
|
|
34
40
|
private _diffuseColorCache;
|
|
35
41
|
private _ambientColorCache;
|
|
36
42
|
private _specularColorCache;
|
|
@@ -84,10 +90,15 @@ export declare class ForwardBlinnPhongMaterial {
|
|
|
84
90
|
get camera(): ICamera | undefined;
|
|
85
91
|
/** @inheritDoc */
|
|
86
92
|
set camera(camera: ICamera | undefined);
|
|
87
|
-
/**
|
|
88
|
-
get
|
|
89
|
-
|
|
90
|
-
|
|
93
|
+
/** @inheritDoc Defaults to a black ambient light; a `Scene` assigns its active ambient light. */
|
|
94
|
+
get ambientLight(): AmbientLight;
|
|
95
|
+
set ambientLight(value: AmbientLight);
|
|
96
|
+
/** @inheritDoc Only the first 3 are used. A `Scene` assigns its own list. */
|
|
97
|
+
get directionalLights(): DirectionalLight[];
|
|
98
|
+
set directionalLights(value: DirectionalLight[]);
|
|
99
|
+
/** @inheritDoc Only the first 5 are used. A `Scene` assigns its own list. */
|
|
100
|
+
get pointLights(): PointLight[];
|
|
101
|
+
set pointLights(value: PointLight[]);
|
|
91
102
|
/**
|
|
92
103
|
* The texture to inspect.
|
|
93
104
|
*/
|
|
@@ -118,7 +129,7 @@ export declare class ForwardBlinnPhongMaterial {
|
|
|
118
129
|
/** @inheritDoc */
|
|
119
130
|
beforeRender(): void;
|
|
120
131
|
/** @inheritDoc */
|
|
121
|
-
renderMesh(mesh:
|
|
132
|
+
renderMesh(mesh: IRenderableMesh): void;
|
|
122
133
|
/** @inheritDoc */
|
|
123
134
|
render(vertexBuffer: IVertexBuffer, indexBuffer: IIndexBuffer, indicesCount?: number, indicesOffset?: number): void;
|
|
124
135
|
/** @inheritDoc */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForwardBlinnPhongMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/ForwardBlinnPhongMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"ForwardBlinnPhongMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/ForwardBlinnPhongMaterial.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { IMaterial } from "./IMaterial.js";
|
|
2
|
+
import type { ICamera } from "../camera/ICamera.js";
|
|
3
|
+
/**
|
|
4
|
+
* A material that renders with a camera (unlit, Blinn-Phong, inspect mips).
|
|
5
|
+
* A `Scene` assigns its camera to these materials in `scene.update()`.
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export interface ICameraMaterial extends IMaterial {
|
|
9
|
+
/** The camera. Setting it binds the camera's buffers. */
|
|
10
|
+
camera?: ICamera;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Whether a material is an {@link ICameraMaterial}.
|
|
14
|
+
* @param material The material.
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export declare function isCameraMaterial(material: IMaterial | undefined): material is ICameraMaterial;
|
|
18
|
+
//# sourceMappingURL=ICameraMaterial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICameraMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/ICameraMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAE9C,yDAAyD;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,IAAI,eAAe,CAE7F"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { IMaterial } from "./IMaterial.js";
|
|
2
|
+
import type { AmbientLight } from "../lights/AmbientLight.js";
|
|
3
|
+
import type { DirectionalLight } from "../lights/DirectionalLight.js";
|
|
4
|
+
import type { PointLight } from "../lights/PointLight.js";
|
|
5
|
+
/**
|
|
6
|
+
* A material lit by an ambient light, directional lights and point lights (Blinn-Phong).
|
|
7
|
+
* The material owns its lights buffer and uploads it only when the lights changed.
|
|
8
|
+
* A `Scene` hands each lights material its active ambient light and its own light lists (the same arrays, not copies)
|
|
9
|
+
* in `scene.update()`, so lights added to the scene reach every lit material.
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export interface ILightsMaterial extends IMaterial {
|
|
13
|
+
/** The ambient light. */
|
|
14
|
+
ambientLight: AmbientLight;
|
|
15
|
+
/** The directional lights. The list is used by reference and may be edited; extra lights beyond the slots are ignored. */
|
|
16
|
+
directionalLights: DirectionalLight[];
|
|
17
|
+
/** The point lights. The list is used by reference and may be edited; extra lights beyond the slots are ignored. */
|
|
18
|
+
pointLights: PointLight[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Whether a material is an {@link ILightsMaterial}.
|
|
22
|
+
* @param material The material.
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
export declare function isLightsMaterial(material: IMaterial | undefined): material is ILightsMaterial;
|
|
26
|
+
//# sourceMappingURL=ILightsMaterial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ILightsMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/ILightsMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAE9C,yBAAyB;IACzB,YAAY,EAAE,YAAY,CAAC;IAE3B,0HAA0H;IAC1H,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAEtC,oHAAoH;IACpH,WAAW,EAAE,UAAU,EAAE,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,IAAI,eAAe,CAE7F"}
|
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
import type { IDisposable } from "../core/IDisposable.js";
|
|
2
2
|
import { GeometryFormat } from "../geometry/GeometryFormat.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { IRenderableMesh } from "../meshes/IRenderableMesh.js";
|
|
4
4
|
import type { IVertexBuffer } from "../rendering/buffers/IVertexBuffer.js";
|
|
5
5
|
import type { IIndexBuffer } from "../rendering/buffers/IIndexBuffer.js";
|
|
6
|
-
import type { ICamera } from "../camera/ICamera.js";
|
|
7
6
|
import type { IUniformBuffer } from "../rendering/buffers/IUniformBuffer.js";
|
|
8
7
|
/**
|
|
9
8
|
* The material interface.
|
|
10
9
|
* @public
|
|
11
10
|
*/
|
|
12
11
|
export interface IMaterial extends IDisposable {
|
|
13
|
-
/**
|
|
14
|
-
* The camera this material renders with, for materials that use one (unlit, Blinn-Phong).
|
|
15
|
-
* A `Scene` assigns its camera to the materials of its meshes in `scene.update()`.
|
|
16
|
-
*/
|
|
17
|
-
camera?: ICamera;
|
|
18
12
|
/**
|
|
19
13
|
* The model buffer (std140 `mat4`) for materials that use one (unlit, Blinn-Phong, inspect mips).
|
|
20
14
|
* A mesh owns it and assigns it before drawing, like the scene assigns its camera; materials never dispose it.
|
|
@@ -31,7 +25,7 @@ export interface IMaterial extends IDisposable {
|
|
|
31
25
|
* Renders the mesh with this material, honouring the mesh's index range.
|
|
32
26
|
* @param mesh - The mesh.
|
|
33
27
|
*/
|
|
34
|
-
renderMesh(mesh:
|
|
28
|
+
renderMesh(mesh: IRenderableMesh): void;
|
|
35
29
|
/**
|
|
36
30
|
* Renders the material.
|
|
37
31
|
* @param vertexBuffer - The vertex buffer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/IMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"IMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/IMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,WAAW;IAE1C;;;;OAIG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAE7B,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAExC;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAEvH"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IRenderableMesh } from "../meshes/IRenderableMesh.js";
|
|
2
2
|
import type { ITexture2D } from "../rendering/texture/ITexture2D.js";
|
|
3
3
|
import type { ISampler } from "../rendering/sampler/ISampler.js";
|
|
4
4
|
import { GeometryFormat } from "../geometry/GeometryFormat.js";
|
|
@@ -58,7 +58,7 @@ export declare class InspectTextureMipsMaterial {
|
|
|
58
58
|
/** @inheritDoc */
|
|
59
59
|
beforeRender(): void;
|
|
60
60
|
/** @inheritDoc */
|
|
61
|
-
renderMesh(mesh:
|
|
61
|
+
renderMesh(mesh: IRenderableMesh): void;
|
|
62
62
|
/** @inheritDoc */
|
|
63
63
|
render(vertexBuffer: IVertexBuffer, indexBuffer: IIndexBuffer, indicesCount?: number, indicesOffset?: number): void;
|
|
64
64
|
/** @inheritDoc */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InspectTextureMipsMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/InspectTextureMipsMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"InspectTextureMipsMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/InspectTextureMipsMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAErE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD;;GAEG;AACH,qBAAa,0BAA0B;IAEnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,SAAS,CAAO;IACxB,6EAA6E;IAC7E,OAAO,CAAC,SAAS,CAAC,CAAoC;IACtD,sFAAsF;IACtF,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,eAAe,CAAC,CAAW;IACnC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,qBAAqB,CAAiB;IAC9C,OAAO,CAAC,mBAAmB,CAAiB;IAC5C,OAAO,CAAC,YAAY,CAAC,CAAiB;gBAEnB,SAAS,EAAE,UAAU;IAQxC,sDAAsD;IACtD,OAAO,CAAC,eAAe;IAgBvB;;OAEG;IACI,QAAQ,EAAE,MAAM,CAAK;IAE5B;;OAEG;IACH,IAAW,OAAO,IAAI,UAAU,CAE/B;IAED;;OAEG;IACH,IAAW,OAAO,CAAC,KAAK,EAAE,UAAU,EAKnC;IAED;;OAEG;IACH,IAAW,cAAc,IAAI,QAAQ,GAAG,SAAS,CAEhD;IAED;;OAEG;IACH,IAAW,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAMpD;IAED;;;OAGG;IACH,IAAW,WAAW,IAAI,cAAc,GAAG,SAAS,CAEnD;IAED,8CAA8C;IAC9C,IAAW,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,EAavD;IAED;;OAEG;IACH,SAAgB,cAAc,6CAA6C;IAE3E,kBAAkB;IACX,YAAY,IAAI,IAAI;IAO3B,kBAAkB;IACX,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAI9C,kBAAkB;IACX,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAO1H,kBAAkB;IACX,OAAO,IAAI,IAAI;CAMzB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { GeometryFormat } from "../geometry/GeometryFormat.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { IRenderableMesh } from "../meshes/IRenderableMesh.js";
|
|
3
3
|
import type { IVertexBuffer } from "../rendering/buffers/IVertexBuffer.js";
|
|
4
4
|
import type { IIndexBuffer } from "../rendering/buffers/IIndexBuffer.js";
|
|
5
5
|
import type { ITexture2D } from "../rendering/texture/ITexture2D.js";
|
|
@@ -36,7 +36,7 @@ export declare class SpriteMaterial implements IMaterial {
|
|
|
36
36
|
/** @inheritDoc */
|
|
37
37
|
beforeRender(): void;
|
|
38
38
|
/** @inheritDoc */
|
|
39
|
-
renderMesh(mesh:
|
|
39
|
+
renderMesh(mesh: IRenderableMesh): void;
|
|
40
40
|
/**
|
|
41
41
|
* Renders the material.
|
|
42
42
|
* @param vertexBuffer - The vertex buffer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpriteMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/SpriteMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"SpriteMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/SpriteMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,sCAAsC;AACtC,MAAM,WAAW,wBAAwB;IAErC,8EAA8E;IAC9E,oBAAoB,EAAE,cAAc,CAAC;IAErC,0BAA0B;IAC1B,OAAO,EAAE,UAAU,CAAC;IAEpB,2BAA2B;IAC3B,OAAO,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,SAAS;IAE5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IAExD;;;;OAIG;gBACgB,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB;IAM9E,kBAAkB;IAClB,IAAW,cAAc,IAAI,cAAc,CAE1C;IAED,0BAA0B;IAC1B,IAAW,OAAO,IAAI,UAAU,CAE/B;IAED,0BAA0B;IAC1B,IAAW,OAAO,CAAC,KAAK,EAAE,UAAU,EAEnC;IAED,kBAAkB;IACX,YAAY,IAAI,IAAI;IAI3B,kBAAkB;IACX,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAI9C;;;;;;OAMG;IACI,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAI1H,kBAAkB;IACX,OAAO,IAAI,IAAI;CAGzB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ICameraMaterial } from "./ICameraMaterial.js";
|
|
2
|
+
import type { IRenderableMesh } from "../meshes/IRenderableMesh.js";
|
|
2
3
|
import type { ITexture2D } from "../rendering/texture/ITexture2D.js";
|
|
3
4
|
import type { ISampler } from "../rendering/sampler/ISampler.js";
|
|
4
5
|
import { GeometryFormat } from "../geometry/GeometryFormat.js";
|
|
@@ -19,7 +20,7 @@ export declare class UnlitMaterialDescriptor {
|
|
|
19
20
|
/**
|
|
20
21
|
* Unlit material.
|
|
21
22
|
*/
|
|
22
|
-
export declare class UnlitMaterial {
|
|
23
|
+
export declare class UnlitMaterial implements ICameraMaterial {
|
|
23
24
|
private readonly _framework;
|
|
24
25
|
private _color;
|
|
25
26
|
private _materialData;
|
|
@@ -85,7 +86,7 @@ export declare class UnlitMaterial {
|
|
|
85
86
|
/** @inheritDoc */
|
|
86
87
|
beforeRender(): void;
|
|
87
88
|
/** @inheritDoc */
|
|
88
|
-
renderMesh(mesh:
|
|
89
|
+
renderMesh(mesh: IRenderableMesh): void;
|
|
89
90
|
/** @inheritDoc */
|
|
90
91
|
render(vertexBuffer: IVertexBuffer, indexBuffer: IIndexBuffer, indicesCount?: number, indicesOffset?: number): void;
|
|
91
92
|
/** @inheritDoc */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnlitMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/UnlitMaterial.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UnlitMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/UnlitMaterial.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,4 +5,6 @@ export * from "./MaterialFactory.js";
|
|
|
5
5
|
export * from "./SpriteMaterial.js";
|
|
6
6
|
export * from "./UnlitMaterial.js";
|
|
7
7
|
export * from "./ForwardBlinnPhongMaterial.js";
|
|
8
|
+
export * from "./ICameraMaterial.js";
|
|
9
|
+
export * from "./ILightsMaterial.js";
|
|
8
10
|
//# sourceMappingURL=_export.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../../src/api/material/_export.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gCAAgC,CAAA"}
|
|
1
|
+
{"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../../src/api/material/_export.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA"}
|
|
@@ -1,47 +1,42 @@
|
|
|
1
1
|
import type { IVertexBuffer } from "../rendering/buffers/IVertexBuffer.js";
|
|
2
2
|
import type { IDisposable } from "../core/IDisposable.js";
|
|
3
3
|
import type { IIndexBuffer } from "../rendering/buffers/IIndexBuffer.js";
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
6
|
-
import type {
|
|
4
|
+
import type { IGeometry } from "../geometry/IGeometry.js";
|
|
5
|
+
import type { GeometryFormat } from "../geometry/GeometryFormat.js";
|
|
6
|
+
import type { State } from "../data/State.js";
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* A mesh: geometry and the vertex and index buffers created from it.
|
|
9
|
+
* It has no material and no transform; see {@link IRenderableMesh} for a mesh that can be drawn.
|
|
10
10
|
* @public
|
|
11
11
|
*/
|
|
12
12
|
export interface IMesh extends IDisposable {
|
|
13
|
-
/** The
|
|
13
|
+
/** The state of the mesh. */
|
|
14
|
+
readonly state: State;
|
|
15
|
+
/** The positions, when set through `setMesh`. */
|
|
16
|
+
readonly positions?: number[];
|
|
17
|
+
/** The colors, when set through `setMesh`. */
|
|
18
|
+
readonly colors?: number[];
|
|
19
|
+
/** The texture coordinates, when set through `setMesh`. */
|
|
20
|
+
readonly textureCoords?: number[];
|
|
21
|
+
/** The normals, when set through `setMesh`. */
|
|
22
|
+
readonly normals?: number[];
|
|
23
|
+
/** The indices, when set through `setMesh`. */
|
|
24
|
+
readonly indices?: number[];
|
|
25
|
+
/** The geometry the buffers were created from with `setGeometry`, if any. */
|
|
26
|
+
readonly geometry?: IGeometry;
|
|
27
|
+
/** The vertex buffer, if created. */
|
|
14
28
|
readonly vertexBuffer?: IVertexBuffer;
|
|
15
|
-
/** The index buffer
|
|
29
|
+
/** The index buffer, if created. */
|
|
16
30
|
readonly indexBuffer?: IIndexBuffer;
|
|
17
|
-
/**
|
|
18
|
-
|
|
19
|
-
/** First index in {@link indexBuffer} to draw. Undefined draws from 0. */
|
|
20
|
-
readonly indexStart?: number;
|
|
21
|
-
/** Number of indices to draw. Undefined draws the whole index buffer. */
|
|
22
|
-
readonly indexCount?: number;
|
|
23
|
-
/** The child submeshes contained in this mesh, if any. */
|
|
24
|
-
readonly subMeshes?: IMesh[];
|
|
25
|
-
/** World position. Defaults to the origin. In-place edits are detected. */
|
|
26
|
-
position: vec3;
|
|
31
|
+
/** Creates the buffers from the current data. */
|
|
32
|
+
initialize(): void;
|
|
27
33
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
34
|
+
* Creates the vertex and index buffers from a geometry.
|
|
35
|
+
* @param geometry The geometry.
|
|
36
|
+
* @param geometryFormat The vertex layout.
|
|
30
37
|
*/
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* The model matrix `T * R * S`, recomputed only when position, rotation or scale changed.
|
|
36
|
-
*/
|
|
37
|
-
readonly modelMatrix: mat4;
|
|
38
|
-
/**
|
|
39
|
-
* The model buffer (std140 `mat4`) holding {@link modelMatrix}. Owned by the mesh (submeshes share the parent's),
|
|
40
|
-
* uploaded when the transform changed and assigned to the material(s) before drawing.
|
|
41
|
-
* Created on first use.
|
|
42
|
-
*/
|
|
43
|
-
readonly modelBuffer: IUniformBuffer;
|
|
44
|
-
/** Render the mesh. */
|
|
45
|
-
render(): void;
|
|
38
|
+
setGeometry(geometry: IGeometry, geometryFormat?: GeometryFormat): void;
|
|
39
|
+
/** Re-creates (or updates) the buffers from the current data. */
|
|
40
|
+
applyChanges(): void;
|
|
46
41
|
}
|
|
47
42
|
//# sourceMappingURL=IMesh.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IMesh.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/IMesh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"IMesh.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/IMesh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,WAAW,KAAM,SAAQ,WAAW;IAEtC,6BAA6B;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB,iDAAiD;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAElC,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAE9B,qCAAqC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;IAEtC,oCAAoC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC;IAEpC,iDAAiD;IACjD,UAAU,IAAI,IAAI,CAAC;IAEnB;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAExE,iEAAiE;IACjE,YAAY,IAAI,IAAI,CAAC;CACxB"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import type { GeometryFormat } from "../geometry/GeometryFormat.js";
|
|
1
2
|
import type { IGeometry } from "../geometry/IGeometry.js";
|
|
2
3
|
import { QuadMesh } from "./QuadMesh.js";
|
|
3
4
|
import { vec2 } from "gl-matrix";
|
|
4
5
|
import type { IMesh } from "./IMesh.js";
|
|
5
6
|
import type { IMaterial } from "../material/IMaterial.js";
|
|
6
|
-
import type {
|
|
7
|
+
import type { IRenderableMesh } from "./IRenderableMesh.js";
|
|
7
8
|
/** Describes one submesh: a material and the index range it draws. */
|
|
8
9
|
export interface SubMeshDescriptor {
|
|
9
10
|
/** The material. */
|
|
@@ -18,23 +19,27 @@ export interface SubMeshDescriptor {
|
|
|
18
19
|
*/
|
|
19
20
|
export interface IMeshFactory {
|
|
20
21
|
/**
|
|
21
|
-
* Creates a mesh
|
|
22
|
-
* @param
|
|
22
|
+
* Creates a plain mesh (buffers only, no material or transform) from a geometry.
|
|
23
|
+
* @param geometry - The geometry.
|
|
24
|
+
* @param geometryFormat - The vertex layout.
|
|
25
|
+
* @returns The mesh.
|
|
26
|
+
*/
|
|
27
|
+
createMesh(geometry: IGeometry, geometryFormat: GeometryFormat): IMesh;
|
|
28
|
+
/**
|
|
29
|
+
* Creates a renderable mesh with one material. Add it to a scene with `scene.add(mesh)`.
|
|
23
30
|
* @param geometry - The geometry.
|
|
24
31
|
* @param material - The material.
|
|
25
32
|
* @returns The mesh.
|
|
26
33
|
*/
|
|
27
|
-
create(
|
|
34
|
+
create(geometry: IGeometry, material: IMaterial): IRenderableMesh;
|
|
28
35
|
/**
|
|
29
36
|
* Creates a mesh made of submeshes that share one vertex and one index buffer.
|
|
30
|
-
* The mesh
|
|
31
|
-
* Only the mesh is added to the scene, not the submeshes.
|
|
32
|
-
* @param scene - The scene the mesh adds itself to.
|
|
37
|
+
* The root mesh has no material; `mesh.render()` draws its submeshes. Add the root to a scene with `scene.add(mesh)`.
|
|
33
38
|
* @param geometry - The geometry.
|
|
34
39
|
* @param subMeshes - One entry per submesh. All materials must use the same geometry format.
|
|
35
40
|
* @returns The mesh.
|
|
36
41
|
*/
|
|
37
|
-
createWithSubMeshes(
|
|
42
|
+
createWithSubMeshes(geometry: IGeometry, subMeshes: SubMeshDescriptor[]): IRenderableMesh;
|
|
38
43
|
/**
|
|
39
44
|
* Creates the quad mesh.
|
|
40
45
|
* @param isUpdatable - Should mesh be updated after creation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IMeshFactory.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/IMeshFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"IMeshFactory.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/IMeshFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAC9B,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAEzB;;;;;OAKG;IACH,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,GAAG,KAAK,CAAC;IAEvE;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,GAAG,eAAe,CAAC;IAElE;;;;;;OAMG;IACH,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,eAAe,CAAC;IAE1F;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;CAChE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { mat4, vec3 } from "gl-matrix";
|
|
2
|
+
import type { IMesh } from "./IMesh.js";
|
|
3
|
+
import type { IMaterial } from "../material/IMaterial.js";
|
|
4
|
+
import type { IUniformBuffer } from "../rendering/buffers/IUniformBuffer.js";
|
|
5
|
+
/**
|
|
6
|
+
* A mesh that can be drawn: a mesh plus an optional material, an index range and sub meshes.
|
|
7
|
+
*
|
|
8
|
+
* - A root mesh owns the vertex and index buffers. Sub meshes share them and only store their index range.
|
|
9
|
+
* - Rendering: a mesh with a material draws its range, then its sub meshes draw theirs.
|
|
10
|
+
* A root without a material only draws its sub meshes.
|
|
11
|
+
* - The transform (position, rotation, scale) and the model buffer live on the root and are shared by all sub meshes,
|
|
12
|
+
* so a mesh uploads its model matrix once per change, whatever the number of materials.
|
|
13
|
+
* - Disposing the root disposes the sub meshes and the buffers once. Materials are not disposed by the mesh
|
|
14
|
+
* (a `SceneMesh` does that).
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export interface IRenderableMesh extends IMesh {
|
|
18
|
+
/** The material, if any. A root mesh made only of sub meshes has none. */
|
|
19
|
+
material?: IMaterial;
|
|
20
|
+
/** The parent for a sub mesh; undefined for a root mesh. */
|
|
21
|
+
readonly parent?: IRenderableMesh;
|
|
22
|
+
/** The sub meshes. */
|
|
23
|
+
readonly subMeshes: readonly IRenderableMesh[];
|
|
24
|
+
/** First index of the range to draw. Defaults to 0. */
|
|
25
|
+
readonly indexStart: number;
|
|
26
|
+
/** Number of indices to draw; -1 (the default) draws all indices. */
|
|
27
|
+
readonly indexCount: number;
|
|
28
|
+
/** World position. Defaults to the origin. In-place edits are detected. A sub mesh uses the root's. */
|
|
29
|
+
position: vec3;
|
|
30
|
+
/**
|
|
31
|
+
* Euler rotation in radians, applied in Y, X, Z order (yaw, pitch, roll): `R = Ry * Rx * Rz`.
|
|
32
|
+
* Defaults to (0, 0, 0). In-place edits are detected. A sub mesh uses the root's.
|
|
33
|
+
*/
|
|
34
|
+
rotation: vec3;
|
|
35
|
+
/** Scale. Defaults to (1, 1, 1). In-place edits are detected. A sub mesh uses the root's. */
|
|
36
|
+
scale: vec3;
|
|
37
|
+
/** The model matrix `T * R * S`, recomputed only when position, rotation or scale changed. */
|
|
38
|
+
readonly modelMatrix: mat4;
|
|
39
|
+
/**
|
|
40
|
+
* The model buffer (std140 `mat4`) holding {@link modelMatrix}. Owned by the root mesh (sub meshes share it),
|
|
41
|
+
* uploaded when the transform changed and assigned to the material(s) before drawing. Created on first use.
|
|
42
|
+
*/
|
|
43
|
+
readonly modelBuffer: IUniformBuffer;
|
|
44
|
+
/** Draws the mesh's range with its material (if any), then the sub meshes. */
|
|
45
|
+
render(): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=IRenderableMesh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IRenderableMesh.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/IRenderableMesh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAE1C,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAElC,sBAAsB;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IAE/C,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,uGAAuG;IACvG,QAAQ,EAAE,IAAI,CAAC;IAEf;;;OAGG;IACH,QAAQ,EAAE,IAAI,CAAC;IAEf,6FAA6F;IAC7F,KAAK,EAAE,IAAI,CAAC;IAEZ,8FAA8F;IAC9F,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IAErC,8EAA8E;IAC9E,MAAM,IAAI,IAAI,CAAC;CAClB"}
|