我一直在玩弄 voxeljs ,我是 3D 编程的新手,它在 doc 中说此代码生成“球体世界”:
generate: function(x,y,z) {
return x*x+y*y+z*z <= 20*20 ? 1 : 0 // sphere world
},
这实际上是如何生成一个球体的?以我简单的理解,我认为它基本上是在3D世界中的每个“ block ”中“循环”?任何进一步的解释或指向一个好的教程的点将是一个巨大的帮助!
最佳答案
你的函数说:
If the voxel at
(x, y, z)
is part of the sphere, return1
, else0
.
作者应用了sphere equation .您的球体由以下一组体素构成:
这基本上意味着体素是球体的一部分,如果到中心 (0, 0, 0)
的距离小于半径。使用勾股定理计算距离。通过平方半径(在您的例子中是 20
),您可以将它与平方距离进行比较,而无需计算平方根。
关于javascript - 用体素生成球体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14491627/