处理3将文本直接写入屏幕

时间:2018-02-24 04:47:10

标签: processing

在处理中,我有一个3D场景,相机移动了很多。通常,如果我想渲染可见文本,我必须旋转文本,使其正常与摄像机位置和目标之间的向量对齐。对于我想要的东西来说,这似乎有些过分:我只想让2D文字在屏幕上显示,就像字幕一样。

我想知道是否有一种简单的方法可以做到这一点?我知道set函数允许你手动设置像素的值而不受转换矩阵的干扰,我认为应该有一种方法可以用文本来做,尽管我找不到它。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

Stack Overflow实际上并不是针对一般的“我该怎么做”这类问题而设计的。这是针对具体的“我试过X,期待Y,但得到Z而不是”类型的问题。将来,请尝试break your problem down into smaller pieces并发布MCVE来展示您所坚持的内容。

你几乎已经知道该怎么做了:

  

我知道set函数允许你手动设置像素的值而不受转换矩阵的干扰,我认为应该有一种方法可以用文本来做这个

您可以使用绘制文本的PGraphics缓冲区,然后将该缓冲区绘制到屏幕上。像这样:

PGraphics pg;

void setup(){
 size(500, 500, P3D); 
 pg = createGraphics(100, 50);
 pg.beginDraw();
 pg.background(255, 0, 0);
 pg.text("hello", 10, 20);
 pg.endDraw();
}

void draw(){
 background(128);

 pushMatrix();
 translate(mouseX, mouseY, 100);
 sphere(100);
 popMatrix();

 set(0, 0, pg);
}

text on sphere