Browse Source

帧率优化

master
修宁 6 months ago
parent
commit
6e60575dc5
  1. 12
      src/core/controls/DragControl.ts
  2. 17
      src/core/manager/EntityManager.ts
  3. 1
      vite.config.ts

12
src/core/controls/DragControl.ts

@ -164,17 +164,11 @@ export default class DragControl implements IControls {
* *
*/ */
private getMousePosition(clientX: number, clientY: number): THREE.Vector2 { private getMousePosition(clientX: number, clientY: number): THREE.Vector2 {
// const rect = this.domElement.getBoundingClientRect() const rect = this.domElement.getBoundingClientRect()
// return new THREE.Vector2(
// ((clientX - rect.left) / rect.width) * 2 - 1,
// ((clientY - rect.top) / rect.height) * -2 + 1
// )
return new THREE.Vector2( return new THREE.Vector2(
clientX / this.viewport.renderer.domElement.offsetWidth * 2 - 1, ((clientX - rect.left) / rect.width) * 2 - 1,
(clientY / this.viewport.renderer.domElement.offsetHeight * -2 + 1) ((clientY - rect.top) / rect.height) * -2 + 1
) )
// _point.x = e.offsetX / this.renderer.domElement.offsetWidth
// _point.y = e.offsetY / this.renderer.domElement.offsetHeight
} }
/** /**

17
src/core/manager/EntityManager.ts

@ -462,18 +462,11 @@ export default class EntityManager {
getObjectByCanvasMouse(event: MouseEvent): Object3DLike[] { getObjectByCanvasMouse(event: MouseEvent): Object3DLike[] {
const _domElement = this.viewport.renderer.domElement const _domElement = this.viewport.renderer.domElement
// const rect = _domElement.getBoundingClientRect() const rect = _domElement.getBoundingClientRect()
// const _pointer = new Vector2() const _pointer = new Vector2()
// _pointer.x = (event.clientX - rect.left) / rect.width * 2 - 1 _pointer.x = (event.clientX - rect.left) / rect.width * 2 - 1
// _pointer.y = -(event.clientY - rect.top) / rect.height * 2 + 1 _pointer.y = -(event.clientY - rect.top) / rect.height * 2 + 1
this.viewport.raycaster.setFromCamera(_pointer, this.viewport.camera)
const _point = new THREE.Vector2()
_point.x = event.offsetX / _domElement.offsetWidth
_point.y = event.offsetY / _domElement.offsetHeight
this.viewport.raycaster.setFromCamera(_point, this.viewport.camera)
const _intersections = this.viewport.raycaster.intersectObjects(this._selectableObjects, true) const _intersections = this.viewport.raycaster.intersectObjects(this._selectableObjects, true)
if (!_intersections || _intersections.length === 0) { if (!_intersections || _intersections.length === 0) {

1
vite.config.ts

@ -17,6 +17,7 @@ export default defineConfig({
} }
}, },
server: { server: {
host: '0.0.0.0',
port: 7791, port: 7791,
open: false, open: false,
proxy: { proxy: {

Loading…
Cancel
Save