Noob警告!...
为了避免在将纹理包裹在默认球体周围时极点处的奇点,我试图实现使用立方体作为基本几何体的标准技术。
所以这里cube wireframe我将BoxGeometry的顶点移动到封闭球体的表面,这似乎产生了一个很好的规则晶格。
然后我采用直线网格并使用' CubeMap'来应用变换。或NASA' G.Projector'将直线地图转换为Gnomic Cube地图(6个地图,每个地图各一个'面部')。当我将这些地图应用到立方体时,我不会获得经常的纬度/经度线。见这里:plain grid maps
知道我在哪里错了吗?
答案 0 :(得分:3)
啊,我发现了问题,我对球体顶点的投影是不正确的。我正在使用......
function displaceVertex(vertex) {
var x2 = (vertex.x/radius) * (vertex.x/radius);
var y2 = (vertex.y/radius) * (vertex.y/radius);
var z2 = (vertex.z/radius) * (vertex.z/radius);
vertex.x = vertex.x * Math.sqrt(1 - (y2 * 0.5) - (z2 * 0.5) + ((y2 * z2) / 3));
vertex.y = vertex.y * Math.sqrt(1 - (z2 * 0.5) - (x2 * 0.5) + ((z2 * x2) / 3));
vertex.z = vertex.z * Math.sqrt(1 - (x2 * 0.5) - (y2 * 0.5) + ((x2 * y2) / 3));
}

将顶点均匀地分布在球面上。需要的是将它们投射到表面,我已将上面的内容更改为以下内容,项目现在可以正常工作......
function displaceVertex(vertex) {
vertex.setLength(radius);
}