我想使用 P3D 渲染器通过 PGraphics 实例渲染基本的 3D 形状,而无需任何锯齿/平滑,但 noSmooth() 似乎不起作用。
在 OF 我记得打电话给setTextureMinMagFilter(GL_NEAREST,GL_NEAREST);
在纹理上。
在处理中相当于什么?
我尝试使用PGL:
PGL.TEXTURE_MIN_FILTER = PGL.NEAREST;
PGL.TEXTURE_MAG_FILTER = PGL.NEAREST;
但结果我得到了黑色图像。
如果我评论PGL.TEXTURE_MIN_FILTER = PGL.NEAREST;
我可以看到渲染,但它是插值的,不清晰。
这是一个基本的测试草图,其中包含我尝试过的一些内容:
PGraphics buffer;
PGraphicsOpenGL pgl;
void setup() {
size(320, 240, P3D);
noSmooth();
//hint(DISABLE_TEXTURE_MIPMAPS);
//((PGraphicsOpenGL)g).textureSampling(0);
//PGL pgl = beginPGL();
//PGL.TEXTURE_MIN_FILTER = PGL.NEAREST;
//PGL.TEXTURE_MAG_FILTER = PGL.NEAREST;
//endPGL();
buffer=createGraphics(width/8, height/8, P3D);
buffer.noSmooth();
buffer.beginDraw();
//buffer.hint(DISABLE_TEXTURE_MIPMAPS);
//((PGraphicsOpenGL)buffer).textureSampling(0);
PGL bpgl = buffer.beginPGL();
//PGL.TEXTURE_MIN_FILTER = PGL.NEAREST;//commenting this back in results in a blank buffer
PGL.TEXTURE_MAG_FILTER = PGL.NEAREST;
buffer.endPGL();
buffer.background(0);
buffer.stroke(255);
buffer.line(0, 0, buffer.width, buffer.height);
buffer.endDraw();
}
void draw() {
image(buffer, 0, 0, width, height);
}
(我也曾发布在处理论坛上,但到目前为止还没有运气)