three实现三维空间跟随鼠标的眼睛效果代码
代码语言:html
所属分类:三维
代码描述:three实现三维空间跟随鼠标的眼睛效果代码,眼睛永远盯着鼠标。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> body{ overflow: hidden; margin: 0; } </style> </head> <body translate="no"> <script type="importmap"> { "imports": { "three": "//repo.bfw.wiki/bfwrepo/js/module/three/build/160/three.module.js", "three/addons/": "//repo.bfw.wiki/bfwrepo/js/module/three/examples/160/jsm/" } } </script> <script type="module"> // https://discourse.threejs.org/t/make-only-eyes-move-with-look-at-the-mouse-cursor/61166/2 import * as THREE from 'three'; import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; class EyeBall extends THREE.Mesh { constructor() { let g = new THREE.SphereGeometry(1, 64, 32).rotateX(Math.PI * 0.5); let m = new THREE.MeshLambertMaterial({ onBeforeCompile: shader => { shader.vertexShader = ` varying vec3 vPos; ${shader.vertexShader} `.replace( `#include <begin_vertex>`, `#include <begin_vertex> vPos = position; `); console.log(shader.vertexShader); shader.fragmentShader = ` varying vec3 vPos; ${shader.fragmentShader} `.replace( `vec4 diffuseColor = vec4( diffuse, opacity );`, .........完整代码请登录后点击上方下载按钮下载查看
网友评论0