国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果

這篇具有很好參考價值的文章主要介紹了WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

經(jīng)過 上文 WEB 3D技術(shù) three.js 3D賀卡(2) 加入天空與水面效果 我們將水面 和 天空的效果搭建了一下
WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript
那么 我們將四周 點光源的效果做一下

首先 我們將 renderer.toneMappingExposure 的值 改為 0.1 讓效果看著明顯一點
WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript
這樣 整個界面就會暗下來
WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript
然后 我們在任意位置 加入代碼

//添加點光源
const pointLight = new THREE.PointLight(0xff0000, 100);
pointLight.position.set(0.5, 2.3, 0);
pointLight.castShadow = true;
scene.add(pointLight);

創(chuàng)建一個點光源進(jìn)來 整個房屋就會有一種被燈光照亮的效果
WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript
然后 我們腰間渲染器設(shè)置為 允許陰影的

renderer.shadowMap.enabled = true;

然后 我們要將 glb 加載的元素 castShadow receiveShadow 字段都設(shè)置為true
讓他可以投射陰影 接收陰影
WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript
然后 我們將 點光源信息也改一下

//添加點光源
const pointLight = new THREE.PointLight(0xffffff, 100);
pointLight.position.set(0.1, 2.4, 0);
pointLight.castShadow = true;
scene.add(pointLight);

WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript
整個燈光信息也變好了很多

這里 還是要強調(diào) 點光源其實只是做出了一個燈將四周照亮的效果 但是 其實并沒有這個燈 你如果想要 就還是要加一個球體放在點光源的中心位置

然后 我們隨便找個地方加入如下代碼

//創(chuàng)建一個點光源組
const pointLightGroup = new THREE.Group();
let radius = 3;
pointLightGroup.position.set(-8, 2.5, -1.5);
for (let i = 0; i < 3; i++) {
  const sphereGeometry = new THREE.SphereGeometry(0.2, 32, 32);
  const sphereMaterial = new THREE.MeshBasicMaterial({ color: 0xffffff });
  const sphere = new THREE.Mesh(sphereGeometry, sphereMaterial);
  sphere.position.set(
    radius * Math.cos((i * 2 * Math.PI) / 3),
    Math.cos((i * 2 * Math.PI) / 3),
    radius * Math.sin((i * 2 * Math.PI) / 3)
  )
  let pointLight = new THREE.PointLight(0xffffff, 1);
  sphere.add(pointLight);
  pointLightGroup.add(sphere);
}
scene.add(pointLightGroup);

創(chuàng)建一個點光源組 Group 調(diào)整好 position 位置
然后 循環(huán)創(chuàng)建 三個球幾何體 小球
然后 用循環(huán)次數(shù) 參與計算 控制他們的 x y z位置

拉大圖形 我們的 三個球就在這里了
WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript
但是 我們這里這些點光源好像不是很給力呀
我們將材質(zhì)改成

THREE.MeshStandardMaterial({
	color: 0xffffff,
	emissive: 0xffffff,
	emissiveIntensity: 10
})

WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript
好 然后這三個球 我們讓它運動一下
首先 我們需要補間動畫的gsap

//導(dǎo)入gsap補間動畫
import gsap from "gsap";

然后 下面這樣寫

let options = {
   angle: 0
}
gsap.to(options, {
  angle: Math.PI * 2,
  duration: 10,
  repeat: -1,
  ease:"linear",
  onUpdate: () => {
    pointLightGroup.rotation.y = options .angle;
  }
})

動畫 旋轉(zhuǎn)我們的 pointLightGroup 就是 我們 THREE.Group() 定義的光源組
這樣 我們這個動畫就轉(zhuǎn)起來了
WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript
然后 如果 我們希望 每個點光源元素 自己也上下動
首先 我們要知道 這三個點光源是在for循環(huán)中創(chuàng)建的
WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript
所以 我們沒辦法在代碼中直接的拿到這三個光源對象
我們可以定義一個數(shù)組 來存儲它們

我們最外面定義一個 叫 pointLightArr的數(shù)組
然后將每次循環(huán)聲明的 光源對象 push到數(shù)組中
WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript
然后 在循環(huán)語句中修改代碼如下

pointLightArr.map((item, index) => {
	item.position.set(
		radius * Math.cos((index * 2 * Math.PI) / 3 + options.angle),
		Math.cos((index * 2 * Math.PI) / 3 + options.angle * 5),
		radius * Math.sin((index * 2 * Math.PI) / 3 + options.angle)
	)
})

循環(huán)遍歷數(shù)組 然后對下面每一個下標(biāo)對象 進(jìn)行 position xyz屬性的修改
WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript
這樣 我們的光源球就開始 上下挑了
WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果,前端,3d,javascript文章來源地址http://www.zghlxwxcb.cn/news/detail-803765.html

到了這里,關(guān)于WEB 3D技術(shù) three.js 3D賀卡(3) 點光源燈光動畫效果的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Three.js--》實現(xiàn)3d圣誕賀卡展示模型

    Three.js--》實現(xiàn)3d圣誕賀卡展示模型

    目錄 項目搭建 初始化three.js基礎(chǔ)代碼 加載環(huán)境模型 設(shè)置環(huán)境紋理 添加水面并設(shè)置陰影效果 實現(xiàn)幽靈小球的運動 實現(xiàn)相機切換和文字切屏 實現(xiàn)漫天星星和愛心樣式 今天簡單實現(xiàn)一個three.js的小Demo,加強自己對three知識的掌握與學(xué)習(xí),只有在項目中才能靈活將所學(xué)知識運用起

    2024年02月06日
    瀏覽(101)
  • web上構(gòu)建3d效果 基于three.js的實例

    web上構(gòu)建3d效果 基于three.js的實例

    web頁面上提供3D效果,可以為頁面提供不少色彩,H5之后canvas 為webgl提供了基礎(chǔ),使得在web頁面使用JS也能寫出3D的效果,其中three.js作為封裝了圖形函數(shù) 的框架,為入門提供了方便,效果圖如下。 ? 以上是官方例子中其中的三個,沒接觸過的朋友肯定會覺得很神奇,事實上

    2024年02月05日
    瀏覽(88)
  • WEB 3D技術(shù) three.js 陰影屬性

    WEB 3D技術(shù) three.js 陰影屬性

    上文 WEB 3D技術(shù) three.js 光照與陰影 我們說了陰影 那么 我們繼續(xù)將陰影的屬性 目前 我們的代碼 目前陰影效果是這樣的 我們可以設(shè)置它的一個模糊度 我們官網(wǎng)搜索 LightShadow 下面找到 radius 模糊度的一個屬性 這里 我們可以 設(shè)置 20 的一個模糊度 運行代碼 然后看我們的模糊度

    2024年01月22日
    瀏覽(85)
  • WEB 3D技術(shù) three.js 聚光燈

    WEB 3D技術(shù) three.js 聚光燈

    本文 我們來說說 點光源和聚光燈 點光源 就像一個電燈泡一樣 想四周發(fā)散光 而聚光燈就像手電筒一樣 像一個方向射過去 距離越遠(yuǎn)范圍越大 光越弱 我們先來看一個聚光燈的效果 我們可以編寫代碼如下 SpotLight 聚光燈 然后通過 position 設(shè)置一下光的位置 運行代碼如下 目前看

    2024年01月21日
    瀏覽(96)
  • three.js 汽車行駛動畫效果

    three.js 汽車行駛動畫效果

    實現(xiàn)原理是使用TWEEN.Tween實現(xiàn)動畫效果 使用Promise編寫模型的異步加載方法 參數(shù)position是汽車初始位置,參數(shù)rotation是汽車初始朝向 調(diào)用: 第1個參數(shù)是汽車初始位置,第2個參數(shù)表示汽車初始朝向:西 參數(shù)start是行駛起點位置,參數(shù)end是行駛終點位置,參數(shù)speed是速度 this.mod

    2024年02月05日
    瀏覽(24)
  • WEB 3D技術(shù) three.js draco解壓器 解決 壓縮后的gltf/glb報錯 Error: THREE.GLTFLoader: No DRACOLoader instance pravid

    WEB 3D技術(shù) three.js draco解壓器 解決 壓縮后的gltf/glb報錯 Error: THREE.GLTFLoader: No DRACOLoader instance pravid

    通常 我們 glb/gltf里面都是非常大的場景 有些工具 它會因為過大做了壓縮 導(dǎo)致 我們開始是用不了的 我們可以官網(wǎng)搜索 draco 如下圖選擇 這是個解壓工具 用在我們各種的3D建模軟件中 大部分是通用的 我們先在代碼中導(dǎo)入工具 我們在項目根目錄中 找到 node_modules下的 three 然后

    2024年04月16日
    瀏覽(95)
  • Three.js中的3D文字效果

    Three.js中的3D文字效果

    對于一些設(shè)計網(wǎng)頁中經(jīng)常會出現(xiàn)一些3D的文字效果,本文將利用Three.js實現(xiàn)各種動畫WebGL文本輸入效果。 示例效果 原文章 通常情況下,文本網(wǎng)格是2D的平面形狀,我們所要實現(xiàn)的3D文本形狀則是要在2D的平面下,再生成z值形成一個立體的效果。 首先,我們創(chuàng)建一個canvas元素,

    2024年02月02日
    瀏覽(22)
  • Three.js--》實現(xiàn)3D汽車展廳效果展示

    Three.js--》實現(xiàn)3D汽車展廳效果展示

    目錄 項目搭建 初始化three.js基礎(chǔ)代碼 加載汽車模型 設(shè)置展廳效果 設(shè)置GUI面板動態(tài)控制車身操作 車門操作與車身視角展示 設(shè)置手動點擊打開關(guān)閉車門 設(shè)置圖片背景 今天簡單實現(xiàn)一個three.js的小Demo,加強自己對three知識的掌握與學(xué)習(xí),只有在項目中才能靈活將所學(xué)知識運用起

    2024年02月09日
    瀏覽(92)
  • Three.js--》實現(xiàn)圖片轉(zhuǎn)3D效果展示

    Three.js--》實現(xiàn)圖片轉(zhuǎn)3D效果展示

    目錄 項目搭建 初始化three.js基礎(chǔ)代碼 加載圖片紋理 設(shè)置著色器 今天簡單實現(xiàn)一個three.js的小Demo,加強自己對three知識的掌握與學(xué)習(xí),只有在項目中才能靈活將所學(xué)知識運用起來,話不多說直接開始。 項目搭建 本案例還是借助框架書寫three項目,借用vite構(gòu)建工具搭建vue項目

    2024年02月08日
    瀏覽(88)
  • vue3結(jié)合three.js實現(xiàn)3D帶有交互的動畫

    three.js引入 安裝軌道控件插件: 安裝渲染器插件: vue文件中引用: 在頁面中創(chuàng)建場景 創(chuàng)建一個透視相機 初始化渲染器 初始動畫混合器 參數(shù):rootObject 混合器播放的動畫所屬的對象。就是包含動畫模型的場景對象。 常用參數(shù)和屬性: .time 全局的混合器時間。 .clipAction(Ani

    2024年02月04日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包