three.js 中的人工智能功能

Artificial intelligence functionality in three.js

Three.JS是否具有AI(人工智能)的功能或能力?具体来说,比如说一款 FPS 游戏。我想让敌人寻找我并试图杀死我,在 three.js 有可能吗?他们有这样的功能或系统吗?

恐怕不会。 Three.js 只是一个显示 3d 内容的引擎。

Webgl

  • 创建缓冲区
  • 绑定缓冲区
  • 分配数据
  • 设置状态
  • 发出绘图调用
  • 运行 GLSL 着色器

three.js

  • 使用 WebGL 创建 3d 上下文
  • 创建 3 维对象
  • 创建场景图
  • 创建基本体,如球体、立方体、环面
  • 四处移动对象,旋转它们缩放它们
  • 测试射线、三角形、平面、球体等之间的交点
  • 创建 'materials'(而不是着色器)

javascript

  • 写算法

I want enemies to look for me and try to kill me

是的,three.js 可以做到这一点,您只需要使用三个 类 编写一个算法即可。您的敌人将是 3d 对象、投射光线、与其他对象相交等。

您将构建一个游戏引擎,您可以使用 three.js 作为该引擎中的渲染框架。渲染只是其中的一部分。想想一个 2d 射击游戏,你可以使用 2d 上下文来制作它,但你也可以通过使用 3d 上下文来增强它并使其成为 2.5d。其他一切都可以保持不变。

any webgl engine that might have it ? or is it just not a webgl thing

Unity 可能拥有您可能想到的一切。 Unity可以输出WebGL,可以说是'webgl engine'。

Bablyon.js 更像引擎。

Three Js is the best and most powerfull WebGL 3d engine that has no equal on the market , and its missing out on such an ability

Three.js 不完全是 3d 引擎。维基百科说:

Three.js is a lightweight cross-browser JavaScript library/API used to create and display animated 3D computer graphics on a Web browser. Three.js uses WebGL.

所以如果我只需要画一辆汽车,或者一个旋转的标志,我不需要他们来找我,或者试图射杀我。我只需要它们留在一个地方,然后轮换。

对于图形演示,您甚至不需要它 - 通过一些绘图指令,您可以使用非常精细的像素着色器渲染全屏四边形。三为您提供了大量选择,尤其是当您考虑所有特色示例时。

这两种方式都有效,虽然您可以随心所欲地扩展 three.js,但您也可以出于特定目的将其拆分。

如果您需要构建一个需要进行图像处理且没有“3d”图形的应用程序,您仍然可以利用 webgl 和 three.js。

您不需要任何向量、矩阵、射线、几何图形 类。 如果你没有 vector3,你可能无法保留 planeGeometry,但你会使用 bufferGeometry,并手动构建一个平面。不需要进行转换,因此不需要矩阵 类。您会使用着色器和纹理,也许还有类似 EffectsComposer 的东西。