1

我正在尝试从高度图生成网格,这很好。“高度图不同于生物群落图,也在处理它。”。

问题是沿着宽度“x轴”缝合,在那里它像四分之一的网格一样缺失,并开始重叠和倾斜。

该函数仅在开始时调用,老实说,我无法理解这一点,我一直在与其他帖子进行比较,但由于某些原因,也得到了同样的意外结果。

假设宽度和高度为300 x 300,下面是代码和一些图片:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

public int width=300;公共int高度=300;公共纹理2D rawPerlinNoiseTex;无效开始(){   //如果使用了噪波生成代码,则初始化新纹理//rawPerlinNoiseTex=新纹理2D(宽度、高度);生成网格();}void生成网格(){游戏对象meshObject=游戏对象。查找(“网格”);MeshFilter MeshFilter=空;MeshRenderer MeshRenderer=null;网格网格=空;if(meshObject==空){meshObject=新游戏对象(“网格”);meshFilter=meshObject。添加组件<网格过滤器>();meshRenderer=meshObject。添加组件<网格渲染器>();mesh=新网格();meshFilter.mesh=网格;}其他{meshFilter=meshObject。获取组件<网格过滤器>();meshRenderer=meshObject。GetComponent<网格渲染器>();mesh=meshFilter.mesh;网格。清除();}Vector3[]verts=新Vector3[宽度*高度];Vector2[]uvs=新Vector2[宽度*高度];int[]tris=新int[width*height*6];//顶点和uvsint vertIndex=0;for(int x=0;x<宽度-1;x++){for(int y=0;y<高度-1;y++){//顶点verts[vertIndex]=新矢量3(x,rawPerlinNoiseTex.GetPixelBiliner((float)x/width,(float,y/height).gyriscale*100,y);//紫外线uvs[vertIndex]=新的矢量2(x/(浮点)宽度,y/(浮动)高度);vertIndex++;}}//三角形int triIndex=0;for(int x=0;x<宽度-1;x++){for(int y=0;y<高度-1;y++){//当前顶点int索引=(x*高度)+y;int indexDown=((x+1)*高度)+y;//四边形的第一个三角形tris[triIndex]=指数;tris[triIndex+1]=指数+1;tris[triIndex+2]=向下索引;//四边形的第二个三角形tris[triIndex+3]=向下索引;tris[triIndex+4]=指数+1;tris[triIndex+5]=indexDown+1;三指数+=6;}}mesh.vertices=顶点;网格三角形=tris;mesh.uv=紫外线;网格。重新计算法线();meshRenderer.material.mainTexture=纹理;}

0

重置为默认值

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.