国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

three.js中文文檔學習之創建場景

2024-05-06 15:24:16
字體:
來源:轉載
供稿:網友

什么是Three.js?

如果你正在讀這篇文章,你可能對Three.js有一定的了解,那我們來簡單地介紹下Three.js是什么.
Three.js是一個庫,使得WebGL的3D效果在瀏覽器中運用很容易。而在原始的WebGL中一個簡單的立方體會變成數百Javascript和著色器代碼的行,而一個Three.js只需要一點點代碼.

本節目標是為 three.js 做簡介。我們從使用旋轉立方體來搭建場景開始。如果遇到困難需要幫助,頁面底部有可參考的源碼。

一個場景至少需要的三種類型組件

相機/決定哪些東西將在屏幕上渲染 光源/他們會對材質如何顯示,以及生成陰影時材質如何使用產生影響 物體/他們是在相機透視圖里主要的渲染隊形:方塊、球體等

開始前

在計算機中保存如下 HTML 代碼,并在 js 目錄下包含 three.js,然后在瀏覽器中打開

<html> <head> <meta charset=utf-8> <title>My first three.js app</title> <style>  body { margin: 0; }  canvas { width: 100%; height: 100% } </style> </head> <body> <script src="js/three.js"></script> <script>  // Our Javascript will go here. </script> </body></html>

接下來的代碼都會下載 script 標簽中

創建示例場景

為了利用three.js來進行展示,我們需要三種元素:場景,攝像機,渲染器,以便來渲染攝像機中的場景。

var scene = new THREE.Scene();var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );var renderer = new THREE.WebGLRenderer();renderer.setSize( window.innerWidth, window.innerHeight );document.body.appendChild( renderer.domElement );

讓我們花點時間來解釋發生了什么。我們現在創建了場景,攝像機和渲染器。

在 three.js 中有幾種攝像機。我們暫時用的是 PerspectiveCamera (透視攝像機)

它的第一個屬性是視圖角(FOV),它 是能看見的視圖范圍,其值表示角度大小。

第二個屬性是寬高比。大多數情況你想要使用被高除過之后的寬度,不然會發生像在寬屏電視上放舊電影的情況 —— 圖像看起來被壓扁了。

后面兩個屬性是近景面和遠景面。只會渲染這兩個面之間的區域。目前你不必關心這些,使用這些參數能提高性能。

接下來談談渲染器。這便是神奇之處。除了我們這里用的 WebGLRenderer 外, three.js 還提供一些渲染器用在不支持 WebGL 的老舊瀏覽器上。

除了創建渲染器實例,我們也需要設置應用渲染的尺寸。推薦使用填充整個應用的寬高 —— 本例中是瀏覽器窗口的寬高。對于性能優先的應用,你能使用 setSize 來設置更小的值,比如 window.innerHeight/2, window.innerWidth/2,會渲染一半的尺寸。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 常德市| 双柏县| 沈丘县| 正蓝旗| 漯河市| 长兴县| 青岛市| 名山县| 江阴市| 如东县| 井陉县| 景泰县| 读书| 台南市| 建始县| 山东省| 廊坊市| 和田市| 原阳县| 陕西省| 繁峙县| 黔江区| 香港| 黎城县| 雷山县| 哈密市| 新巴尔虎右旗| 西充县| 麻栗坡县| 敦煌市| 紫云| 措勤县| 华蓥市| 涡阳县| 洞头县| 盐边县| 会宁县| 宁陕县| 聂拉木县| 岗巴县| 宁化县|