Math 如何使用three.js绘制自定义三维曲面?

Math 如何使用three.js绘制自定义三维曲面?,math,3d,three.js,Math,3d,Three.js,我使用什么函数/数学来绘制3d曲面?例如,如何生成z=sin(x+y)?如何计算和绘制点?我找不到任何例子。 类似这样的东西包含顶点。如果一个顶点由[x,y,z]组成,你可以通过循环所有顶点来应用你的函数 本教程是一个示例,说明如何使用着色器更快地执行相同的操作 我相信本教程是所有东西realtime 3d的一个很好的起点: 以下示例链接自three.js网站: 这两个例子都在使用我不明白。如何从一组点生成一个曲面?我想说这不是小事。不过我不知道该给什么建议。也许看看平面几何体是如何构

我使用什么函数/数学来绘制3d曲面?例如,如何生成z=sin(x+y)?如何计算和绘制点?我找不到任何例子。

类似这样的东西包含顶点。如果一个顶点由[x,y,z]组成,你可以通过循环所有顶点来应用你的函数

本教程是一个示例,说明如何使用着色器更快地执行相同的操作

我相信本教程是所有东西realtime 3d的一个很好的起点:
以下示例链接自three.js网站:


这两个例子都在使用

我不明白。如何从一组点生成一个曲面?我想说这不是小事。不过我不知道该给什么建议。也许看看平面几何体是如何构造的会有所帮助。我还要看一看obj文件,它可以让我们深入了解网格的解剖结构。为什么不先创建一个简单的平面,让它在屏幕上渲染,然后看看它的属性,并尝试更改顶点。如果你想直接进行数学运算而不进行任何建模,另一种方法就是看shadertoy,或glsl.heroku,但我想如果你不理解上面的概念,光线行进法可能有点过头了:)我投票赞成这个,因为它似乎正是作者想要的,但这个参数几何体似乎与平面没有什么不同?在函数初始化每个顶点之前,它不会创建法线,可能会节省时间和内存。可能有更快的方法可以做到这一点,但是graphulus函数是我相信用户在问题中所要求的。虽然如果你不熟悉threejs,可能需要一段时间来整理,但是这个方法非常简单。z=sin(x+y)是隐式方程f(x,y,z)=0,f(x,y,z)=z-sin(x+y)。要绘制隐式方程,需要一个marching cubes算法。请看我的博客。