From 1f4e11af1ca519bf308ca9896e390db5d649e50d Mon Sep 17 00:00:00 2001 From: tengge1 <930372551@qq.com> Date: Sun, 10 Nov 2019 09:49:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=AD=A3=E6=8A=95=E5=BD=B1?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E4=B8=8A=E9=80=89=E4=B8=AD=E6=95=88=E6=9E=9C?= =?UTF-8?q?=E8=BE=B9=E7=BC=98=E4=B8=8D=E6=AD=A3=E7=A1=AEbug=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + ShadowEditor.Web/src/event/PickEvent.js | 2 +- ShadowEditor.Web/src/event/RaycastEvent.js | 2 +- ShadowEditor.Web/src/event/ViewEvent.js | 5 ++-- ShadowEditor.Web/src/helper/SelectHelper.js | 32 ++++++++++----------- 5 files changed, 20 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index b01bca86..ad260c63 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ Supported Languages: 中文 / [繁體中文](README-tw.md) / [English](README-en 32. 增加显示选项,设置选中边框颜色和粗细。 33. 新增BufferGeometry组件,查看BufferGeometry的顶点数量、法线数量、UV坐标数量、索引数量。提供计算顶点法线功能,如果模型是黑的,可能没有法线,可以试一下这个功能。 34. 新增多材质组件,对于有多个材质的`Mesh`,可以使用多材质组件选择一个材质进行编辑。 +35. 修复正投影视图上选中效果边缘不正确bug。 ## v0.3.6更新 diff --git a/ShadowEditor.Web/src/event/PickEvent.js b/ShadowEditor.Web/src/event/PickEvent.js index 9fc5398a..d2ec9374 100644 --- a/ShadowEditor.Web/src/event/PickEvent.js +++ b/ShadowEditor.Web/src/event/PickEvent.js @@ -71,7 +71,7 @@ PickEvent.prototype.onDoubleClick = function (event) { PickEvent.prototype.getIntersects = function (point, objects) { this.mouse.set(point.x * 2 - 1, -(point.y * 2) + 1); - this.raycaster.setFromCamera(this.mouse, app.editor.camera); + this.raycaster.setFromCamera(this.mouse, app.editor.view === 'perspective' ? app.editor.camera : app.editor.orthCamera); return this.raycaster.intersectObjects(objects); }; diff --git a/ShadowEditor.Web/src/event/RaycastEvent.js b/ShadowEditor.Web/src/event/RaycastEvent.js index 06b52b75..e509ddf0 100644 --- a/ShadowEditor.Web/src/event/RaycastEvent.js +++ b/ShadowEditor.Web/src/event/RaycastEvent.js @@ -49,7 +49,7 @@ RaycastEvent.prototype.onMouseUp = function (event) { this.mouse.x = event.offsetX / domElement.clientWidth * 2 - 1; this.mouse.y = -event.offsetY / domElement.clientHeight * 2 + 1; - this.raycaster.setFromCamera(this.mouse, app.editor.camera); + this.raycaster.setFromCamera(this.mouse, app.editor.view === 'perspective' ? app.editor.camera : app.editor.orthCamera); var intersects = this.raycaster.intersectObjects(app.editor.scene.children, true); diff --git a/ShadowEditor.Web/src/event/ViewEvent.js b/ShadowEditor.Web/src/event/ViewEvent.js index 50e59d12..aa2f004b 100644 --- a/ShadowEditor.Web/src/event/ViewEvent.js +++ b/ShadowEditor.Web/src/event/ViewEvent.js @@ -4,10 +4,9 @@ import OrthographicCameraControls from '../controls/OrthographicCameraControls'; /** * 视图事件 * @author tengge / https://github.com/tengge1 - * @param {*} app */ -function ViewEvent(app) { - BaseEvent.call(this, app); +function ViewEvent() { + BaseEvent.call(this); this.changeView = this.changeView.bind(this); } diff --git a/ShadowEditor.Web/src/helper/SelectHelper.js b/ShadowEditor.Web/src/helper/SelectHelper.js index b6c6d799..d0dad108 100644 --- a/ShadowEditor.Web/src/helper/SelectHelper.js +++ b/ShadowEditor.Web/src/helper/SelectHelper.js @@ -3,8 +3,6 @@ import MaskVertex from './shader/mask_vertex.glsl'; import MaskFragment from './shader/mask_fragment.glsl'; import EdgeVertex from './shader/edge_vertex.glsl'; import EdgeFragment from './shader/edge_fragment.glsl'; -import CopyVertex from './shader/copy_vertex.glsl'; -import CopyFragment from './shader/copy_fragment.glsl'; /** * 选择帮助器 @@ -50,8 +48,8 @@ SelectHelper.prototype.onObjectSelected = function (obj) { app.editor.renderer.getDrawingBufferSize(this.size); - var width = this.size.x * 2; - var height = this.size.y * 2; + let width = this.size.x * 2; + let height = this.size.y * 2; if (this.scene === undefined) { this.scene = new THREE.Scene(); @@ -69,7 +67,7 @@ SelectHelper.prototype.onObjectSelected = function (obj) { this.scene.add(this.quad); } - var params = { + let params = { minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBAFormat, @@ -156,22 +154,22 @@ SelectHelper.prototype.onAfterRender = function () { return; } - var renderScene = app.editor.scene; - var renderCamera = app.editor.camera; - var renderer = app.editor.renderer; + let renderScene = app.editor.scene; + let renderCamera = app.editor.view === 'perspective' ? app.editor.camera : app.editor.orthCamera; + let renderer = app.editor.renderer; - var scene = this.scene; - var camera = this.camera; - var selected = this.object; + let scene = this.scene; + let camera = this.camera; + let selected = this.object; // 记录原始状态 - var oldOverrideMaterial = renderScene.overrideMaterial; - var oldBackground = renderScene.background; + let oldOverrideMaterial = renderScene.overrideMaterial; + let oldBackground = renderScene.background; - var oldAutoClear = renderer.autoClear; - var oldClearColor = renderer.getClearColor(); - var oldClearAlpha = renderer.getClearAlpha(); - var oldRenderTarget = renderer.getRenderTarget(); + let oldAutoClear = renderer.autoClear; + let oldClearColor = renderer.getClearColor(); + let oldClearAlpha = renderer.getClearAlpha(); + let oldRenderTarget = renderer.getRenderTarget(); // 绘制蒙版 this.hideObjects.length = 0;