优化:响应材质参数更改

pull/1920/head
ChenX 2 years ago
parent a20f5b7235
commit 80ff00e643

@ -1609,6 +1609,12 @@ export class ExtrudeSolid extends Entity
let mesh = new Mesh(this.MeshGeometry, ColorMaterial.GetPrintConceptualMaterial()); let mesh = new Mesh(this.MeshGeometry, ColorMaterial.GetPrintConceptualMaterial());
return [line, mesh]; return [line, mesh];
} }
private get CaseShadow()
{
return !this.MeshMaterial.transparent || this.MeshMaterial.opacity === 1;
}
InitDrawObject(renderType: RenderType = RenderType.Wireframe) InitDrawObject(renderType: RenderType = RenderType.Wireframe)
{ {
if (renderType === RenderType.Wireframe) if (renderType === RenderType.Wireframe)
@ -1626,8 +1632,12 @@ export class ExtrudeSolid extends Entity
{ {
let mesh = new Mesh(this.MeshGeometry, this.MeshMaterial); let mesh = new Mesh(this.MeshGeometry, this.MeshMaterial);
mesh.castShadow = this.MeshMaterial.opacity === 1; Object.defineProperty(mesh, "castShadow", {
mesh.receiveShadow = mesh.castShadow; get: () => this.CaseShadow
});
Object.defineProperty(mesh, "receiveShadow", {
get: () => this.CaseShadow
});
return mesh; return mesh;
} }
@ -1643,8 +1653,12 @@ export class ExtrudeSolid extends Entity
{ {
let mesh = new Mesh(this.MeshGeometry, this.MeshMaterial); let mesh = new Mesh(this.MeshGeometry, this.MeshMaterial);
mesh.castShadow = this.MeshMaterial.opacity === 1; Object.defineProperty(mesh, "castShadow", {
mesh.receiveShadow = mesh.castShadow; get: () => this.CaseShadow
});
Object.defineProperty(mesh, "receiveShadow", {
get: () => this.CaseShadow
});
return new Object3D().add( return new Object3D().add(
mesh, mesh,
@ -2025,8 +2039,12 @@ export class ExtrudeSolid extends Entity
{ {
let mesh = new Mesh(this.MeshGeometry, this.MeshMaterial); let mesh = new Mesh(this.MeshGeometry, this.MeshMaterial);
mesh.castShadow = this.MeshMaterial.opacity === 1; Object.defineProperty(mesh, "castShadow", {
mesh.receiveShadow = mesh.castShadow; get: () => this.CaseShadow
});
Object.defineProperty(mesh, "receiveShadow", {
get: () => this.CaseShadow
});
return obj.add( return obj.add(
mesh, mesh,
@ -2055,9 +2073,6 @@ export class ExtrudeSolid extends Entity
{ {
let mesh = obj as Mesh; let mesh = obj as Mesh;
mesh.material = this.MeshMaterial; mesh.material = this.MeshMaterial;
mesh.castShadow = this.MeshMaterial.opacity === 1;
mesh.receiveShadow = mesh.castShadow;
} }
} }

Loading…
Cancel
Save