我正在开发一个带有Three.js的Web应用程序,它以ASCII格式渲染场景,非常类似于给定here的示例。我的帧率有问题。
我尝试过各种不同的算法将渲染的场景转换为ASCII字符串。有些比示例慢,有些比示例快,但是对于渲染大型场景来说速度太慢,即使使用WebGL渲染器也是如此。
现在我正在考虑通过着色器将这个转换过程移到GPU上,虽然我不知道如何让Three.js着色器输出一个字符串。最好的我还希望能够输入一个自定义的ASCII字符串作为调色板,尽管GLSL中没有字符串类型。
谢谢! :)
答案 0 :(得分:1)
请参阅this sample
它基本上采用纹理,让我们称之为地图纹理,并使用每个像素作为查找另一个精灵图像纹理。
在您的情况下,您可以将这些图块更改为ascii字符,然后将3d场景渲染到贴图纹理,方法是将其附加到帧缓冲区。换句话说,
render your scene to a texture
use that texture as a lookup into another texture of ascii characters.