当前位置: 首页 > news >正文

沈阳模板建站php网站建设制作流程

沈阳模板建站,php网站建设制作流程,创建网站的网站,设计工作室官网一、相机 相机 camera#xff0c;可以理解为摄像机。在拍影视剧的时候#xff0c;最终用户看到的画面都是相机拍出来的内容。 Three.js 里#xff0c;相机 camera 里的内容就是用户能看到的内容。从这个角度来看#xff0c;相机其实就是用户的视野#xff0c;就像用户的眼…一、相机 相机 camera可以理解为摄像机。在拍影视剧的时候最终用户看到的画面都是相机拍出来的内容。 Three.js 里相机 camera 里的内容就是用户能看到的内容。从这个角度来看相机其实就是用户的视野就像用户的眼睛。 Three.js 主要有四种不同的相机模式 透视相机 PerspectiveCamera具有透视效果近大远小也是用的最多的相机。 正交相机 OrthographicCamera不具有透视效果所有的元素的尺寸大小都是相同的不管距离。 立体相机 StereoCamera主要做VR用的。就是让左右视觉有点点不一样的相机。 立方体相机 CubeCamera主要用作反射镜面纹理。 本文主要讨论透视相机和正交相机。 前面案例中应用到的轨道控制器名为轨道其实控制的就是相机的视角。 二、透视相机 透视相机PerspectiveCamera中的物体具有“近大远小”的特点是3D场景的渲染中使用得最普遍的投影模式。 1. 参数解析 const camera new THREE.PerspectiveCamera(fov, aspect, near, far ); 其参数分别为 fov 摄像机视锥体垂直视野角度以角度来表示。默认值是50。 aspect 摄像机视锥体宽高比默认值为 1一般用渲染器到宽高比。 near摄像机视锥体近截面默认值是0.1。 far摄像机视锥体远截面默认值是2000。 const camera new THREE.PerspectiveCamera( 45, width / height, 1, 1000 ); scene.add( camera ); 只有在视锥体范围内近截面和远截面之间的物体才会被渲染出来。 Three.js 编辑器里视锥体的样子 可以通过点语法的形式修改相机视锥体的参数但是必须调用camera.updateProjectionMatrix() 方法让修改生效。 const camera new THREE.PerspectiveCamera(50, winW/winH,1, 10); camera.near 5; // 修改参数 camera.far 37; camera.updateProjectionMatrix(); // 让参数修改生效 2. 修改相机坐标 因为相机默认在原点上物体也默认在原点上。所以要看到物品要把相机往后挪动位置也既修改 z 轴位置。 // 调整相机位置 x,y,z camera.position.z 0; camera.position.x 0; camera.position.y 10;// 或者 camera.position.set(0,0,10); 3. 镜头对准物体 不过有时候移动相机的时候相机必须要盯着目标物体避免物体跑出视野之外。 camera.lookAt( Xmesh.position ); // 相机镜头盯着x物体 也可以对准某个具体的位置 camera.lookAt(new THREE.Vector3(x,y,z)); 4. 缩放镜头 camera.zoom 4; camera.updateProjectionMatrix(); // 让参数修改生效 获取或者设置摄像机的缩放倍数其默认值为1。 1镜头里的物体会被放大 1物体会被缩小 1物体正常大小 必须调用camera.updateProjectionMatrix() 方法让修改生效。 三、正交相机 正交相机OrthographicCamera无论物体距离相机距离远或者近在最终渲染物体的大小都保持不变。 主要用于渲染 2D 场景或者UI元素。如下图所示 1. 参数解析 const camera new THREE.OrthographicCamera(OrthographicCamera( left, right, top, bottom, near, far); scene.add( camera ); 其参数依次分别为 left 摄像机视锥体左侧面。 right 摄像机视锥体右侧面。left 与 right 互为反数。 top摄像机视锥体上侧面。 bottom 摄像机视锥体下侧面。top 与 bottom 互为反数。 near 摄像机视锥体近截面。其默认值为0.1。 far 摄像机视锥体远截面。其默认值为2000。 这几个参数刚好组成一个立方体。 例如 const k winW / winH; //canvas画布宽高比 const s 2; // 显示控制系数。 const camera new THREE.OrthographicCamera( -s*k, k*s, s, -s, 0.1, 2000 ); camera.position.set(8,8,8); scene.add( camera ); 为了保持照相机的横竖比例需要保证 (right - left) 与 (top - bottom) 的比例与 Canvas也就是渲染器宽度与高度的比例一致。所以才有了两个变量 k、s。 变量 krender 渲染的宽高比。因为正交相机默认渲染的是一个正方形但是我们渲染的范围canvas不一定是一个正方形。正交相机区域将被拉伸以适合我们的矩形画布因此我们需要使用画布的宽高比。 变量 S 是正交相机显示控制系数。值越小画面越大。反之画面越小。如果为1画面会很大。所以这里用“单位”的2倍。当然也可以根据需要自行调整数据。 Three.js 编辑器里正交相机视锥体的样子 跟透视相机一样可以通过点语法的形式修改相机视锥体的参数但是必须调用camera.updateProjectionMatrix() 方法让修改生效。   2. 正交相机例子 let winW window.innerWidth; let winH window.innerHeight;// 场景 const scene new THREE.Scene(); scene.background new THREE.Color(#cccccc);// 网格辅助器 const grid new THREE.GridHelper(1000,10); scene.add(grid);// 物体 const geometry new THREE.BoxGeometry(100,100,100); const material new THREE.MeshBasicMaterial({color:#f00 }); const mesh new THREE.Mesh( geometry, material ); mesh.position.set(0,0,0); scene.add( mesh );// 正投影相机案例 const k winW / winH; //canvas画布宽高比 const s 2; // 显示控制系数。网格单位*2 const camera new THREE.OrthographicCamera( -s*k, k*s, s, -s, 0.1, 2000 ); camera.position.set(8,8,8); scene.add( camera );// 渲染器 const renderer new THREE.WebGLRenderer(); renderer.setSize( winW, winH ); document.body.appendChild( renderer.domElement ); renderer.render(scene, camera);// 轨道控制器 const controls new OrbitControls(camera, renderer.domElement); controls.update(); controls.addEventListener(function(){console.info( camera.position ); });// 动画 function aniFun(){renderer.render( scene, camera );controls.update();requestAnimationFrame( aniFun ); } aniFun(); 可以看到正交相机的图像是没有近大远小的透视感的。 四、相机切换示例 html div classbtnsbutton typebutton idtsBtn透视相机/buttonbutton typebutton idzjBtn正交相机/buttonh1 idtit透视相机/h1 /divscript typeimportmap{imports:{three:./js/three.module.min.js,three/addons/:./js/jsm/}} /script script typemodule src./js/myjs5-3.js/script JS import * as THREE from three; import { OrbitControls } from three/addons/controls/OrbitControls.js;let scene,camera,controls, grid,renderer; let winW window.innerWidth,winH window.innerHeight;let tsBtn document.getElementById(tsBtn),zjBtn document.getElementById(zjBtn),tit document.getElementById(tit);// 场景 scene new THREE.Scene(); scene.background new THREE.Color(#cccccc);// 透视相机 function pCamera(){camera new THREE.PerspectiveCamera(50, winW/winH,1, 1000);camera.position.set( 8,8,8 );camera.lookAt( scene.position );scene.add( camera ); }// 正交相机 function oCamera(){const k winW / winH; //canvas画布宽高比const s 8; // 显示控制系数。camera new THREE.OrthographicCamera( -s*k, k*s, s, -s, 0.1, 2000 );camera.position.set(8,8,8);camera.lookAt( scene.position );scene.add( camera ); }// 渲染器 function renderFun(){renderer new THREE.WebGLRenderer();renderer.setSize( winW, winH );document.body.appendChild( renderer.domElement ); }// 网格辅助 function gridHelperFun(){grid new THREE.GridHelper(10,10);scene.add(grid); }// 立方体 function cubeFun(){let geometry new THREE.BoxGeometry(1,1,1);let metiral new THREE.MeshBasicMaterial({color:#ff3300});let mesh new THREE.Mesh( geometry, metiral);scene.add( mesh ); }// 函数调用 pCamera(); renderFun(); gridHelperFun(); cubeFun();renderer.render(scene, camera);// 动画渲染 function animateFun(){// 渲染renderer.render( scene, camera);requestAnimationFrame(animateFun); } animateFun();// 按钮事件 tsBtn.addEventListener(click,function(){pCamera();renderer.render(scene, camera);tit.innerHTML 透视相机; }); zjBtn.addEventListener(click,function(){oCamera();renderer.render(scene, camera);tit.innerHTML 正交相机; });
http://www.pierceye.com/news/177711/

相关文章:

  • 网站开发需要的知识WordPress要什么环境
  • wordpress 多站点设置欧洲c2c平台
  • 赤峰网站开发公司做网站的公司怎么推销
  • 深圳福田区区住房和建设局网站wordpress 小程序开发
  • 网站建设与推cctv-10手机网站模板用什么做
  • 网站的建站方案网络科技有限公司
  • ps做图游戏下载网站有哪些内容广州网站(建设信科网络)
  • 专做皮鞋销售网站seo网站优化方案
  • 街区网站建设的意义做外贸网站 怎么收钱
  • 北京网站制作公司兴田德润可信赖给钱做h事都行的网站名
  • 合肥珍岛公司做网站推广怎么样如何查询网站备案进度
  • 源码论坛网站门户网站的含义
  • 零食店网站构建策划报告高级程序员培训
  • 重庆大足网站制作公司百度app智能小程序
  • flash网站与html5discuz做的网站上传到网站空间的文件
  • 做网站会什么网页设计类型与风格
  • 怎么做网站用于推广注册公司每年需要缴纳什么费用
  • 揭阳有哪家网站制作公司wordpress数据库备份恢复
  • 站长工具友链查询中国网站建设公司图片
  • 做原型的素材网站国内wordpress主题商
  • 合肥的电商网站设计wordpress 相册 链接
  • 试玩平台网站怎么做网站建设推荐中企动力
  • 衡水做网站建设台州网站建设选浙江华企
  • 某集团网站建设规划书用flash做的经典网站
  • 企业网站用什么做一个空间怎么放两个网站吗
  • 58同城长沙回收网站建设长春seo推广
  • 景区网站建设的意义女生学计算机应用技术可以做什么
  • 做律师网站的公司天津公司网站制作
  • 上海建设摩托车官方网站招聘网站数建设
  • 自己制作一个网站需要什么软件安吉网站制作