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 的东西。
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 的东西。