threejs等角度下半球投影

时间:2013-01-30 10:03:15

标签: three.js render projection

我正在尝试使用threejs进行飞机/线条/圆圈的立体摄影项目 与此网站非常相似:http://app.visiblegeology.com/stereonetApp.html

虽然作者使用了三个.js,但是他们不顾一切地混淆了javascript并且无法看到投影是如何制作的。

有关如何使用three.js呈现此内容的任何建议?我会渲染到纹理然后换到球体的底部吗?我是否应该尝试与渲染引擎接口并实际转换3d点?

谢谢!

1 个答案:

答案 0 :(得分:0)

我用于将3D矢量投影到2D平面的函数如下: 假设向量在单位球上。

function project(vector){
    vector = vector.clone();
    if(vector.z>0){vector.negate();}
    if(this.netType === 0){//Wulff Net
        vector.set(vector.x/(1-vector.z), vector.y/(1-vector.z), 0);
    }else if(this.netType  === 1){//Equal Area Net
        vector.set(vector.x*Math.sqrt(1/(1-vector.z)), vector.y*Math.sqrt(1/(1-vector.z)), 0);
    }
    return vector;
}

至于渲染,这取决于你是否想要在3D中看到立体声。如果您只对2D视图感兴趣,我建议不要使用Three.js,而是渲染到画布或SVG / VML。

(Visible Geology是用GWT编写的,所以Java,因此缩小了代码和疯狂。我已经用JavaScript重写了Stereonet)