threejs实现一个图片假三维视觉效果代码

代码语言:html

所属分类:视觉差异

代码描述:threejs实现一个图片假三维视觉效果代码

代码标签: threejs 图片 假三维 视觉差异

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>

  <meta charset="UTF-8">

  
  
  
  
<style>
* {
  margin: 0;
  padding: 0;
}

html,
body {
  overflow: hidden;
  background-color: black;
}

.webgl {
  position: fixed;
  top: 0;
  left: 0;
  outline: none;
}
</style>



</head>

<body >
  <canvas class="webgl"></canvas>

  <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.128.js"></script>
    <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/dat.gui-min.js"></script>
    <script >

/**
 * Variables
 */

// Main Settings
const settings = {
  xThreshold: 20,
  yThreshold: 35,
  originalImagePath: '//repo.bfw.wiki/bfwrepo/images/three/dog-photo.jpg',
  depthImagePath: '//repo.bfw.wiki/bfwrepo/images/three/dog-depth-map.jpg' };


// Sizes
const sizes = {
  width: window.innerWidth,
  height: window.innerHeight };


// Image Details
let originalImage = null;
let depthImage = null;
const originalImageDetails = {
  width: 0,
  height: 0,
  aspectRatio: 0 };


// Geometries and Material
let planeGeometry = null;
let planeMaterial = null;
let plane = null;

// Cursor Settings
const cursor = {
  x: 0,
  y: 0,
  lerpX: 0,
  lerpY: 0 };



/**
 * Base
 */

// Debug
const gui = new dat.GUI();

// Canvas
const canvas = document.querySelector('canvas.webgl');

// Scene
const scene = new THREE.Scene();


/**
 * Camera
 */

const camera = new THREE.PerspectiveCamera(75, sizes.width / sizes.height, 0.1, 100);
camera.position.x = 0;
camera.position.y = 0;
camera.position.z = 0.7;
scene.add(camera);

let fovY = camera.position.z * camera.getFilmHeight() / camera.getFocalLength();


/**
* Images
*/

const textureLoader = new THREE.TextureLoader();

const loadImages = () => {

  if (originalImage !== null || depthImage !== null)
  {
    originalImage.dispose();
    depthImage.dispose();
  }
  depthImage = textureLoader.load(settings.depthImagePath);

  originalImage = textureLoader.load(settings.originalImagePath, function (tex) {
    originalImageDetails.width = tex.image.width;
    originalImageDetails.height = tex.image.height;
 .........完整代码请登录后点击上方下载按钮下载查看

网友评论0