From e8925f4b909556e9bb4c060f2a39e3569c01b5e1 Mon Sep 17 00:00:00 2001 From: liuxianghui <519646741@qq.com> Date: Tue, 23 Nov 2021 10:02:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=BA=94=E6=80=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/babylon/controller/scene-manager.ts | 19 +++++++++++++++---- .../model/info/mark/model-info-mark.ts | 14 +++++++++++--- .../info/mark/other/mark-plan-area-info.ts | 2 +- .../info/mark/other/mark-plan-line-info.ts | 5 ++--- .../mark/other/mark-plan-particle-info.ts | 8 ++++---- src/app/babylon/tool/babylon-tool.ts | 2 +- .../view/building-window/building-window.ts | 2 ++ .../babylon/view/mark-window/mark-window.ts | 3 +-- 8 files changed, 37 insertions(+), 18 deletions(-) diff --git a/src/app/babylon/controller/scene-manager.ts b/src/app/babylon/controller/scene-manager.ts index 6194e96..1d4ffa9 100644 --- a/src/app/babylon/controller/scene-manager.ts +++ b/src/app/babylon/controller/scene-manager.ts @@ -257,11 +257,13 @@ export class SceneManager { if (this.highLightLayer == null) { this.highLightLayer = new HighlightLayer("highLight", this.scene, { - mainTextureRatio: 1, + mainTextureRatio: 2, + blurVerticalSize: 1.5, + blurHorizontalSize: 1.5, }); - this.highLightLayer.innerGlow = true; + this.openInnerGlow(true); + // this.highLightLayer.innerGlow = true; this.highLightLayer.outerGlow = true; - } let allMesh = mesh.getChildMeshes(); @@ -270,13 +272,22 @@ export class SceneManager { let childMesh = allMesh[i]; if (childMesh instanceof Mesh) { this.highLightLayer.addMesh(childMesh, color); - + // childMesh.material.alphaMode = this.highLightNum++; } } } + /** + * 开启内发光 + */ + openInnerGlow(open: boolean) { + if (this.highLightLayer != null) { + this.highLightLayer.innerGlow = open; + } + } + highLightNum = 0; /** diff --git a/src/app/babylon/model/info/mark/model-info-mark.ts b/src/app/babylon/model/info/mark/model-info-mark.ts index 1522d22..8af606f 100644 --- a/src/app/babylon/model/info/mark/model-info-mark.ts +++ b/src/app/babylon/model/info/mark/model-info-mark.ts @@ -17,7 +17,7 @@ import { ParticleSystemTool } from "src/app/babylon/tool/particle-system-tool"; import { TsTool } from "src/app/babylon/tool/ts-tool"; import { MarkWindow } from "src/app/babylon/view/mark-window/mark-window"; -import { ChildNodeData, MarkData, MarkTask, MarkType } from "../../data/mark/mark-data"; +import { ChildNodeData, MarkData, MarkKindType, MarkTask, MarkType } from "../../data/mark/mark-data"; import { BuildingInfo } from "../building/building-info"; import { ModelInfo } from "../model/model-info"; @@ -195,7 +195,7 @@ export class ModelInfo_mark extends ModelInfo { * @param select */ onSelect(select: boolean) { - console.log("onSelect", select); + // console.log("onSelect", select); this.isSelect = select; // this.lookAt(); if (select) { @@ -210,7 +210,15 @@ export class ModelInfo_mark extends ModelInfo { else { //this.pointerDragBehavior.enabled = true; } - GizmoTool.onPickMeshInfoObservable.notifyObservers(this); + + //特效类,要出现坐标轴 + if (this.markData.markKindType == MarkKindType.Effect) { + GizmoTool.onPickMeshInfoObservable.notifyObservers(this); + } + else { + GizmoTool.onPickMeshInfoObservable.notifyObservers(null); + } + // SceneManager.Instance.defaultCamera.target = this.modelBox.absolutePosition.clone() // SceneManager.Instance.defaultCamera.setTarget(this.modelBox.absolutePosition.clone()); diff --git a/src/app/babylon/model/info/mark/other/mark-plan-area-info.ts b/src/app/babylon/model/info/mark/other/mark-plan-area-info.ts index b6ba569..9ff260b 100644 --- a/src/app/babylon/model/info/mark/other/mark-plan-area-info.ts +++ b/src/app/babylon/model/info/mark/other/mark-plan-area-info.ts @@ -232,7 +232,7 @@ export class AreaPoint { this.pos = pos; this.parent = parent; - this.mesh = MeshBuilder.CreateSphere("AreaPoint", { segments: 4, diameter: 3 }); + this.mesh = MeshBuilder.CreateSphere("AreaPoint", { segments: 4, diameter: 0.8 }); this.mesh.material = material; this.mesh.setParent(parent.modelBox); this.mesh.position = pos; diff --git a/src/app/babylon/model/info/mark/other/mark-plan-line-info.ts b/src/app/babylon/model/info/mark/other/mark-plan-line-info.ts index 92c33f7..4cbe22f 100644 --- a/src/app/babylon/model/info/mark/other/mark-plan-line-info.ts +++ b/src/app/babylon/model/info/mark/other/mark-plan-line-info.ts @@ -64,9 +64,9 @@ export class ModelInfo_mark_line extends ModelInfo_mark { */ updateRender() { if (this.lineData.pointData != null && this.lineData.pointData.length > 1) { - this.lineMesh = MeshBuilder.CreateTube("tube", { path: this.lineData.pointData, radius: 0.2, sideOrientation: Mesh.FRONTSIDE, updatable: true }, SceneManager.Instance.scene); + this.lineMesh = MeshBuilder.CreateTube("tube", { path: this.lineData.pointData, radius: 0.1, sideOrientation: Mesh.FRONTSIDE, updatable: true, cap: 3 }, SceneManager.Instance.scene); this.lineMesh.setParent(this.modelBox); - this.lineMesh.position = Vector3.Zero(); + this.lineMesh.position = Vector3.Zero() this.lineMesh.material = this.mat; let length = Vector3.Distance(this.lineData.pointData[0], this.lineData.pointData[1]); @@ -79,7 +79,6 @@ export class ModelInfo_mark_line extends ModelInfo_mark { ModelInfo_mark_line.publicMat = mat; // instance.lineMesh.material.getEffect()?.setFloat("u_alpha", 1); let textures: BaseTexture[] = instance.lineMesh.material.getActiveTextures(); - console.log("图片", textures); let texture0 = (textures[0] as Texture); texture0.vScale = length; texture0.wrapV = 1; diff --git a/src/app/babylon/model/info/mark/other/mark-plan-particle-info.ts b/src/app/babylon/model/info/mark/other/mark-plan-particle-info.ts index 473a8e4..7222579 100644 --- a/src/app/babylon/model/info/mark/other/mark-plan-particle-info.ts +++ b/src/app/babylon/model/info/mark/other/mark-plan-particle-info.ts @@ -35,23 +35,23 @@ export class ModelInfo_mark_particle extends ModelInfo_mark { case MarkType.H: particleJsonPath.push("assets/particlesystem/fire/fire_h_1.json"); particleJsonPath.push("assets/particlesystem/smoke/smoke_a.json"); - instance.modelBox.scaling = new Vector3(5, 1, 5); + instance.modelBox.scaling = new Vector3(50, 70, 50); posOffset.y = 0.7 / instance.modelBox.scaling.y; break; case MarkType.SNH: particleJsonPath.push("assets/particlesystem/fire/fire_snh_1.json"); particleJsonPath.push("assets/particlesystem/smoke/smoke_snh.json"); - instance.modelBox.scaling = new Vector3(3, 1, 3); + instance.modelBox.scaling = new Vector3(30, 60, 30); posOffset.y = 0.2 / instance.modelBox.scaling.y; break; case MarkType.YWA: particleJsonPath.push("assets/particlesystem/smoke/smoke_a.json"); - instance.modelBox.scaling = new Vector3(5, 1, 5); + instance.modelBox.scaling = new Vector3(50, 130, 50); posOffset.y = 0.1 / instance.modelBox.scaling.y; break; case MarkType.YWB: particleJsonPath.push("assets/particlesystem/smoke/smoke_snh.json"); - instance.modelBox.scaling = new Vector3(3, 1, 3); + instance.modelBox.scaling = new Vector3(30, 60, 30); posOffset.y = 0.2 / instance.modelBox.scaling.y; break; } diff --git a/src/app/babylon/tool/babylon-tool.ts b/src/app/babylon/tool/babylon-tool.ts index f24dd6a..3536d1f 100644 --- a/src/app/babylon/tool/babylon-tool.ts +++ b/src/app/babylon/tool/babylon-tool.ts @@ -202,7 +202,7 @@ export class BabylonTool { let shaderUrl = shaderPath; nodeMaterial.loadAsync(shaderUrl).then(() => { - nodeMaterial.build(true); + nodeMaterial.build(false); //关闭shader调试打印 if (mesh != null) { mesh.material = nodeMaterial; // let effect = nodeMaterial.getEffect(); diff --git a/src/app/babylon/view/building-window/building-window.ts b/src/app/babylon/view/building-window/building-window.ts index cbb19de..f0208e4 100644 --- a/src/app/babylon/view/building-window/building-window.ts +++ b/src/app/babylon/view/building-window/building-window.ts @@ -803,6 +803,8 @@ export class BuildingWindow extends UIBase { for (let i = 0; i < showNameFacilitys.length; i++) { showNameFacilitys[i].showNameUI(isShowNameUI_JYJ_YG); } + SceneManager.Instance.openInnerGlow(!isShowNameUI_JYJ_YG); //输油管和油气回收管太细,关闭内发光 + if (show) { diff --git a/src/app/babylon/view/mark-window/mark-window.ts b/src/app/babylon/view/mark-window/mark-window.ts index aade914..2d75c24 100644 --- a/src/app/babylon/view/mark-window/mark-window.ts +++ b/src/app/babylon/view/mark-window/mark-window.ts @@ -303,7 +303,7 @@ export class MarkWindow extends UIBase { * @param nodeId 节点 * @param changeBuildingByUI 是否在沙盘状态下,点UI切层、建筑 */ - selectMarkNode(planId: number, nodeId: number, changeBuildingByUI: boolean = false) { + selectMarkNode(planId: number, nodeId: number, changeBuildingByUI: boolean = false, readDescribe = false) { // //还原数据 // if (this.currentMarkNodeDataCopy != null && reData) { // let oldPlaneData = this.currentMarkNodeInfo.belongToPlanData; @@ -969,7 +969,6 @@ export class MarkWindow extends UIBase { } }) - console.log(mesh, "是标绘物", result); return result; }