From 7616f6ee895c8772766d044ae8ec2cf1754a97b5 Mon Sep 17 00:00:00 2001 From: aarizona Date: Thu, 29 Aug 2024 12:01:57 +0300 Subject: [PATCH] ring --- front/src/components/Promo/load_models.vue | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/front/src/components/Promo/load_models.vue b/front/src/components/Promo/load_models.vue index e522232..116c50a 100644 --- a/front/src/components/Promo/load_models.vue +++ b/front/src/components/Promo/load_models.vue @@ -6,6 +6,7 @@ import { Vector2, Vector3, CircleGeometry, MeshBasicMaterial, Quaternion, + RingGeometry, } from 'three'; import { useTresContext, useSeek, useTexture, useLoop } from '@tresjs/core'; @@ -191,11 +192,24 @@ const loadModels = async () => { const point_mesh = new Mesh( new CircleGeometry(p, 32), - new MeshBasicMaterial({ map: pointerTexture.map }) + new MeshBasicMaterial({ color: new Color('#FFF'), side: DoubleSide }) ) point_mesh.rotateX(-0.5 * Math.PI) + const point_mesh2 = new Mesh( + new RingGeometry(p * 0.33, p * 0.66, 32), + new MeshBasicMaterial({ + color: new Color(envVars.clear_color), + side: DoubleSide, + polygonOffset: true, polygonOffsetFactor: -4, + // polygonOffsetUnits: 0.1 + }) + ) + point_mesh2.rotateX(-0.5 * Math.PI) + const point = new Group() point.add(point_mesh) + point.add(point_mesh2) + point.position.set(world_position.x, p * 3, world_position.z * 2) point.name = `${element.id}_clickable` point.updateMatrixWorld() @@ -298,6 +312,7 @@ onAfterRender(() => { clickable_refs.value.map(el => { if (el.value[0] && el.value[0].children) { el.value[0].children[0].lookAt(camera.value?.position) + el.value[0].children[1].lookAt(camera.value?.position) } }) if (controls.value) { @@ -365,7 +380,6 @@ const clickEvent = (event: MouseEvent) => { const clickable_objects = seekAllByName(scene.value, '_clickable'); const intersects = raycaster.value.intersectObjects(clickable_objects); - // const intersects_visible = intersects.filter(el=>el.visi) const names = intersects .map(el => (el.object.parent ? el.object.parent.name : el.object.name) ?? false) .filter(el =>