我还要继续学习图形学吗?

是继续在学术界钻研,还是进入工业界?

元宇宙的到来,就是图形学的春天了吗?

以上,是我们常在后台收到的问题。于是,2022年8月,GAMES104课程组邀请了王希、闫令琪、胡渊鸣三位清华图形学大佬进行一次对谈。希望通过他们的回答,带你窥见更多的可能。

栏目播出后,得到了大家的喜爱。点击可收看三人对谈精华版

你们说:在他们的对话中感受到了“热情”、“纯真”和“死磕的精神”。

今天,我们将闫老师说的话整理成了完整的文字版,希望在图形学路上探索的你能从中得到收获,能记得“你的热爱”。

说话人|闫令琪

编辑|JM

本文视频来源:GAMES104番外篇

以下为谈话实录,为阅读通顺,有删减

小的时候,我特别喜欢打一款游戏叫《暗黑破坏神》。

从那个时候开始,我就说我长大了之后我要去做游戏,当时我的梦想是要做游戏开发。

那时,我们村刚通网,也是刚上BBS(CSDN 那时才刚刚火起来),我就一小孩儿,混在各种各样论坛里 。我记得我只是在论坛上多问了一下:我以后想开发游戏,我要学什么?有上古大神告诉我,要好好学计算机图形学,我记住了。

现在那位上古大神是谁我已经不记得了,如果真的记得的话,我一定好好感谢一下这位大神。

《暗黑破坏神》

我上大学之后,学了计算机,当时我还问辅导员们:我们系里面哪些老师做图形学?他们说要去找胡老师。那时,刚刚过完寒假,胡老师花了宝贵的时间接待我,把我“关”他那小小的黑黑的办公室。

他问我,实验室做这么几个方向,你要做哪一个?我没有想到,那时候我居然在决定人生方向,真的。他还告诉了我什么是真实感渲染。我说我要做的就是这个东西!我要做出来的东西看起来让它真实,然后用在游戏里!对,就是真实感渲染。他说好,那没问题,我带你去看看人吧。然后我就入了“坑”,事实证明这完全不是坑。

做这件事,是因为我一开始我就是喜欢做这个东西。你让我做别的东西我不开心,我做这个我开心。然后我读博士我也很开心。

*同学们戏称闫老师为“简单哥”。在B站,他的计算机图形学入门课程至今已突破百万播放量,是入门者的图形学“必修课”

其实有很多同学问要不要做图形学,我回答这类问题一律都用俩字来回答:好玩。对,就“爽”就完事了。

看你自己想不想做图形学,就那么简单。

如果你喜欢,又恰好能真正能做出来一点自己想做的又有影响力东西,那当然很开心了。好玩不好玩的话,其实一定程度上还取决于自己的个性,我认为它有挑战性,那就是好玩。

这事儿如果别人做不来,那如果我能做来,那就很厉害,对吧。就算做不来,我也没什么亏的。

*闫令琪曾于 2018 年因开创性的研究被授予 C.V. Ramamoorthy 杰出科研奖 —— 这是历史上首位获奖的华人。此外,他的科研成果还被直接应用于电影和游戏业,曾帮助影片《猩球崛起 3:终极之战》于 2018 年获得奥斯卡最佳视觉效果奖提名。

现在我在做科研,或者说从事科研这条道路。

其实也是想憋着一口气,我不希望看到别人一直说Rendering没东西可解了。

没东西可解,看看我是不是在解很多问题对吧?所谓有没有问题可解,在于说我是不是认为我做的这些东西,已经帮我认知到一个不可能再提高我的认知的角度了。显然是还没有的。

那么Rendering在干嘛?Rendering在试图描述人类生活的自然界的成像规律,与设备无关的成像规律。这个规律我到底是不是清楚?其实,我一点也不清楚。

我们平常做科研大家都很清楚,当我们做了一个结果时,我们要跟谁比较?我们要跟所谓 Ground Truth 比较。我反问一句, Ground Truth 是 Ground Truth吗?Path Tracing 是对的吗?Render Equation 是对的吗?

也不是。为什么?

因为最近几年我们刚刚弄出来一套在波动光学下的整个一套方向传播体系。意思就是说之前提供的这些物理的公式是极大的一种简化,那我们后来提供的这个东西到底对还是不对呢?其实做渲染很像做物理,很多规律在那里,你是要想办法去打破这些规律的。

所以现在 Rendering 这块,是不是有东西可以做的呢?那我会问这么一个问题:大家不管拿什么东西Rendering出来的结果,我告诉你那是真的,你信不信?你肯定还是不信,你觉得还是差一些对吧?只要差一些,我觉得就有东西可做。

Rendering现在 100% 已经是掉在恐怖谷( uncanny valley )里面的。我们达到了百分之八九十的结果。但是这个恐怖谷要想爬出来,大家想看到那 20% 是什么,这个事情就太难了。

比如考试,60分提高到 90 分,那都是容易的,但 90 提高到100,就太难了。所以,只要这一步大家仍然现在会觉得还不够好,那我就觉得还有问题需要被解决,那我就不用去担心自己无事可做。我现在的这个阶段,我在想怎么才能真正做出来更有影响力的一些渲染相关的算法,在短期能拓展人们的思路,并且在长期能够对工业界之后的发展走向一些帮助。

闫令琪参加SIGGRAPH2016

的“元宇宙”会是什么样子?

我从学术界可以看到现在大家都开始往“元宇宙”的概念去靠,元宇宙火不火,就看大家愿意不愿意团结到这么一个概念上。大家就都往这个方向去靠,就说明对了。但我自己理解元宇宙这个概念太大,对于图形学来说,我能理解到最高层次就是 AR没有别的了。

咱们实话实说,当概念涉及到东西太多的时候,其实往往看一个小的部分能不能够解决,能够解决,更可能会有所突破。

至少从我的角度上来说,如何让它的渲染,能够做得更好?再比如说在有限的功耗,有限的计算能力下,如何还能有一个更好的呈现?显示设备现在还一定程度上制约着“元宇宙”的发展。如何真正地能够在人们面前呈现出来栩栩如生的画面,这是很重要的一件事情。

我觉得并没能说这两年“说”元宇宙,那我们就能够”做“到元宇宙。这是两件事情,对吧?

那正因为现在有了这么一个话题,大家可以集中去思考为了实现元宇宙里面的这些东西,我们到底要做哪些事?首先一个我不想带头带式设备对吧,谁想带着那么的重那个东西有时候还要连根线。这事儿当真是要考虑用户体验的,光这一项就已经有很多问题了。

现在的“元宇宙”,对于普通玩家来说,像我这种人,我觉得其实就是无非是显示设备不一样的一种 MMORPG 。它的社交属性其实在很多游戏中间体现得应该是很清楚。基本上来说,大家就已经不在现实世界而是在另外一个世界里面能够找到认同和归属感。所以真正的元宇宙如果能做到这件事情是我认为非常好的一件事。

但是我观察了一个现象就是什么呢?

我看到了 Meta 的广告,我觉得这广告是不是走歪了,因为Meta在试图把自己的Metaverse和游戏截然分开。他就想告诉别人这东西不是游戏。可我认为这东西它首先得是个游戏,然后才能再扩展。

MeTa3D广告

我每天带一个小时的头戴设备,在里面我可以接触到不同的人,我可以有各种不同交互,拿着遥控器就是了。那我会觉得还不错,从游戏开始有什么不好,对不对?

但是他希望把自己和游戏给分开。我就觉得不对,为什么呢?游戏虽然属于娱乐,但是它一定程度上它可以起到一个非常正面的一个教育效果。就像看阿凡达、看头号玩家看到我们能够产生共情的状态。

娱乐这个事情没有大家说这么不堪。我是觉得对元宇宙来说,如果可以先立足于这个游戏这一块,我觉得挺合适的。另外,我可以说一句大实话吗?没准在未来的元宇宙里面,其实图像图形技术并不一定是非常重要的一件事情。为什么可以这么说呢?

咱们假设有一个人类的婴儿,出生就生活在元宇宙里,很像Matrix对吧?他看到的世界全部都是元宇宙给他的世界,你要是等这位婴儿以后长大了,你问他这个感受到的世界是什么样?那没准他感受到就是这个Phong模型。

人对世界的理解,那不正是这个人们接触到的“这个”世界对不对?那当然需要从一开始的元宇宙就定义一个跟现在不一样的世界。

我觉得从内容创作来说,我们到底要造出一个什么东西来?是造出的是一个新的世界,而不是说把现在的一个世界给搬过去。

但事实上,我们现在做的图形中的一些科研,其实就是要把现在的这个世界给了解明白。所以说我是觉得就这点来说,这对之后的思维还是有一点冲击的。

最后,说点题外话作为彩蛋吧,我这边有个博士生,跟我说没事会再看我的 games 101,说还能学到很多东西。给我气的(笑;)我说你看 101 能学到东西?这怎么能作为一个合格的这个我的博士?你应该告诉我,你学 101 什么也学不到才对!关键是人家又来了一句,还告诉我说 games 101 看了之后,觉得常看常新。给我气的,给我气的......

我经常说这个课程内容简单,一方面我觉得简单,那确实是简单,这不是为了给大家压力。因为那是我的视角,对吧?

有可能说我没能体会到大家对于知识的接受程度,这也是之后教学中间我需要注意(反思)的地方。我以后尽量真正把我觉得简单的东西,说给大家之后大家也能觉得简单。其实做GAMES101这门课,也并不简单。我觉得我改东西有点慢。好多次PPT我一直改,改到开始讲之前大概 5 分钟,然后赶快就开始讲。

而且每一个版本反正都要改动不少东西。每周至少投入20个小时来做这门课程的,特别是当时课程还是直播,很有压力的。不过,能把计算机图形学的知识系统地梳理给大家,大家能从中得到收获,我很开心。

本文图片素材引用:

“清华大学计算机系校友会”公众号 :《闫令琪 | 从高考状元到计算机学神,他的“论文的每一章都可自成一篇博士论文”》

机器之心 知乎:《每章都能当做一篇博士论文:闫令琪获SIGGRAPH 2019最佳博士论文奖》

关于我们

Piccolo游戏引擎社区

Piccolo社区是中国开源游戏引擎社区,由游戏引擎行业大佬、共创官、学习者共同建立。你可以在我们的社区里交流技术、互助问答、参加活动,你也可以参与Piccolo的共建,如撰写贡献代码、撰写技术文章、参与技术挑战等。

Piccolo游戏引擎

由中国游戏引擎社区Piccolo开源的一款Mini游戏引擎。采用世界-关卡-游戏对象-组件的简洁架构,便于理解游戏引擎架构思想,它不仅能有效的帮助开发者学习游戏引擎架构知识,也能帮助一线开发者实验引擎算法与第三方库、辅助个人项目快速启动。截止目前,Github点赞已突破3600+,累计下载量已超过20000+

Piccolo GitHub地址:https://github.com/BoomingTech/Piccolo/

关注我们

GAMES104课程官网

GAMES104课程视频

对谈 | “计算机学神”闫令琪:我不希望别人说Rendering已经没东西可解了相关推荐

  1. 计算机图形学(闫令琪博士课程答疑)-Rasterization(triangle)(一)

    课程链接 光栅化阶段: 首先我们确定一个我们要输出的是什么样的,就是设置一个宽高比 例如什么4:3   16:10等,就好像你买个电视他的宽高比一样,输出规格先固定 定义两个概念:垂直可视角度,长宽比 ...

  2. GAMES101-现代计算机图形学-闫令琪 作业2 反走样 antialiasing 抗锯齿

    文章目录 简介 MSAA问题 1.黑边情况1 2.黑边情况2 3.灰边情况 SSAA 总结 MSAA SSAA 最后 参考 简介 本文章主要内容为作业二的最后一个题目:反走样的处理.本文使用了两种反走 ...

  3. GAMES101-现代计算机图形学入门-闫令琪——Lecture 05 Rasterization 1 (Triangles)

    GAMES101-现代计算机图形学入门-闫令琪--Lecture 05 Rasterization 1 (Triangles) 目录 GAMES101-现代计算机图形学入门-闫令琪--Lecture ...

  4. GAMES101-现代计算机图形学入门-闫令琪 - lecture13 光线追踪1(Ray Tracing 1 - Whitted-Style Ray Tracing) - 课后笔记

    光线追踪1 (Ray Tracing 1 - Whitted-Style Ray Tracing) 课程一共分为四个大的板块,目前已经学习了光栅化和几何,可以实现图1和2的效果,下面要来学习第三个大的 ...

  5. GAMES101-现代计算机图形学入门-闫令琪 - lecture15 光线追踪3 - 辐射度量学、渲染方程(Ray Tracing 3) - 课后笔记

    光线追踪3 - 辐射度量学.渲染方程和全局光照 内容: 辐射度量学 光线传输(Light transport) 反射方程(The reflection equation) 渲染方程(The rende ...

  6. GAMES101-现代计算机图形学入门-闫令琪 - lecture9 着色3(Shading 3) - 课后笔记

    着色3(Shading 3) 重心坐标 纹理查询 纹理应用 插值 - 重心坐标 (Barycentric Coordinates) 为什么要插值? 能够获得三角形三个固定顶点的属性,但是不知道三角形内 ...

  7. GAMES101-现代计算机图形学入门-闫令琪 - lecture14 光线追踪2 - 加速结构(Ray Tracing 2 - Acceleration) - 课后笔记

    光线追踪2 - 加速结构(Ray Tracing 2 - Acceleration) 对AABB结构优化来加速光线追踪的速度 均匀网格(Uniform grids) 空间划分(Spatial part ...

  8. GAMES101-现代计算机图形学入门-闫令琪——Lecture 19 Cameras and Lenses 学习笔记

    Lecture 19 Cameras and Lenses 一.Camera 1.Pinhole Image Formation 最早的相机是从小孔成像开始的. 2.Important Parts ( ...

  9. 闫令琪:Games101 现代计算机图形学-光线追踪(三):渲染方程和路径追踪path ray tracing 作业Assignment07解析

    文章目录 0 whitted光线追踪的局限 1 辐射度量学 1.1 光线的表示 Radiance 1.2 物体表面上一个点的亮度 Irradiance 1.3 BRDF(Bidirectional R ...

最新文章

  1. SRE工程师到底是做什么的?
  2. php读取html文件(或php文件)的方法
  3. nyoj1306海拔
  4. 单线程写多线程读安全的结构体
  5. Kubernetes (1.6) 中的存储类及其动态供给
  6. 萤火虫小程序_“萤火虫课堂”开课了
  7. Java程序崩溃原因分析:错误日志分析及解决(Cannot allocate memory)
  8. Servlet学习笔记
  9. 【dgl学习】dgl.canonical_etypes函数解析
  10. 思维导图、流程图制作工具ProcessOn的使用
  11. DB2 PC服务器本地磁盘集群部署模式简介
  12. Direct Show学习方法
  13. 射频day2:Zc,Zin;反射系数,驻波比
  14. 神仙趋势,运筹帷幄,通达信公式
  15. git 将主分支分发到其他分支
  16. 打包bat成exe,双击运行不显示dos窗口,exe不报毒
  17. C语言文本文件实现局部修改
  18. Android小例子--实现微信界面
  19. [报表篇] (6)设置固定合计栏
  20. dell笔记本计算机打不开,戴尔笔记本电脑打不开怎么处理

热门文章

  1. pytorch点乘高维矩阵乘法
  2. python泰波那契序列(leetcode)
  3. SWA(随机权重平均)——一种全新的模型优化方法
  4. 【机器学习的Tricks】随机权值平均优化器swa
  5. Dynamics CRM FORM脚本库加载本地脚本
  6. SQL查询每个站点消费金额最高的人
  7. PL/SQL Developer 注册机+汉化包+用户指南
  8. 高通平台蓝牙-- clean up btm properly
  9. 脑与认知科学1 脑的基本结构上
  10. 虚拟机服务器经典应用配置方案(一)