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

HDRI貼圖下載及Three.js利用

這篇具有很好參考價值的文章主要介紹了HDRI貼圖下載及Three.js利用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

最令人興奮的項目之一是在 Three js 中添加HDRI背景。 HDRI圖像是從房間內(nèi)部或花園、叢林或山脈等開放環(huán)境等場景中以 360 度捕獲的。 你可以自己創(chuàng)建任何這些圖像,但這不是本教程的主題。 相反,我們將從網(wǎng)站獲取這些圖像之一,并使用軌道控件,讓用戶能夠轉(zhuǎn)動物體并以 360 度查看所有內(nèi)容。 我們還可以將物體添加到場景中并賦予它們顏色或增加它們的金屬度并降低它們的粗糙度以成為球形鏡子。

HDRI貼圖下載及Three.js利用,貼圖,javascript,開發(fā)語言

推薦:用 NSDT編輯器 快速搭建可編程3D場景

1、在Three.js中添加背景

可能性是無限的,你可以做很多事情。 例如,可以通過添加不同家具、地毯、墊子等的 3D 模型來創(chuàng)建空房間的室內(nèi)設(shè)計。 本教程是創(chuàng)建虛擬世界的開始,你可以虛擬地建造自己的夢想之家,并從各個不同的方面觀看它。 正如我們在其他 Three js 教程中所說,一旦開始使用 Three js,天空才是極限。

我們將從three.js 場景的簡單元素開始,包括相機、渲染器、場景、對象和光源(如果需要)。 在此之前,我們使用 Vite 插件來輕松創(chuàng)建運行 Three.js 代碼所需的所有文件夾和文件。 首先,使用以下命令在項目目錄中創(chuàng)建一個文件夾:

mkdir BackgroundScene
cd BackgroundScene

然后,在文件夾中,運行 Vite 插件命令即可創(chuàng)建必要的文件和文件夾:

npm create vite@latest

然后,輸入項目名稱。 可以用glowingSphere作為名字。 但是,該名稱是任意的,你可以選擇任何想要的名稱。 然后,選擇 vanilla 作為框架和變體。 之后,在終端中輸入以下命令:

cd BackgroundScene
npm install

接下來,你可以在 main.js 文件中輸入要編寫的 JavaScript 代碼。 因此,我們將輸入基本或模板代碼,用于運行帶有動畫對象(例如球體)的每個項目。 另外,每次創(chuàng)建項目時不要忘記安裝three.js包:

npm install three

在 main.js 文件中輸入以下代碼:

import * as THREE from 'three';
import { Mesh } from 'three';
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, innerWidth / innerHeight , 0.1, 1000);
const renderer = new THREE.WebGLRenderer({
     antialias : true
})
renderer.setSize(innerWidth, innerHeight);
document.body.appendChild(renderer.domElement);
//creating a sphere
const geometry = new THREE.SphereGeometry(5, 50, 50);
const material = new THREE.MeshBasicMaterial({
     color:0x3268F8
})
const sphere = new THREE.Mesh(geometry,material);
scene.add(sphere);
camera.position.z = 15;
function animate(){
     requestAnimationFrame(animate);
     renderer.render(scene,camera);
     sphere.rotation.y += 0.003;
}
animate();

上面的代碼可以作為后續(xù)項目的樣板。 此代碼的輸出將是藍色球體,如下圖所示。 但是,為了能夠顯示這一點,你應(yīng)該在終端中編寫以下命令:

pm run dev

HDRI貼圖下載及Three.js利用,貼圖,javascript,開發(fā)語言

2、在Three.js 中使用軌道控件設(shè)置背景

現(xiàn)在,我們想要創(chuàng)建一個要添加的背景場景,但在此之前,我們需要將渲染從動畫更改為軌道控件,這樣我們就可以控制從動畫更改場景,而不是旋轉(zhuǎn)對象。 相機視角。 這樣做使我們能夠從各個角度查看 HDRI 圖像。 首先,我們需要導(dǎo)入以下 2 個庫:

import {OrbitControls} from "/node_modules/three/examples/jsm/controls/OrbitControls.js";
import Stats from "/node_modules/three/examples/jsm/libs/stats.module.js";

然后,我們要做的就是修改下面的渲染代碼:

function animate(){
     requestAnimationFrame(animate);
     renderer.render(scene,camera);
     sphere.rotation.y += 0.003;
}
Animate();

修改后的代碼如下所示:

const controls = new OrbitControls(camera, renderer.domElement);
window.addEventListener('resize', onWindowResize, false);
function onWindowResize() {
      camera.aspect = window.innerWidth / window.innerHeight;
      camera.updateProjectionMatrix();
      renderer.setSize(window.innerWidth, window.innerHeight);
      render();
}
const stats = Stats();
document.body.appendChild(stats.dom);
function animate() {
      requestAnimationFrame(animate);
      render();
      stats.update();
}
function render() {
      renderer.render(scene, camera);
}
animate();

現(xiàn)在我們應(yīng)該能夠圍繞該物體運行。 接下來我們應(yīng)該做的是將基礎(chǔ)材質(zhì)更改為標準材質(zhì)并創(chuàng)建鏡面效果:

const geometry = new THREE.SphereGeometry();
const material = new THREE.MeshStandardMaterial({
      color: 0xffffff,
})
material.roughness = 0;
material.metalness = 1;
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);

3、添加HDRI環(huán)境貼圖

最后,我們到達最令人興奮的部分,即將 HDRI 圖像添加到背景中。

為此,我們需要首先從BimAnt HDRI等網(wǎng)站找到這些圖像,BimAnt HDRI提供超過600張HDRI環(huán)境貼圖,優(yōu)點是無需登錄即可直接預(yù)覽和下載:

HDRI貼圖下載及Three.js利用,貼圖,javascript,開發(fā)語言

http://hdri.bimant.com

之后,我們應(yīng)該創(chuàng)建一個名為 images 的文件夾并將 HDRI 圖像粘貼到其中。 最后,添加以下代碼以便能夠渲染場景中的背景:

import {RGBELoader} from "/node_modules/three/examples/jsm/loaders/RGBELoader.js";
renderer.toneMapping = THREE.ACESFilmicToneMapping;
renderer.toneMappingExposure = 0.6;
renderer.outputEncoding = THREE.sRGBEncoding;
new RGBELoader().load("/images/solitude_4k.hdr", function(texture){
      texture.mapping = THREE.EquirectangularReflectionMapping;
      scene.background = texture;
      scene.environment = texture;
})

現(xiàn)在,如果我們保存代碼,結(jié)果將如下所示:
HDRI貼圖下載及Three.js利用,貼圖,javascript,開發(fā)語言

用鼠標左鍵單擊頁面并將其向左、向右、向上或向下移動時,你會發(fā)現(xiàn)可以從所有不同的角度看到場景。 另外,由于我們將球體材質(zhì)的金屬度定義為 1,粗糙度定義為 0,我們可以看到球體上的鏡面效果,以真實的方式反映背景場景。

可以說我們不需要任何光源,但請注意,如果物體靠近地面或在任何其他需要看到球的陰影的情況下,那么必須向場景添加光源并將其放置在光源光線與太陽光線方向相同的位置。

4、結(jié)束語

在本教程中,我們已成功將HDRI環(huán)境貼圖添加到場景中。

我們首先使用 Vite 插件和我們在大多數(shù) Three js 項目中使用的樣板代碼。 然后,我們刪除旋轉(zhuǎn)動畫,取而代之的是軌道控件,以便用戶能夠使用鼠標查看他們想要的場景的任何角度。

接下來我們要做的是將物體的材質(zhì)從基本材質(zhì)更改為標準材質(zhì),以便我們可以在球體表面添加鏡面效果。為了實現(xiàn)這一點,我們將金屬度設(shè)置為 1,粗糙度設(shè)置為 0

然后我們從BimAnt HDRI下載 HDRI 圖像并將其添加到我們的目錄中。 最終,我們編寫了與添加背景場景相關(guān)的腳本,結(jié)果令人驚訝!

當(dāng)然,你可以對房間的室內(nèi)設(shè)計進行相同的過程,并在房間背景場景中添加一些逼真的家具和其他元素,并創(chuàng)建自己的虛擬現(xiàn)實版本。


原文鏈接:Three.js添加HDRI背景 — BimAnt文章來源地址http://www.zghlxwxcb.cn/news/detail-739014.html

到了這里,關(guān)于HDRI貼圖下載及Three.js利用的文章就介紹完了。如果您還想了解更多內(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īng)查實,立即刪除!

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

相關(guān)文章

  • Three.js Tri-panner (三面貼圖) 材質(zhì) 兩種實現(xiàn)方式

    Three.js Tri-panner (三面貼圖) 材質(zhì) 兩種實現(xiàn)方式

    介紹 Tri-panner 在babylonjs中有支持 但是three.js目前的基礎(chǔ)材質(zhì)并不支持 需要自己定義shader 或者使用目前還沒有什么完善的文檔的 NodeMaterial 下面展示兩種實現(xiàn)方式 自定義shader NodeMaterial 這是threejs新系統(tǒng)充滿未來 目前還沒有一個完善的文檔 并且不太穩(wěn)定 r132的時候支持這個材質(zhì)

    2024年01月18日
    瀏覽(25)
  • Three.js 設(shè)置模型材質(zhì)紋理貼圖和修改材質(zhì)顏色,材質(zhì)透明度,材質(zhì)網(wǎng)格

    Three.js 設(shè)置模型材質(zhì)紋理貼圖和修改材質(zhì)顏色,材質(zhì)透明度,材質(zhì)網(wǎng)格

    1 traverse (模型循環(huán)遍歷方法) 2. THREE.TextureLoader(用于加載和處理圖片紋理) 3. THREE.MeshLambertMaterial(用于創(chuàng)建材質(zhì)) 4. getObjectByProperty(通過材質(zhì)的屬性值獲取材質(zhì)信息) 在上一篇 Three.js加載外部glb,fbx,gltf,obj 模型文件 的文章基礎(chǔ)上加入onSetSystemModelMap (設(shè)置模型材質(zhì)方法

    2024年02月13日
    瀏覽(28)
  • 除了three.js,還有許多其他前端開發(fā)語言和庫可以用于創(chuàng)建3D可視化大屏

    除了three.js,還有許多其他前端開發(fā)語言和庫可以用于創(chuàng)建3D可視化大屏

    hello老鐵們...本人熟悉html5,vue對bootsrap,uniapp,layui,element,vite,antd,echarts,jq響應(yīng)式尤其擅長,ui設(shè)計等技能,如果ui前端工作中有遇到煩惱可私信關(guān)注評論我們共同交流進步!謝謝?? ? ? 隨著前端技術(shù)的飛速發(fā)展,3D可視化已經(jīng)成為許多應(yīng)用場景中不可或缺的一部分。在

    2024年03月15日
    瀏覽(98)
  • 微信小程序利用three.js展示3D模型部分問題

    微信小程序利用three.js展示3D模型部分問題

    由于小程序的內(nèi)存限制比較多,稍不注意就容易溢出,所以經(jīng)過測試后我選擇gltf模型。不用加載貼圖,而且這個格式較為通用,最關(guān)鍵的是真的很小。OBJ+PNG怎么轉(zhuǎn)GLTF格式在我上篇帖子內(nèi)有。 three.js有一個小程序?qū)S貌寮hreex,移植效果還不錯,但渲染出來的效果會差一點,

    2024年02月08日
    瀏覽(91)
  • Three.js 實戰(zhàn)【1】—— 3D全景視圖開發(fā)

    Three.js 實戰(zhàn)【1】—— 3D全景視圖開發(fā)

    在現(xiàn)代開發(fā)過程當(dāng)中,3D開發(fā)是越來越不可或缺的一部門,在前面的文章當(dāng)中簡單的說明了一些threeJs的基礎(chǔ),從這里開始,我們將對ThreeJs整體進行一定的應(yīng)用。 我們先看一下這篇文章主要要實現(xiàn)的一個demo效果,現(xiàn)如今在第三方租房、買房App、或者百度、高德地圖上會出現(xiàn)這

    2024年02月12日
    瀏覽(23)
  • 面向Three.js開發(fā)者的3D自動紋理化開發(fā)包

    面向Three.js開發(fā)者的3D自動紋理化開發(fā)包

    DreamTexture.js 是面向 three.js 開發(fā)者的?3D 模型紋理自動生成與設(shè)置開發(fā)包,可以為 webGL 應(yīng)用增加 3D 模型的快速自動紋理化能力。 圖一為原始模型, 圖二圖三為貼圖后的模型。提示詞: city, Realistic , cinematic , Front view ,Game scene graph DreamTexture.js 基于 Three.js 和穩(wěn)定擴散(stable dif

    2024年02月06日
    瀏覽(31)
  • 3D沉浸式旅游網(wǎng)站開發(fā)案例復(fù)盤【Three.js】

    3D沉浸式旅游網(wǎng)站開發(fā)案例復(fù)盤【Three.js】

    Plongez dans Lyon網(wǎng)站終于上線了。 我們與 Danka 團隊和 Nico Icecream 共同努力,打造了一個令我們特別自豪的流暢的沉浸式網(wǎng)站。 這個網(wǎng)站是專為 ONLYON Tourism 和會議而建,旨在展示里昂最具標志性的活動場所。觀看簡短的介紹視頻后,用戶可以進入城市的交互式風(fēng)景如畫的地圖,

    2024年02月12日
    瀏覽(21)
  • Three.js開發(fā)神器-結(jié)合3DTiles插件加載傾斜攝影模型

    Three.js開發(fā)神器-結(jié)合3DTiles插件加載傾斜攝影模型

    首先我們通過鏈接和圖片來看看效果 演示Demo鏈接地址:https://n3gis.github.io/exportToThree(3.0).html?scene=Demo_4 使用到的軟件(軟件大家到Unity商城上搜索,Unity商城地址:https://assetstore.unity.com) Unity3D 3DTiles(Unity3D插件,用于加載OSGB格式的傾斜攝影數(shù)據(jù)) Export To Three.js(Unity3D插件,

    2023年04月20日
    瀏覽(115)
  • Three.js--》前端開發(fā)者掌握3d技術(shù)不再是夢,初識threejs

    Three.js--》前端開發(fā)者掌握3d技術(shù)不再是夢,初識threejs

    ????????這十年來 web 得到了快速的發(fā)展,隨著 webgl 的普及,網(wǎng)頁的表現(xiàn)能力越來越強大,網(wǎng)頁上已經(jīng)開始可以做出很多復(fù)雜的動畫和精美的效果,還可以通過 webgl 在網(wǎng)頁中繪制高性能的3d圖形,別的不說,凡是入門程序員都離不開github這個網(wǎng)站,細心的人都會發(fā)現(xiàn),gi

    2024年02月01日
    瀏覽(98)
  • Blender Three.js 智慧3D機房開發(fā) 模型創(chuàng)建與導(dǎo)入中的常見問題與解決方案

    Blender Three.js 智慧3D機房開發(fā) 模型創(chuàng)建與導(dǎo)入中的常見問題與解決方案

    目錄 機房效果展示 可能出現(xiàn)的問題及解決方法 Three. js服務(wù)器運行環(huán)境搭建及文件配置 使用Node.js搭建本地服務(wù)器 文件配置? Blender材質(zhì)處理 Blender導(dǎo)出GLTF模型出現(xiàn)材質(zhì)丟失 Three.js玻璃材質(zhì)制作 ?Blender導(dǎo)出glTF格式模型 Three. js模型顯示場景的設(shè)置 總結(jié) ? 機房正面圖: 機房背面

    2024年02月05日
    瀏覽(170)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包