# @adatechnology/game-fluids-three 中文文档

规范地址：https://npmcn.com/package/%40adatechnology/game-fluids-three/

版本：0\.4\.12
npm 元数据更新时间：2026-11-06T05:12:52.855Z
中文译文更新时间：2026-11-06T05:17:36.252Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40adatechnology/game-fluids-three
原文对照：https://npmcn.com/package/%40adatechnology/game-fluids-three/?lang=original
项目主页：https://github.com/Andersonfrfilho/adatechnology-game-kit#readme
源码仓库：https://github.com/Andersonfrfilho/adatechnology-game-kit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：2.1 MB，8 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：4 个
- peer 依赖：three ^0\.160\.0
- 首次发布：2026-10-23T14:04:09.265Z
- 最新版本发布：2026-11-06T05:12:52.522Z
- 近 30 天下载量：4886（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：29（近 12 个月 29 个）

## 中文简介

三.js 用于@adatechnology/game-fluids的渲染器:容器内的液体表面,尖端有滴水的溪流,从流前生长出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出.

## 安装

```sh
npm install @adatechnology/game-fluids-three
```

也可以使用：`pnpm add @adatechnology/game-fluids-three`、`yarn add @adatechnology/game-fluids-three`、`bun add @adatechnology/game-fluids-three`

## README

# @adatechnology/game-fluids- 三号机车

三.js 制造器用于 [`@adatechnology/game-fluids`](https://npmcn.com/package/%40adatechnology/game-fluids)。它只读取模拟状态,所以它精确地画出了 决定性世界说(一个具有相同状态的局域网客户端提取出相同的液体). `three` 仅用于类型中的对等依赖: 您通过您的 拥有 `THREE` 在运行时间.

它画的是什么:

-   **集装箱中的液体**:在每个被捆绑的物体内部,容器的内外形被世界-空间液体表面所剪接出,所以顶部总是 在平面上,无论什么倾斜(右倾,倒地,倒地), 每液体取出一料(颜色,不透明,从光泽取出粗糙). 蒸气泡从热水面升起.
-   **流线**: 弹道上一条线条( 音符已更新) , 其加速时会缩小, 下降会增长在前端 和末日的后遗症;薄溪是跌倒的顺序.
-   **静态**:从16个流口露出光滑的风扇(从来不是完美的圆盘),倒在平面上,上面有一根头发 (单位:千美元)`polygonOffset`以污点的常态为取向 由液体用柔软的轮圈来取锡 加上内光泽的风扇 `wetRadius` 反映 当它干燥时,环境会消退 干后标记是微弱的地垫补丁.
-   **喷出**: 集合圆液(`THREE.Points` 一个小 `ShaderMaterial`,圆形图案被绘制在碎片遮蔽器中,没有纹理.

装有标准材料,没有传输,少数抽取电话,每质量固定预算.

## 安装

```sh
pnpm add @adatechnology/game-fluids-three @adatechnology/game-fluids three
```

没有捆绑的浏览器( 全局为 `GameFluidsThree`;它捆绑了少数 `game-fluids` 帮助它,你还装入 `GameFluids` 创造世界:

```html
<script src="https://unpkg.com/three/build/three.min.js"></script>
<script src="https://unpkg.com/@adatechnology/game-fluids/dist/index.global.js"></script>
<script src="https://unpkg.com/@adatechnology/game-fluids-three/dist/index.global.js"></script>
<script>
  const fluids = GameFluids.createFluids({ seed: 1 })
  const view = GameFluidsThree.createFluidRenderer(THREE, { scene, fluids })
</script>
```

## 使用量

```ts
import * as THREE from 'three'
import { createFluids } from '@adatechnology/game-fluids'
import { createFluidRenderer } from '@adatechnology/game-fluids-three'

const fluids = createFluids({ seed: 7 })
fluids.addSurface({ id: 'floor', point: [0, 0, 0], normal: [0, 1, 0], halfSize: [10, 10], porosity: 0.05 })
fluids.addContainer(
  { capacity: 0.25, liquid: 'coffee', liters: 0.25, temperature: 90, shape: { kind: 'cylinder', radius: 0.04, height: 0.1 }, opening: 0.04 },
  { id: 'cup' },
)

const view = createFluidRenderer(THREE, { scene, fluids, quality: 'medium', envMap })
view.bindContainer('cup', cupObject, { innerOffset: [0, 0.005, 0] }) // inner bottom centre in the object's space

// every frame
const p = cupObject.localToWorld(new THREE.Vector3(0, 0.005, 0)) // world position of the inner bottom centre
fluids.setTransform('cup', [p.x, p.y, p.z], [q.x, q.y, q.z, q.w])
fluids.update(dt)
view.update(dt)
```

`innerOffset` 在约束对象的空间中,是容器形状(内底中心)来源的相抵。 给 `fluids.setTransform` 一定是那个点的世界位置和物体的世界旋转。 物体被假定具有统一的尺度.

摧毁容器的物体(例如来自 `@adatechnology/game-destruction`电话: `view.unbindContainer(id)` 财务报告和审定财务报表 `fluids.removeContainer(id)`;地上已经留下了污点,自己干.

## API 密码

`createFluidRenderer(THREE, options)` 返回 a `FluidRenderer`。 。 。 .

| 选项 |  |
| --- | --- |
| `scene` | 增加效果的地方(一) `fluid_renderer` 组) |
| `fluids` | 这个 `FluidWorld` 要绘制 |
| `quality` | `'low'`, (中文(简体) ), `'medium'` (违约)或 `'high'`: 设置网格分辨率和预算如下: |
| `envMap` | 湿地表反映的环境图(否则 `scene.environment` 如果主机设置了一个) |
| `pointScale` | 点图示的像素比例, 大约为画布高度的一半( 默认 600) |

| 方法 |  |
| --- | --- |
| `bindContainer(containerId, object3D, { innerOffset? })` | 在对象内绘制一个世界容器的液体 |
| `unbindContainer(containerId)` | 拿掉那个液体 |
| `update(dt)` | 推进视觉; 稍后调用 `fluids.update(dt)` |
| `clear()` | 删除污点、溪流和颗粒( 绑住) |
| `dispose()` | 从现场取出所有的东西 免费的几何和材料 |
| `stats()` | `{ quality, containers, streams, stains, particles, triangles, budget }` |

预算:污渍24 / 48. / 96,溪流12 / 24 / 48. 颗粒96 / 256 / 512 为低分/中分/高分. 当世界有 更多的污点比 预算,提取最新预算.

导出的类型 : `FluidRenderer`, (中文(简体) ), `FluidRendererOptions`, (中文(简体) ), `FluidRendererStats`, (中文(简体) ), `BindOptions`, (中文(简体) ), `FluidQuality`, (中文(简体) ), `ThreeLib`。 。 。 . `smoothOutline(front, subdiv)` 实值 也出口(定期用Catmull-Rom来取出污点).

## 正在运行的胶片

`createFilmManager(THREE, options)` 绘制 `@adatechnology/game-fluids` (血、旧血、大便、机油、燃料从墙上或地上流下) 宿主的表面。 阴道是流体标准的(从颜色到颜色,从梯度到平面,光泽,气泡,油和燃料等) 它在干厚的地方);它是透明的,所以宿主自己的地表显示什么是湿的。 电影留下 **接近玩家**: 最多6个网格 2×2米(160×160个细胞),仅在30米以内,在一毫秒的预算内模拟出并被脏矩上传(`gpu`: 通过 `WebGLRenderer` 这样 `copyTextureToTexture` (可使用). 超过20秒的电网 被更新的电网挤出 **烤过** 在污迹标记中 流动世界`fluids.splash` 和电影的颜色)并释放出.

```ts
const film = createFilmManager(THREE, { scene, camera, random: createFilmLcg(1), fluids, gpu: renderer })
film.launch({ fluid: 'blood', point: [0, 1.2, 0], velocity: [1, -1, 0], radius: 4 }) // a drop; the grid is made under it
film.drip({ fluid: 'fuel', point: [0, 0.9, 0], every: 0.5 })
const bridge = createFilmBridge({ fluids, manager: film, random })
// every frame: fluids.update(dt); bridge.update(dt); film.update(dt)
bridge.splat({ fluid: 'blood', point, direction, tint: { fresh: 0x8a0a0a, dry: 0x3a1c12 } }) // a wound, in the colours of an infection age
bridge.setWeather({ rain: 1 }) // the rain hook: drying stops, spread x1.5 (a no-op until game-weather drives it)
```

`surfaceAt(point)` 请发言、请墙壁和一站台的站台`layoutFromSurfaces`没有它,电影就躺在地上。 A 类 `leak` 具有 胶片从洞中滴入到它,直到溪流结束.

## 葡萄牙

伦德瑞扎多三.j `@adatechnology/game-fluids`: o líquido dentro do accidente (um vole cortado pelo plano da superfície, sempre) 收音机 : 平面平面图 平面图 平面图 {\\fn华文楷体\\fs16\\1cHE0E0E0}蒸汽 蒸汽 Só lê o estado da simulação, então é igual em lan. 中国经济网.

```ts
const view = createFluidRenderer(THREE, { scene, fluids, quality: 'medium', envMap })
view.bindContainer('copo', objetoDoCopo, { innerOffset: [0, 0.005, 0] })
// a cada frame: fluids.setTransform(...); fluids.update(dt); view.update(dt)
```

## 常见问题

### @adatechnology/game-fluids-three 是什么？

三\.js 用于@adatechnology/game-fluids的渲染器:容器内的液体表面,尖端有滴水的溪流,从流前生长出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出\.

### 如何安装 @adatechnology/game-fluids-three？

在项目目录运行 npm install @adatechnology/game-fluids-three，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：three（^0\.160\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @adatechnology/game-fluids-three 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @adatechnology/game-fluids-three 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @adatechnology/game-fluids-three 可以商用吗？

@adatechnology/game-fluids-three 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @adatechnology/game-fluids-three 的下载量有多少？

根据 npm 官方下载统计，@adatechnology/game-fluids-three 在 2026/10/05 – 2026/11/03 这 30 天内被下载 4,886 次，日均约 163 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @adatechnology/game-fluids-three 还在维护吗？

最新版本 0\.4\.12 发布于 2026/11/06（今天）；至今共发布 29 个版本，其中过去 12 个月发布了 29 个；首次发布于 2026/10/23。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

