国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

Three.js利用性能插件stats實現性能監聽的方法

來源:懂視網 責編:小采 時間:2020-11-27 22:29:09
文檔

Three.js利用性能插件stats實現性能監聽的方法

Three.js利用性能插件stats實現性能監聽的方法:前言 關于性能:測試一個程序,性能上是否有瓶頸,在3D世界里,經常使用幀數的概念,首先我們來定義一下幀數的意義。 幀數:圖形處理器每秒鐘能夠刷新幾次,通常用fps(Frames Per Second)來表示 關于性能:測試一個程序,性能上是否有瓶頸,在3D世界里,
推薦度:
導讀Three.js利用性能插件stats實現性能監聽的方法:前言 關于性能:測試一個程序,性能上是否有瓶頸,在3D世界里,經常使用幀數的概念,首先我們來定義一下幀數的意義。 幀數:圖形處理器每秒鐘能夠刷新幾次,通常用fps(Frames Per Second)來表示 關于性能:測試一個程序,性能上是否有瓶頸,在3D世界里,

前言

關于性能:測試一個程序,性能上是否有瓶頸,在3D世界里,經常使用幀數的概念,首先我們來定義一下幀數的意義。

幀數:圖形處理器每秒鐘能夠刷新幾次,通常用fps(Frames Per Second)來表示

關于性能:測試一個程序,性能上是否有瓶頸,在3D世界里,經常使用幀數的概念,首先我們來定義一下幀數的意義。

幀數:圖形處理器每秒鐘能夠刷新幾次,通常用fps(Frames Per Second)來表示

stats性能插件添加了以后,會默認在左上角顯示性能幀數,每次刷新所用時間,占用內存。鼠標左鍵點擊可進行切換,默認顯示每秒的幀數。

   

首先需要將stats插件引入,地址是官網下載文件里面的examples/js/libs/stats.min.js。

然后需要實例化一個組件,然后添加到dom當中。

//初始化性能插件 
 var stats; 
 function initStats() { 
 stats = new Stats(); 
 document.body.appendChild(stats.dom); 
 } 

需要在requestAnimationFrame()函數調用里面更新stats。

function animate() { 
 //更新控制器 
 controls.update(); 
 render(); 
 
 //更新性能插件 
 stats.update(); 
 requestAnimationFrame(animate); 
 } 

就這樣,頁面當中就會顯示出來正常插件效果了。

設置默認顯示的監聽。

Stats.prototype.setMode()方法可以設置插件的默認監聽

stats.setMode(0); //默認的監聽fps 
stats.setMode(1); //默認的監聽畫面渲染時間 
stats.setMode(2); //默認的監聽當前的不知道是啥 

案例也是用的上一節的案例寫的,全部代碼:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
 <meta charset="UTF-8"> 
 <title>Title</title> 
 <style type="text/css"> 
 html, body { 
 margin: 0; 
 height: 100%; 
 } 
 
 canvas { 
 display: block; 
 } 
 
 </style> 
</head> 
<body onload="draw();"> 
 
</body> 
<script src="build/three.js"></script> 
<script src="examples/js/controls/TrackballControls.js"></script> 
<script src="examples/js/libs/stats.min.js"></script> 
<script> 
 var renderer; 
 function initRender() { 
 renderer = new THREE.WebGLRenderer({antialias:true}); 
 renderer.setSize(window.innerWidth, window.innerHeight); 
 document.body.appendChild(renderer.domElement); 
 } 
 
 var camera; 
 function initCamera() { 
 camera = new THREE.PerspectiveCamera(45, window.innerWidth/window.innerHeight, 1, 10000); 
 camera.position.set(0, 0, 400); 
 } 
 
 var scene; 
 function initScene() { 
 scene = new THREE.Scene(); 
 } 
 
 var light; 
 function initLight() { 
 scene.add(new THREE.AmbientLight(0x404040)); 
 
 light = new THREE.DirectionalLight(0xffffff); 
 light.position.set(1,1,1); 
 scene.add(light); 
 } 
 
 function initModel() { 
 var map = new THREE.TextureLoader().load("examples/textures/UV_Grid_Sm.jpg"); 
 var material = new THREE.MeshLambertMaterial({map:map}); 
 
 var cube = new THREE.Mesh(new THREE.BoxGeometry(100, 200, 100, 1, 1, 1), material); 
 scene.add(cube); 
 } 
 
 //初始化性能插件 
 var stats; 
 function initStats() { 
 stats = new Stats(); 
 document.body.appendChild(stats.dom); 
 } 
 
 //用戶交互插件 鼠標左鍵按住旋轉,右鍵按住平移,滾輪縮放 
 var controls; 
 function initControls() { 
 controls = new THREE.TrackballControls( camera ); 
 //旋轉速度 
 controls.rotateSpeed = 5; 
 //變焦速度 
 controls.zoomSpeed = 3; 
 //平移速度 
 controls.panSpeed = 0.8; 
 //是否不變焦 
 controls.noZoom = false; 
 //是否不平移 
 controls.noPan = false; 
 //是否開啟移動慣性 
 controls.staticMoving = false; 
 //動態阻尼系數 就是靈敏度 
 controls.dynamicDampingFactor = 0.3; 
 //未知,占時先保留 
 //controls.keys = [ 65, 83, 68 ]; 
 controls.addEventListener( 'change', render ); 
 } 
 
 function render() { 
 renderer.render( scene, camera ); 
 } 
 
 //窗口變動觸發的函數 
 function onWindowResize() { 
 
 camera.aspect = window.innerWidth / window.innerHeight; 
 camera.updateProjectionMatrix(); 
 controls.handleResize(); 
 render(); 
 renderer.setSize( window.innerWidth, window.innerHeight ); 
 
 } 
 
 function animate() { 
 //更新控制器 
 controls.update(); 
 render(); 
 
 //更新性能插件 
 stats.update(); 
 requestAnimationFrame(animate); 
 } 
 
 function draw() { 
 initRender(); 
 initScene(); 
 initCamera(); 
 initLight(); 
 initModel(); 
 initControls(); 
 initStats(); 
 
 animate(); 
 window.onresize = onWindowResize; 
 } 
</script> 
</html> 

總結

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Three.js利用性能插件stats實現性能監聽的方法

Three.js利用性能插件stats實現性能監聽的方法:前言 關于性能:測試一個程序,性能上是否有瓶頸,在3D世界里,經常使用幀數的概念,首先我們來定義一下幀數的意義。 幀數:圖形處理器每秒鐘能夠刷新幾次,通常用fps(Frames Per Second)來表示 關于性能:測試一個程序,性能上是否有瓶頸,在3D世界里,
推薦度:
標簽: 性能 three.js stats
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 一区精品在线 | 亚洲日韩在线观看 | 精品伊人久久久久7777人 | 国产成人精品久久一区二区小说 | 亚洲欧美日韩中文字幕一区二区三区 | 亚洲欧美字幕 | 国产成人精品日本亚洲语音2 | 国产精品久久亚洲一区二区 | 国产一区二区不卡免费观在线 | 久久久精品麻豆 | 亚洲欧美日韩成人 | 天天操综 | www.五月天婷婷 | 日韩在线欧美高清一区 | 国产全部视频在线播放 | 欧美日韩国产精品自在自线 | 亚洲视频大全 | 欧美成人高清在线视频大全 | 国产欧美久久久精品影院 | 欧美亚洲另类视频 | 亚洲精品免费观看 | 久久成人国产精品一区二区 | 黄网站色视频免费观看 | 国产综合精品一区二区 | 性欧美激情xxxd | 成人精品一区二区三区 | 国产成人a一区二区 | 日韩欧美片 | 亚洲 欧美 手机 在线观看 | 中文字幕第一区 | 亚洲欧洲日韩国产 | 久久免费国产精品一区二区 | 91导航在线观看 | 91欧洲在线视精品在亚洲 | 国产欧美日韩视频 | 九九九国产在线 | 五月天婷婷视频 | 亚洲精品国产第七页在线 | 日韩色视频一区二区三区亚洲 | 久久91精品国产91久久小草 | 欧美日韩视频一区二区三区 |