代码之家  ›  专栏  ›  技术社区  ›  Rostan

处理-透明三维形状

  •  3
  • Rostan  · 技术社区  · 7 年前

    我想能够看到透明的三维形状。 例如,这:

    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);
    
    }
    

    …显示:

    screenshot1

    但我想要这个:

    enter image description here

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Rabbid76    7 年前

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

    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); 
    }
    

    preview