如果你不懂什么叫渲染,这个链接中答主miccall的回答非常生动易懂, 介绍了关于从渲染到光线追踪的一系列基础概念。
单缓冲
由于每显示一帧图像都需要擦除屏幕,会导致闪屏.

双缓冲

- 显示器持续显示 前台缓冲区 的内容。
- 程序在 后台缓冲区 中完成一整帧画面的所有绘制工作(擦除、画图等)。
- 当后台缓冲区中的新一帧画面完全准备好后,执行一次 “交换” (Swap) 操作。
- “交换”后,后台缓冲区变为新的前台缓冲区,旧的前台缓冲区则变为新的后台缓冲区,等待下一帧的绘制。
这个“交换”操作通常非常快(在硬件层面往往只是交换一下指针),因此显示器永远不会看到一幅正在绘制的、不完整的图像。这就从根本上消除了闪烁和撕裂。
实现
要实现双缓冲需要调用几个Win32 API
CreateConsoleScreenBufferSetConsoleCursorInfoSetConsoleActiveScreenBufferGetConsoleScreenBufferInfoReadConsoleOutputWriteConsoleOutputWriteConsoleOutputCharacterW
具体实现可以看这里