three+webgl实现鼠标交互互动滤镜渐变效果代码
代码语言:html
所属分类:其他
代码描述:three+webgl实现鼠标交互互动滤镜渐变效果代码
代码标签: three webgl 鼠标 交互 互动 滤镜 渐变
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
body {
margin: 0;
}
</style>
</head>
<body translate="no">
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.128.js"></script>
<script type="module">
let scene, camera, renderer, planeMesh;
// -- 1) Set these to your normal map's actual dimensions:
const IMAGE_WIDTH = 1200; // e.g. 1200 px wide
const IMAGE_HEIGHT = 1000; // e.g. 1000 px high
const IMAGE_ASPECT = IMAGE_WIDTH / IMAGE_HEIGHT; // e.g. 1.2
init();
animate();
function init() {
scene = new THREE.Scene();
// ------------------------------------------------------
// 2) ORTHOGRAPHIC CAMERA: covers [-1..1] in Y, [-aspect..+aspect] in X
// ------------------------------------------------------
const viewAspect = window.innerWidth / window.innerHeight;
camera = new THREE.OrthographicCamera(
-viewAspect, // left
viewAspect, // right
1, // top
-1, // bottom
0.1, // near
10 // far
);
camera.position.set(0, 0, 5);
// ------------------------------------------------------
// 3) CREATE RENDERER & APPEND
// ------------------------------------------------------
renderer = new THREE.WebGLRenderer({
antialias: true
});
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// ------------------------------------------------------
// 4) LOAD NORMAL MAP (just once)
// ------------------------------------------------------
const loader = new THREE.TextureLoader();
const normalMap = loader.load(
"//repo.bfw.wiki/bfwrepo/image/5e45e670cfa1a.png"
);
// ------------------------------------------------------
// 5) PLANE GEOMETRY: (width=2*imageAspect, height=2)
// .........完整代码请登录后点击上方下载按钮下载查看
网友评论0