我一直在尝试将此Javascript code转换为C# (Unity3d) script。如果有帮助的话,它是朴素表面网explained here的实现。
我的翻译C#脚本编译没有错误/警告,但结果是一个破碎的(但可识别的)网格:
(如果你已经不知道,输入体素只是单纯的噪音。)
我真的很想让这个工作,但我不熟悉Javascript。 能够熟悉两种语言的人能告诉我我错过了什么吗?谢谢。
答案 0 :(得分:0)
Unity的网格会收到一个三角形列表 但是,Javascript代码似乎使用四边形列表 你应该将一个正方形分成两个三角形。
start_msg
你的三维数组工具有问题...
单个数组的原始Javascript代码工作正常。
答案 1 :(得分:0)
解决。我只是误译了Javascript代码的第87行。
原件:
for(x[2]=0; x[2]<dims[2]-1; ++x[2], n+=dims[0], buf_no ^= 1, R[2]=-R[2]) {
我的错误翻译:
for (pos[2] = 0; pos[2] < depth - 1; pos[2]++, bufferNumber ^= 1, R[2] = -R[2] )
更正:
for (pos[2] = 0; pos[2] < depth - 1; n += width, bufferNumber ^= 1, R[2] = -R[2] )
基本上是一个错字。对不起。