我对three.js相当新。我一直在玩通过操纵平面的顶点来构建粗糙的地形对象。我还将其UV映射到方形纹理的图集。
我遇到了一个问题,我的灰色线条在一个方向上穿过飞机。我之前看到过类似的问题,有些人提到CanvasRenderer存在问题,overdraw: true
是合适的修复方法。我正在使用WebGL渲染器(我试过overdraw: true
但是没有任何效果)。
当我剪掉我的紫外线操作时,线条会消失。下面是我用来操作UV的代码,其中biomeTerrains[biome][#]
返回Vector2值。
for (var y = 0;y < rowLength-1;y++) {
for (var x = 0;x < rowLength-1;x++) {
var i = (x + (y * (rowLength-1))) * 2;
var biome = chunk.cells[x+','+y].biome;
geometry.faceVertexUvs[0][i] = [biomeTerrains[biome][0],biomeTerrains[biome][1],biomeTerrains[biome][3]];
geometry.faceVertexUvs[0][i+1] = [biomeTerrains[biome][1],biomeTerrains[biome][2],biomeTerrains[biome][3]];
}
}
这是生成的灰线的屏幕截图:http://i.imgur.com/r0BGKpT.png
我很感激有关处理这个问题的任何想法或建议。
答案 0 :(得分:0)
我睡着了,淋浴时我得到了解释。它不是一个神器问题,问题是我的UV坐标超出了他们想要的空间,因此线条是地图集中下一个纹理溢出的结果。我通过以小的任意量挤压UV来测试这个理论,并且线条消失了。不幸的是,这不是一个理想的解决方案,但我应该能够根据这些知识找出更准确的东西。