npm 包 three-proton-loader 使用教程

阅读时长 10 分钟读完

介绍

three-proton-loader 是一个基于 three.js 的粒子引擎库 Proton 的加载器。通过 three-proton-loader,我们可以在 three.js 的场景中方便的使用 Proton 创建各种粒子特效,例如烟雾、火焰、光束等等。

安装

通过命令行安装 three-proton-loader:

或者在 package.json 中添加依赖:

使用

加载器的初始化

加载器的初始化需要传入 three.js 的场景和相机,可以这样实现:

-- -------------------- ---- -------
------ - -- ----- ---- --------
------ ------ ---- ----------------
------ - ------------ - ---- ----------------------

-- -------
----- ----- - --- --------------
----- ------ - --- ------------------------
  --- ----------------- - ------------------- ---- ----
--
----------------- - --

-- -----
----- ------------ - --- ------------------- --------

加载 Proton 粒子效果

在加载器初始化后可以通过 protonLoader.loadProton 方法加载 Proton 粒子效果,方法的参数是包含 Proton 粒子效果的 json 文件的 url。

-- -------------------- ---- -------
----- --- - ----------------------

----------------------------
  -------------- -- -
    -- ---------------- ------ -----
    -- ------------------
    
    -- -----
    ------------------
  --
  ------------ -- -
    ------------------- ------ ------- ------ -- -----
  ---

使用示例

下面是一个使用 three-proton-loader 创建火焰效果的示例:

1. 准备工作

首先,我们需要准备一个 json 文件来存储火焰效果的配置,可以选择直接编写 json 文件或者使用 Proton 提供的可视化工具 ProtonEditor 来创建。

一个简单的火焰效果的配置如下:

-- -------------------- ---- -------
-
-------- -
-------- ------- ------ ------
---
------------ -
---
------------- -----
--------------- -
-------------- -
-------------- -----
------
----------- -
------------- -
--------------- ----
-------------- ---
-------
--------------------- ---
------------- --
--------------------- -
------
----------- -
------------- --
------------- ---
------
--------------- -
--------- --
--------- -
------
------------------- -----
------------- -
------------- --
-------------- -----
----------- ---
----------- --
------
----------- -
------------ -
-------
--------------- --
-------------- -
--------
-------
--------------- --
-------------- --
--------
-------
--------------- ---
-------------- ---
--------
-------
--------------- ---
-------------- ---
-------
-------
-------------- ----
------
-------------- -
----------------- -
-------------- --------
-------
------------- --
-------------- --
-----
-----
---------------- -
-----
------------- -
------------- -
--------
---------------- --
--------------- -
---------
--------
---------------- --
--------------- --
---------
--------
---------------- ----
--------------- --
---------
--------
---------------- --
--------------- ---
--------
-------
------
------
-----
------------- -
------------- -
--------
---------------- ----------
--------------- -
---------
--------
---------------- ----------
--------------- ---
---------
--------
---------------- ----------
--------------- ---
---------
--------
---------------- -------
--------------- ---
--------
--------
--------------- -----
------
-----
-----
--------------- ----
---------- -
------------ --
------------ ---
-----
---------- -
------------ ---
------------ -
-----
--------------- ------
------------------------- --
----------------------- ------
-------------- -
-------- --
-------- -
-----
------------------ ---
------------------ --
--------------- -
------------ --
------------- -----
---------- ---
---------- -
-----
----------------------- --
---------------- -
------------ ----------
------------- -----
-----
--------------- -
------------ --
------------- -----
---------- --
---------- --
-----
----------------------- --
---------------- -
------------ --
------------- -----
---------- --
---------- ---
-----
-------------- -
------------ --
------------- -----
---------- --
---------- ---
-----
-------------- -
------------ ----------
------------- -----
-----
------------- -
------------ --
------------- -----
---------- --
---------- --
-----
------------- -
------------ ---
------------- -----
---------- ---
---------- --
-----
--------------------- -
---
--
-

保存为 fire.json 文件。

2. 在场景中加载火焰粒子效果

-- -------------------- ---- -------
------ - -- ----- ---- --------
------ ------ ---- ----------------
------ - ------------ - ---- ----------------------

-- -------
----- ----- - --- --------------
----- ------ - --- ------------------------
  --- ----------------- - ------------------- ---- ----
--
----------------- - --

-- -----
----- ------------ - --- ------------------- --------

----- --- - --------------------

----------------------------
  -------------- -- -
    ----- ------- - -------------------

    -- - ------- ------------
    ----------- - --
    ----------- - --
    ------------------------- ------------------- ---------------------- --------
    ------------------------ ---------------------
    ------------------------ ------------------- -------
    ------------------------ --------------- ----
    ------------------------ ----------------------- ---------- ------
    ---------------
    ------------------
  --
  ------------ -- -
    ------------------- ------ ------- ------ -- -----
  ---

修改 emitter 的位置和添加几个行为,调整效果达到比较理想的状态。

效果:

结语

通过 three-proton-loader,我们可以很方便的在 three.js 的场景中使用 Proton 创建各种粒子效果。上面的示例只是一个简单的演示,更加丰富的粒子效果可以自行尝试在 Proton 中创建,然后使用 three-proton-loader 加载到场景中。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005597d81e8991b448d70a3

纠错
反馈