提问者:小点点

加工-透视透明3D形状


我希望能够看穿透明的3D形状。例如,这个:

void setup() {
    size(400, 400, P3D);
}

void draw() {
    clear();
    translate(width/2, height/2, -width/2);

    stroke(255);
    fill(0, 255, 255, 100);
    box(width);

    noStroke();
    lights();
    fill(255);
    sphere(100);

}

…显示这个:

但我想要这个:

请注意,我刚刚为第二个添加了hint(DISABLE_DEPTH_TEST)。我想要一个没有这个的解决方案,因为,你知道,它禁用了深度测试。


共1个答案

匿名用户

我建议使用禁用的深度测试绘制框。但在绘制球体之前启用深度测试:

void draw() {
    clear();
    translate(width/2, height/2, -width/2);

    hint(DISABLE_DEPTH_TEST);
    stroke(255);
    fill(0, 255, 255, 100);
    box(width);

    hint(ENABLE_DEPTH_TEST);
    noStroke();
    lights();
    fill(255);
    sphere(100); 
}