Javascript 生成网格

Javascript 生成网格,javascript,webgl,Javascript,Webgl,我需要一个四边形网格,这样我就可以在X和Y上有200x200个顶点和0到1的UV坐标 我不能手工编写,有没有办法生成这样的网格?您可以使用循环创建此顶点数组。简单: for (var i = 0; i < 200; i++) for (var j = 0; j < 200; j++) { // fill our array here } for(变量i=0;i

我需要一个四边形网格,这样我就可以在X和Y上有200x200个顶点和0到1的UV坐标


我不能手工编写,有没有办法生成这样的网格?

您可以使用循环创建此顶点数组。简单:

for (var i = 0; i < 200; i++)
  for (var j = 0; j < 200; j++)
  {
   // fill our array here
  }
for(变量i=0;i<200;i++)
对于(var j=0;j<200;j++)
{
//在这里填充我们的数组
}

您想要200x200个顶点还是200x200个四边形

带索引

var positions = [];
var uvs = [];
var indices = [];

var quadsAcross = 200;
var quadsDown = 200;
for (var y = 0; y <= quadsDown; ++y) {
  var v = y / quadsDown;
  for (var x = 0; x <= quadsAcross; ++x) {
    var u = x / quadsAcross;
    positions.push(u, v);
    uvs.push(u, v);
  }
}

var rowSize = (quadsAcross + 1);
for (var y = 0; y < quadsDown; ++y) {
  var rowOffset0 = (y + 0) * rowSize;
  var rowOffset1 = (y + 1) * rowSize;
  for (var x = 0; x < quadsAcross; ++x) {
    var offset0 = rowOffset0 + x;
    var offset1 = rowOffset1 + x;
    indices.push(offset0, offset0 + 1, offset1);
    indices.push(offset1, offset0 + 1, offset1 + 1);
  }
}

属性向量4位置;
属性向量2 uv;
一致mat4矩阵;
可变vec2 v_uv;
void main(){
gl_位置=矩阵*位置;
v_uv=紫外线;
}
精密中泵浮子;
可变vec2 v_uv;
void main(){
gl_-FragColor=vec4(v_-uv,0,1);
}

为什么不在一个循环中构建这些顶点?是否也可以使用@gman方法创建顶点法线?使用从噪波函数获得的单个z坐标