From 431fa7294cd43efa568856fe5097e511ef318244 Mon Sep 17 00:00:00 2001 From: liteng <930372551@qq.com> Date: Tue, 28 Aug 2018 21:47:46 +0800 Subject: [PATCH] =?UTF-8?q?SkinnedMesh=E4=B8=8D=E5=86=8D=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=BE=B9=E6=A1=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ShadowEditor.Web/src/effect/SelectEffect.js | 9 +++++++++ .../src/effect/shader/select_fragment.glsl | 8 +------- .../src/effect/shader/select_vertex.glsl | 15 +++++---------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/ShadowEditor.Web/src/effect/SelectEffect.js b/ShadowEditor.Web/src/effect/SelectEffect.js index d15d2c1a..0ebc86c1 100644 --- a/ShadowEditor.Web/src/effect/SelectEffect.js +++ b/ShadowEditor.Web/src/effect/SelectEffect.js @@ -16,11 +16,16 @@ SelectEffect.prototype = Object.create(BaseEffect.prototype); SelectEffect.prototype.constructor = SelectEffect; SelectEffect.prototype.render = function (obj) { + if (obj instanceof THREE.SkinnedMesh) { + return; + } + var renderer = this.app.editor.renderer; var scene = this.scene; var camera = this.app.editor.camera; var geometry = obj.geometry; + var material = new THREE.RawShaderMaterial({ uniforms: { time: { @@ -32,6 +37,10 @@ SelectEffect.prototype.render = function (obj) { }); var mesh = new THREE.Mesh(geometry, material); + mesh.position.copy(obj.position); + mesh.rotation.copy(obj.rotation); + mesh.scale.copy(obj.scale); + scene.children.length = 0; scene.add(mesh); diff --git a/ShadowEditor.Web/src/effect/shader/select_fragment.glsl b/ShadowEditor.Web/src/effect/shader/select_fragment.glsl index 38174b0d..8e9c4e1a 100644 --- a/ShadowEditor.Web/src/effect/shader/select_fragment.glsl +++ b/ShadowEditor.Web/src/effect/shader/select_fragment.glsl @@ -1,11 +1,5 @@ precision mediump float; -uniform float time; -varying vec3 vPosition; -varying vec4 vColor; - void main() { - vec4 color = vec4(vColor); - color.r += sin(vPosition.x * 10.0 + time ) * 0.5; - gl_FragColor = color; + gl_FragColor = vec4(0.925, 0.396, 0.102, 1.0); // 0xec651a } \ No newline at end of file diff --git a/ShadowEditor.Web/src/effect/shader/select_vertex.glsl b/ShadowEditor.Web/src/effect/shader/select_vertex.glsl index 780fcc7f..98cdef73 100644 --- a/ShadowEditor.Web/src/effect/shader/select_vertex.glsl +++ b/ShadowEditor.Web/src/effect/shader/select_vertex.glsl @@ -1,17 +1,12 @@ precision mediump float; -uniform mat4 modelViewMatrix; // optional -uniform mat4 projectionMatrix; // optional +uniform mat4 modelViewMatrix; +uniform mat4 projectionMatrix; attribute vec3 position; -attribute vec4 color; - -varying vec3 vPosition; -varying vec4 vColor; +attribute vec3 normal; void main() { - vPosition = position; - vColor = color; - gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); - gl_Position.z = gl_Position.z - 0.1; + gl_Position = projectionMatrix * modelViewMatrix * vec4(position + normal * 0.01, 1.0); + gl_Position.z = gl_Position.z + 0.1; } \ No newline at end of file