npm 包 three-proton-loader 使用教程

介绍

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


猜你喜欢

  • npm 包 kue-prom 使用教程

    在前端开发过程中,我们常常需要使用工具来帮助我们提高效率和解决问题。npm 包是前端开发中十分常见的工具,其中 kue-prom 是一款非常实用的包。本文将介绍 kue-prom 的使用教程,包括该包...

    2 年前
  • npm包add-subdirs使用教程

    什么是npm包? 在前端开发中,我们经常会使用到一些第三方库,比如 jQuery, React 等等。这些库都是以 npm 包的形式存在的,npm 包就是一种可以被引入到项目中使用的第三方代码集合。

    2 年前
  • npm 包 opencv-face-replace 使用教程

    简介 opencv-face-replace 是一个基于 OpenCV 的 Node.js 模块,可以实现面部识别和替换指定的面部部分。这个模块可以很好地应用在视频、图片等各种场景中,让你的项目更加有...

    2 年前
  • npm 包 pokemon-images 使用教程

    什么是 npm 包? npm 是 Node.js 的包管理器,用于管理 JavaScript 代码库。npm 包就是在 npm 上发布的、可供他人使用的 JavaScript 代码库,类似于 Pyth...

    2 年前
  • npm 包 nightmare-screenshot-selector 使用教程

    前言 对于前端开发来说,UI 自动化测试是非常重要的一环。在测试过程中,需要对网页上的一些重要的区域进行截图并分析。而使用 screenshot 工具可以大大简化我们的工作。

    2 年前
  • npm 包 react-native-rocks 使用教程

    React Native 是一款很火爆的跨平台移动应用框架,它可以让开发者不用分别针对 Android 和 iOS 平台进行开发,而是在一份 React 代码上进行开发,让开发变得更加高效和简单。

    2 年前
  • npm 包 keystone-apis 使用教程

    npm 包 keystone-apis 使用教程 前言 在前端开发过程中,使用 npm 包是必不可少的环节。npm 提供了大量的资源和工具,能够极大方便前端工程师的工作。

    2 年前
  • npm 包 three.proton 使用教程

    前言 three.js 是目前最流行的 WebGL 渲染引擎之一,它能够让开发者以简单的方式完成高质量的 3D 及 VR 应用程序。而 three.proton 是基于 three.js 进行封装的粒...

    2 年前
  • npm 包 `image-to-rgba-matrix` 使用教程

    在前端开发中,经常需要对图片进行各种处理,例如图像识别、图像处理等。而 image-to-rgba-matrix 就是一个 npm 包,可以将图片转换成 RGBA 像素矩阵,非常适合进行处理。

    2 年前
  • npm 包 ember-cli-waxpoetic 使用教程

    ember-cli-waxpoetic 是一个从流行的 JavaScript 框架 Ember.JS 派生出来的插件,它通常用于快速构建复杂的 Web 应用程序。它的目的是提供一个易于使用的界面,简化...

    2 年前
  • npm 包 add-newlines 使用教程

    npm 包 add-newlines 是一个在字符串中添加新行的实用工具,该工具可以用于多种场景,例如在代码中格式化文本、将文本转换为 HTML 标记等。 在本文中,我们将介绍如何使用 npm 包 a...

    2 年前
  • npm 包 prometheus-plugin-memory-stats 使用教程

    在前端领域,我们一般会使用一些工具和库来提高开发效率、优化性能和监控应用状态。其中,prometheus-plugin-memory-stats 是一个非常实用的 npm 包,它可以帮助我们获取应用程...

    2 年前
  • npm 包 sync-bower 使用教程

    在前端开发中,我们通常会使用很多第三方库来快速地实现一些功能,例如:jQuery、React、Vue 等。这些库都可以通过 npm 包管理器来安装和下载,但是有一些较老的项目仍然采用 bower 包管...

    2 年前
  • npm 包 `react-image-mosaic` 使用教程

    前言 在现代 web 开发中,前端框架和库构成了 web 应用程序的基石。尤其是 React,已经成为最流行的前端框架之一。而 react-image-mosaic 是 React 中比较常用的一个图...

    2 年前
  • npm 包 react-native-easy-gridview 使用教程

    介绍 react-native-easy-gridview 是一个简单易用的 React Native 组件库,可以快速构建网格视图。它提供了丰富的配置选项,可以自由设置网格的列数、行数、行高、列宽、...

    2 年前
  • npm 包 @enjoylife/react-view-pager 使用教程

    前言 现代前端开发中,使用第三方库和工具已经成为日常工作的一部分。而 npm 包是前端工具包中极为重要的一个。近年来,React 已经成为了前端开发的热点之一,因此在使用 npm 包时,我们必须掌握 ...

    2 年前
  • npm 包 nocms-shortcuts 使用教程

    在前端开发中,我们经常会遇到构建静态网站的情况。而在构建静态网站的过程中,我们通常需要写大量的 HTML 和 CSS 代码,这样一来就会浪费很多时间和精力。为了简化这个过程,我们可以使用 npm 包 ...

    2 年前
  • npm 包 angular-islam-lib 使用教程

    介绍 angular-islam-lib 是一个基于 Angular 框架的伊斯兰教文化库,旨在提供一些方便开发者使用的伊斯兰教相关组件和服务。在使用这个 npm 包前,你需要先安装好 Angular...

    2 年前
  • npm 包 gitbook-plugin-new-flowchart2 使用教程

    简介 gitbook-plugin-new-flowchart2 是一款 GitBook 插件,提供了一个方便易用的图表编辑器,可以生成各种类型的流程图、时序图、类图等。

    2 年前
  • npm 包 nodejs-api-boilerplate 使用教程

    简介 nodejs-api-boilerplate 是一个基于 Node.js 的 API 服务模板,提供了一整套 Node.js 和 Express.js 的模块化开发模式,旨在快速搭建项目的 AP...

    2 年前

相关推荐

    暂无文章