如何制作输出字符串的Three.js着色器

How to make a Three.js shader that outputs a string?

本文关键字:js Three 何制作 输出 字符串      更新时间:2023-09-26

我正在用Three.js开发一个web应用程序,它可以用ASCII渲染场景,很像这里给出的例子。不过我的帧速率有问题。

我尝试了各种不同的算法来将渲染的场景转换为ASCII字符串。有些比示例慢,有些比示例快得多,但对于渲染大型场景来说太慢了,即使使用WebGL渲染器也是如此。

现在我正在考虑通过着色器将这个转换过程转移到GPU,尽管我不确定如何使Three.js着色器输出字符串。最理想的情况是,我还希望能够输入一个自定义的ASCII字符字符串用作调色板,尽管GLSL中没有字符串类型。

谢谢!:)

查看此示例

它基本上采用一个纹理,我们称之为贴图纹理,并使用每个像素作为精灵图像的另一个纹理的查找。

在您的情况下,您可以将这些平铺更改为ascii字符,并通过将其附加到帧缓冲区将3d场景渲染为贴图纹理。换句话说,

render your scene to a texture 
use that texture as a lookup into another texture of ascii characters.