Processing 处理3将文本直接写入屏幕
在处理过程中,我有一个3D场景,其中相机移动了很多。通常,如果我想渲染可见文本,我必须旋转文本,使其法线与摄影机位置和目标之间的向量对齐。对于我想要的东西来说,这似乎有些过分:我只是想在屏幕上显示2D文本,比如字幕Processing 处理3将文本直接写入屏幕,processing,Processing,在处理过程中,我有一个3D场景,其中相机移动了很多。通常,如果我想渲染可见文本,我必须旋转文本,使其法线与摄影机位置和目标之间的向量对齐。对于我想要的东西来说,这似乎有些过分:我只是想在屏幕上显示2D文本,比如字幕 我想知道有没有简单的方法?我知道set函数允许您在不受变换矩阵干扰的情况下手动设置像素值,我认为应该有一种方法可以通过文本来实现这一点,尽管我找不到它。有什么建议吗?堆栈溢出并不是为一般的“我该怎么做”类型的问题而设计的。这是针对特定的“我尝试了X,期望是Y,但得到了Z”类型的问题。
我想知道有没有简单的方法?我知道
set
函数允许您在不受变换矩阵干扰的情况下手动设置像素值,我认为应该有一种方法可以通过文本来实现这一点,尽管我找不到它。有什么建议吗?堆栈溢出并不是为一般的“我该怎么做”类型的问题而设计的。这是针对特定的“我尝试了X,期望是Y,但得到了Z”类型的问题。将来,试着发布一个展示你所坚持的东西的帖子
你几乎已经知道该怎么做了:
我知道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);
}
A展示你正在努力实现的目标可能会有所帮助。