在处理中,我有一个3D场景,相机移动了很多。通常,如果我想渲染可见文本,我必须旋转文本,使其正常与摄像机位置和目标之间的向量对齐。对于我想要的东西来说,这似乎有些过分:我只想让2D文字在屏幕上显示,就像字幕一样。
我想知道是否有一种简单的方法可以做到这一点?我知道set
函数允许你手动设置像素的值而不受转换矩阵的干扰,我认为应该有一种方法可以用文本来做,尽管我找不到它。有什么建议吗?
答案 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);
}