zl程序教程

您现在的位置是:首页 >  其他

当前栏目

「平淡无奇小天才」:两块C++代码结合ASCII码,即可实现Nvidia光线追踪技术

2023-03-14 09:34:59 时间

  

近期,有国外大神利用ASCII码,完成了Nvidia显卡才能实现的光线追踪技术,并实现了不错的光影效果。

下面是光线追踪的效果示意:

 

该项目一经过发出,在Reddit上的热度就达到了2.1K,演示视频在Youtube上的观看量也达到了3万多次。

代码结构简单,可在任何系统上运行

代码本身结构非常地简单:

项目代码地址:https://github.com/DinoZ1729/Ray

而要想在自己电脑上运行,整个过程也非常的方便:

只需要在控制台中将字体改为8,就可以实现在Windows上的运行。

如果想在Linux或者其他操作系统上运行,那么只需要加上修改几行代码的步骤就可以了。

像素级别光线透射,相关项目惹人瞩目

那看到这里,很多人都会好奇,具体实现过程是什么的呢?

作者原话是这么说的:

「I shot a ray through each pixel and then let it bounce」

意思是什么呢?

让每个像素都被光线穿过,并让光线进行了反弹。

为了进一步解释这个过程,作者还放上了两个相关视频和项目链接:

其中一个是用C++实现的「ASCII地球旋转」:

代码地址:https://github.com/DinoZ1729/Earth

另一个是「ASCII渲染四面体着色」:

着色前:

着色后:

项目地址:https://github.com/DinoZ1729/Renderer

网友反应热烈,连调侃都「精辟到位」

在项目和演示视频下的评论区,有许多网友都表示了兴趣和称赞:

也有不少网友表示「希望自己的编程课可以教这些」,还有些网友说:「这个项目激励了我继续学习C++」。

除此之外,有趣的是,不少网友开始了调侃:

「Nvidia:我们有实时光线追踪!

ASCII:你太可怜了」

「玩家:我买了一个RTX 3080用于射线追踪!

控制台 :嗯,我可以用ASCII码做这个」