还记得上次那个用ASCII码实现光线追踪效果的国外小哥吗?
当时这个项目一经发出,在Reddit上的热度就达到了2.1K,演示视频在Youtube上的观看量也达到了3万多次。
不过我们可以看到,这个效果还是比较粗糙的,纹理也不够细致。
光线跟踪(Ray Tracing)是一个在二维(2D)屏幕上呈现三维(3D)图像的方法。它可以实现更为逼真的阴影和反射效果,同时还可以大大改善半透明度和散射,带来相似于人眼所看到的更为真实场景效果。
光线追踪原理
最近,这位小哥再次发布了改进版的光追效果!
本次的改进主要在于阴影部分的处理和并行计算的方面:
可以看出,改进后的阴影层次更加分明,甚至球体表面反射的影像也更加的清晰。
完整版光追效果的视频如下:
项目地址:
https://github.com/DinoZ1729/Ray-2
ASCII码实现其他效果
从小哥的Github中可以看到,他不仅仅使用ASCII码实现了光线追踪,甚至还有星系、地球等其他效果。
比如,模拟两个星系之间的碰撞:
如果想在自己的电脑上运行,整个过程也非常的方便,只需要在控制台中将字体改为8,就可以实现在Windows上的运行;如果想在Linux或者其他操作系统上运行,那么只需要加上修改几行代码的步骤就可以了。
实现流体动力学效果
除了这位外国小哥,我们还在Youtube上看到了一些其他用ASCII码实现的效果,都十分的有创意。
比如这个用ASCII码实现流体力学(Fluid Dynamics)效果的展示:
波浪
倾倒
甚至还有彩色的效果:
未来这位小哥可能会推出教程,感兴趣的同学敬请期待!
参考链接:
https://www.youtube.com/watch?v=QMYfkOtYYlg&feature=emb_logo