Text 如何在处理P3D模式下绘制2D字体?
我正在用三维空间中的点阵列(P3D)绘制草图。我想通过将文本绘制成“屏幕上的”/2D,只使用“X,Y”参数,向其添加一个界面 当我尝试添加“文本(“!@#$%”,width/2,height/2);”时,它在3D空间中渲染Text 如何在处理P3D模式下绘制2D字体?,text,fonts,3d,processing,Text,Fonts,3d,Processing,我正在用三维空间中的点阵列(P3D)绘制草图。我想通过将文本绘制成“屏幕上的”/2D,只使用“X,Y”参数,向其添加一个界面 当我尝试添加“文本(“!@#$%”,width/2,height/2);”时,它在3D空间中渲染 可能吗?我尝试了“文本模式(屏幕)但是processing 2已经不存在了。想到的一个解决方法是创建一个与草图具有相同宽度/高度的2D PGraphic,给它一个透明的背景,在需要的地方绘制文本,然后像复制图像源数据一样将PGraphic绘制到真实草图上。这里是w我想是在处理
可能吗?我尝试了“文本模式(屏幕)但是processing 2已经不存在了。想到的一个解决方法是创建一个与草图具有相同宽度/高度的2D PGraphic,给它一个透明的背景,在需要的地方绘制文本,然后像复制图像源数据一样将PGraphic绘制到真实草图上。这里是w我想是在处理论坛上找到的 您可以使用:
- 用于3D内容的PMatrix3D
- 用普通的老方法编写2D代码
PMatrix3D baseMat;
float alpha =0;
void setup() {
size(400, 400, P3D);
// Remember the start model view matrix values
baseMat = getMatrix(baseMat);
}
void draw() {
background(40);
pushMatrix();
camera(0, 0, 400, 0, 0, 0, 0, 1, 0);
directionalLight(255, 255, 255, -100, 150, -100);
ambientLight(40, 40, 40);
// 3D drawing stuff here
rotateY(alpha);
box(100);
alpha += 0.05;
popMatrix();
// Restore the base matrix and lighting ready for 2D
this.setMatrix(baseMat);
ambientLight(255, 255, 255);
// draw 2D stuff here
rect(10, 10, 50, 10);
textSize(25);
text("voila", mouseX, mouseY);
}
“还有吗?“Processing 2已经有好几年的历史了,Processing 3目前正在公测中,准备发布。。。Processing 1.x API已经很久没有生效了=)哈哈,我刚回到它,我安装的还是1.x。不过,我会看一下Processing3,看看它是否有任何解决方案。如果你在提问的同时发布一条消息,你的运气会更好。这可能只是一个简单的草图,显示一个3D点和你试图显示的文本,所以我们可以在我们自己的机器上运行它。这是一个很好的解决方法,但我需要它是dinamic:((请注意:需要显示一些变量,等等)为什么这不起作用呢?您可以全局创建PGraphic缓冲区,比如说
PGraphic buffer
,然后在设置中通过createGraphic
以相同的尺寸创建它,然后在绘制过程中,您可以简单地更新缓冲区、作为图像绘制、下一帧更新缓冲区、作为图像绘制,只要草图运行就可以重复