threejs加载三维美女人物模型glb效果

代码语言:html

所属分类:三维

代码描述:threejs加载三维美女人物模型glb效果,美女跟随鼠标移动目光头部

代码标签: 美女 人物 模型 glb 效果

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

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

<head>

 
<meta charset="UTF-8">
 

 
<style>
body
,
html
{
 
margin: 0;
 
padding: 0;
 
background: #25252B;
}
* {
 
touch-action: manipulation;
}
*,
*:before,
*:after {
 
box-sizing: border-box;
}
body
{
 
position: relative;
 
color: white;
 
letter-spacing: 2px;
 
font-size: 11px;
 
font-family: 'Poppins', sans-serif;
 
width: 100%;
 
height: 100vh;
}
.wrapper {
 
display: flex;
 
flex-direction: column;
 
justify-content: center;
 
align-items: center;
}
#c {
 
position: absolute;
 
top: 0;
 
width: 100%;
 
height: 100%;
 
display: block;
}

.loading {
 
position: fixed;
 
z-index: 50;
 
width: 100%;
 
height: 100%;
 
top: 0; left: 0;
 
background: #f1f1f1;
 
display: flex;
 
justify-content: center;
 
align-items: center;
}

.loader{
 
-webkit-perspective: 120px;
 
-moz-perspective: 120px;
 
-ms-perspective: 120px;
 
perspective: 120px;
 
width: 100px;
 
height: 100px;
}

.loader:before{
 
content: "";
 
position: absolute;
 
left: 25px;
 
top: 25px;
 
width: 50px;
 
height: 50px;
 
background-color: #9bffaf;
 
animation: flip 1s infinite;
}

@keyframes flip {
 
0% {
   
transform: rotate(0);
 
}

 
50% {
   
transform: rotateY(180deg);
 
}

 
100% {
   
transform: rotateY(180deg)  rotateX(180deg);
 
}
}

.tutorial-link {
 
position: absolute;
 
display: block;
 
z-index: 100;
 
top: 2em; left: 2em;
 
tranform: translateX(-50%);
 
font-weight: bold;
}
</style>




</head>

<body>
 
 
<!-- The loading element overlays all else until the model is loaded, at which point we remove this element from the DOM -->  
<div class="loading" id="js-loader"><div class="loader"></div></div>
 
<div class="wrapper">
   
<!-- The canvas element is used to draw the 3D scene -->
<canvas id="c"></canvas>

</div>

 
</body>
</html>

<!-- The main Three.js file -->
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.109.js"></script>
 
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/GLTFLoader.js"></script>
     
<script >
/* Follow the tutorial here:
https://tympanus.net/codrops/2019/10/14/how-to-create-an-interactive-3d-character-with-three-js/
*/

(function() {
  // Set our main variables
  let scene,  
    renderer,
    camera,
    model,                              // Our character
    neck,                               // Reference to the neck bone in the skeleton
    waist,                               // Reference to the waist bone in the skeleton
    possibleAnims,                      // Animations found in our file
    mixer,                              // THREE.js animations mixer
    idle,                               // Idle, the default state our character returns to
    clock = new THREE.Clock(),          // Used for anims, which run to a clock instead of frame rate
    currentlyAnimating = false,         // Used to check whether characters neck is being used in another anim
    raycaster = new THREE.Raycaster(),  // Used to detect the click on our character
    loaderAnim = document.getElementById('js-loader');
 
  init();

  function init() {
   
    const MODEL_PATH = '//repo.bfw.wiki/bfwrepo/threemodel/stacy_lightweight.glb';
    const canvas = document.querySelector('#c');
    const backgroundColor = 0xf1f1f1;
   
    // Init the scene
    scene = new THREE.Scene();
    scene.background = new THREE.Color(backgroundColor);
    scene.fog = new THREE.Fog(backgroundColor, 60, 100);
   
    // Init the renderer
    renderer = new THREE.WebGLRenderer({ canvas, antialias: true });
    renderer.shadowMap.enabled = true;
    renderer.setPixelRatio(window.devicePixelRatio);
    document.body.appendChild(renderer.domElement);
   
    // Add a camera
    camera = new THREE.Per.........完整代码请登录后点击上方下载按钮下载查看

网友评论0