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

时间:2014-04-14 21:57:24

标签: javascript opengl-es three.js webgl shader

我正在开发一个带有Three.js的Web应用程序,它以ASCII格式渲染场景,非常类似于给定here的示例。我的帧率有问题。

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

现在我正在考虑通过着色器将这个转换过程移到GPU上,虽然我不知道如何让Three.js着色器输出一个字符串。最好的我还希望能够输入一个自定义的ASCII字符串作为调色板,尽管GLSL中没有字符串类型。

谢谢! :)

1 个答案:

答案 0 :(得分:1)

请参阅this sample

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

在您的情况下,您可以将这些图块更改为ascii字符,然后将3d场景渲染到贴图纹理,方法是将其附加到帧缓冲区。换句话说,

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