当前位置: 首页 > 编程笔记 >

three.js 简单的样板:带阻尼的旋转立方体和轨道控制

邵逸明
2023-03-14
本文向大家介绍three.js 简单的样板:带阻尼的旋转立方体和轨道控制,包括了three.js 简单的样板:带阻尼的旋转立方体和轨道控制的使用技巧和注意事项,需要的朋友参考一下

示例

这是基本的HTML文件,可以在启动项目时用作样板。该样板使用带有阻尼的轨道控制(可以使物体围绕物体移动并产生减速效果的相机),并创建一个旋转的立方体。

<!DOCTYPE html>
<html>
    <head>
        <title>Three.js Boilerplate</title>

        <!--This is important to get a correct canvas size on mobile-->
        <meta name='viewport' content='width=device-width, user-scalable=no'/>

        <style>
            body{
                margin:0;
                overflow:hidden;
            }

            /*
              Next 2 paragraphs are a good practice. 
              In IE/Edge you have to provide the cursor images.
            */
            canvas{
                cursor:grab;
                cursor:-webkit-grab;
                cursor:-moz-grab;
            }
            canvas:active{
                cursor:grabbing;
                cursor:-webkit-grabbing;
                cursor:-moz-grabbing;
            }
        </style>
    </head>
    <body>
        
        <script xx_src='three.js/build/three.js'></script>
        <script xx_src='three.js/examples/js/controls/OrbitControls.js'></script>

        <script>
            var scene, renderer, camera, controls, cube;
        
            init();

            function init () {
                renderer = new THREE.WebGLRenderer();
                
                //这是为了在便携式设备上获得正确的像素细节
                renderer.setPixelRatio(window.devicePixelRatio);

                //这将设置画布的尺寸。
                renderer.setSize( window.innerWidth,window.innerHeight);
                document.body.appendChild(renderer.domElement);

                scene = new THREE.Scene();

                camera = new THREE.PerspectiveCamera( 
                    70,                                         //FOV
                   window.innerWidth/ window.innerHeight,     //aspect
                    1,                                          //接近裁剪平面
                    100                                         //远裁剪平面
                );
                camera.position.set( 1, 3, 5 );

                controls = new THREE.OrbitControls( camera,renderer.domElement);
               controls.rotateSpeed= .07;
               controls.enableDamping= true;
               controls.dampingFactor= .05;

                window.addEventListener( 'resize', function () {
                   camera.aspect=window.innerWidth/ window.innerHeight;
                    camera.updateProjectionMatrix();
                    renderer.setSize( window.innerWidth,window.innerHeight);
                }, false );

                cube = new THREE.Mesh(
                    new THREE.BoxGeometry( 1, 1, 1 ),
                    new THREE.MeshBasicMaterial()
                   );
                scene.add( cube );

                animate();
            }

            function animate () {
                requestAnimationFrame( animate );
                controls.update();
                renderer.render( scene, camera );
                
                cube.rotation.x += 0.01;
            }
        </script>
    </body>
</html>
           

 类似资料:
  • 要通过WebGL渲染出立方体旋转的动画效果,你首要了解“帧”这个概念,比如你观看的视频其实就是一帧一帧的图片连续播放的效果,只要图片刷新的频率的不是太低,人的眼睛都不会察觉,一般30~60FPS就可以。 WebGL如何产生一帧一帧的图片,这个很简单,执行一次绘制函数gl.drawArrays(),WebGL图形系统就会通知GPU渲染管线处理顶点数据生成一帧RGB像素数据显示在屏幕canvas画布上

  • 好了,现在真正有趣的事情开始了。本节,我们将创建一个旋转的3D立方体,该立方体具有不同颜色的表面。为了做到这一点,我们将介绍两类新的缓冲区——颜色缓冲区和索引缓冲区。 图9-3 旋转的立方体 操作步骤 按照以下步骤,使用WebGL创建一个旋转立方体: 1. 链接到glMatrix库和WebGL包装器: <script type="text/javascript" src="glMatrix-1.

  • 问题内容: 我在这里遇到以下问题:我得到了一个代表音频数据的字节块(uint16_t *),并且生成它们的设备正在捕获单声道声音,因此很明显,我在1通道上具有单声道音频数据。我需要将此数据传递到另一台设备,该设备需要交错的立体声数据(因此为2个通道)。我要做的基本上是复制数据中的1通道,以便立体声数据的两个通道都包含相同的字节。您能指出一个有效的算法吗? 谢谢,f。 问题答案: 如果只需要交错的立

  • 本文向大家介绍three.js实现围绕某物体旋转,包括了three.js实现围绕某物体旋转的使用技巧和注意事项,需要的朋友参考一下 话不多说,请看代码: 可以拖动右上角观察变化 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!

  • 实现的基本思路很简单,首先提供如上图所示立方体线框所有顶点的三维坐标,然后通过旋转矩阵对所有顶点进行旋转变换,最后调用绘制函数gl.drawArrays把所有点连成线渲染出来。 通过第1.3、1.4两节课案例知道,显示器上显示的实际上是平面的像素,可以简单理解为三维几何体放在你眼睛和显示器之间,几何体在显示器上的投影,视线一定的情况下, 你看到的投影效果取决几何体的位置状态,如果你学过画法几何应该

  • 本文向大家介绍C#控制图像旋转和翻转的方法,包括了C#控制图像旋转和翻转的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#控制图像旋转和翻转的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。