1

我正在编写一个模拟旧显示器外观的终端模拟器(软件链接)。这是一个屏幕截图:

截屏

对于这个版本,我使用 2D 图形。我的意图是迁移到 OpenGL 以实现更高的性能并能够具有屏幕曲率,例如:

截图 2 http://www.meeho.net/blog/wp-content/uploads/Cathode.png

为了获得更高的真实感,我想单独绘制扫描线。这样,当大大放大时,它看起来像这样:

射击 3

所以我的问题是:使用 OpenGL 实现这一目标的最佳策略是什么(即,在具有高帧率的曲面上绘制这些颗粒状的闪亮光)?

4

1 回答 1

1

我应该指出,并非所有终端都有荫罩CRT(这是造成凸起的原因)。高端终端具有(相对)扁平孔格栅CRT。在另一个极端,非常便宜的终端有一些令人讨厌的滚动水平条。

我最美好的回忆是在 SONY Trinitron 终端上编程,它在水平扫描线上没有亮度问题,但像素之间的垂直间距确实非常明显。


以下是孔径格栅 CRT 的外观:

  • 不过,我还没有看到任何模拟 CRT 的着色器可以复制这一点。


对我来说,给 CRT 蒙皮的方法不止一种......平板 CRT。

无论如何,不​​要认为这是绘图灯。将基本文本绘制到 FBO 中,然后调制每个像素的亮度,并在片段着色器中应用枕形失真。

要在最终屏幕截图中实现效果,您需要的不仅仅是扫描线。您还必须模拟阴影掩模点阵,您可以使用简单的纹理来完成此操作。

于 2013-08-30T23:13:09.153 回答