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

article/2025/11/10 16:51:44

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

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

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

以上,是我们常在后台收到的问题。于是,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课程视频


http://chatgpt.dhexx.cn/article/6oP0tJje.shtml

相关文章

Unity 之 Scriptable Objects 更直观的序列化

在日常开发中总会在Inspector面板中填写一些序列化信息,如:名称、血量、或者秘钥序列号等(图一)。但看似方便,还是有些缺点的,例如填写的序列化信息不能共享,如果在prefab上对应的脚本丢失&…

Unity Shader入门精要学习笔记 - 第17章 Unity的表面着色器探秘

转自 冯乐乐的《Unity Shader 入门精要》 2010年的Unity 3 中,Surface Shader 出现了。 表面着色器的一个例子。 我们先做如下准备工作。 1)新建一个场景,去掉天空盒子 2)新建一个材质,新建一个Shader&#xff0c…

从图形渲染管线谈游戏性能优化

从图形渲染管线谈性能优化 最近做一个3D场景类项目,其中涉及到各种建筑模型、植物模型、地形等等。画面效果还不错;可是运行起来,那性能啊,没得玩。索性尝试了各种优化手段,这里简单和大家分享一下。当然,在…

《Unity Shader入门精要》笔记01 前言

《Unity Shader入门精要》笔记01 前言 ——本系列是基于人民邮电出版社《Unity Shader入门精要》(冯乐乐著 )的自学Unity Shader笔记,如果您发现了本文的纰漏,还望不吝指正。 写在前边 本书旨在从基础开始,帮助读者逐…

unity学习-shader(一)

渲染流水线 1 CPU流水线2 GPU流水线2.1 顶点着色器2.2 剪裁2.3 屏幕映射2.4 三角形设置2.5 三角形遍历2.6 片元着色器2.7 逐片元操作 应用阶段 需要准备好场景数据,比如摄像机、模型、光源等。需要再这里做粗粒度剔除(culling)工作&#xff0…

Unity Shader入门精要--第4 章 学习Shader 所需的数学基础:矩阵

Unity系列文章目录 文章目录 Unity系列文章目录前言4.4.3 矩阵运算4.4.4 特殊的矩阵2.单位矩阵 参考 前言 不幸的是,没有人能告诉你母体(matrix)究竟是什么。你需要自己去发现它。 —电影《黑客帝国》(英文名&#xf…

【转】《Unity Shader入门精要》冯乐乐著 书中彩图

为方便个人手机学习时候查阅,从网上转来这些彩图。 如属过当行为,联系本人删除。 勘错表 http://candycat1992.github.io/unity_shaders_book/unity_shaders_book_corrigenda.html 转自:http://candycat1992.github.io/unity_shaders_book/unity_shaders_book_image…

【转】《Unity Shader入门精要》冯乐乐 随书彩图

绕了好多圈子终于还是沉下心来好好看这本书了… 以下是原项目GitHub中分享的随书彩图 学习的时候看到色彩丰富的东西会心情更好咯 原项目GitHub链接 前言 第2章 渲染流水线 图2.1 真实生活中的流水线 图2.2 渲染流水线中的三个概念阶段 图2.3 渲染所需的数据&#xff08…

《Unity Shader入门精要》冯乐乐著 书中彩图

为方便个人手机学习时候查阅,从网上转来这些彩图,然后整合所有资料。 如属过当行为,联系本人删除。 勘错表 http://candycat1992.github.io/unity_shaders_book/unity_shaders_book_corrigenda.html 前言 第2章 渲染流水线 图2.1 真实生活中的流水线…

冯乐乐之二 shader的数学

冯乐乐目录 第2章渲染流水线介绍 第三章 Unity shader基础 基础shaderLab语言,shader结构,属性properties,主角SubShader,备胎Fallback。 shader三大类型: Unity宠儿表面着色器,聪明boy顶点片元着色器…

各大浏览器清除缓存(cache)详细步骤

1. Firefox 1.1 选择“Options”: 1.2 选择“Advanced”->“Network”->“Cached Web Content”,点击“Clear Now”: 2. Chrome 2.1 选择“Settings”: 2.2 点击页面底部“Show advanced settings”: 2.3 选择…

浏览器如何清除缓存教程

打开浏览器—设置—隐私设置—清除浏览器数据

清除浏览器的缓存

第一种方法 在浏览器界面按F12之后,再选择Network,选中Disable cache, 然后刷新(这里有个玄学的问题就是即使你已经选中了Disable cache, 也需要打开network这个页面再刷新才有效, 亲测有效, 但是我也不知道为什么) 第二种方法 在浏览器界面直接Ctrl Shift R 比较方便,但…

Edge浏览器如何清除缓存

浏览器在使用过程中会产生大量的缓存,Edge浏览器如何清理缓存?下面是Edge浏览器清理缓存的操作步骤。 1.双击Edge图标打开Edge浏览器。 2.单击右Edge浏览器上角的“更多操作”。 3.弹出菜单,选择“设置”。 4.选择单击“选择要清除的内容”…

清除缓存?(浏览器)

清除缓存 清空浏览器历史记录 **浏览器缓存:**浏览器将用户请求过的静态资源,存储到电脑本地磁盘中,当浏览器再次访问时,就可以直接从本地加载,不需要再去服务端请求了。 好处:减少了服务器的负担&#x…

Chrome清理网页缓存

F12 打开开发者工具(或者直接右键→“检查”),此时右键点击“刷新”按钮: 点击“清空缓存并硬性重新加载即可”。

如何查看Chrome浏览器的页面缓存内容【详细教程】

如何查看浏览器页面缓存内容——代码&控制台 知识调用前言引入控制台输入代码查看在控制台application查看 知识调用 文章可能需要用到的知识🔥🔥🔥浏览器缓存有哪些(通用缓存有哪些) 前言引入 浏览器有多种缓存…

【浏览器】浏览器缓存

一 浏览器缓存机制 浏览器在每次发生请求时,先在在浏览器缓存中查找该请求的结果和缓存标识,并且每次收到请求结果均会把请求结果和缓存标识保存在浏览器缓存中。 总体脑图:文中脑图及流程图资源 浏览器缓存策略分类 缓存策略的分类&…

chrome浏览器清除缓存

场景 :更新页面后可在无痕浏览器中看到更新内容,无法直接打开浏览器看更新内容 方法1:使用无痕浏览器 浏览器右上角-打开新的无痕式窗口 方法2:右键打开控制台 - Application - 找到左侧store - clear site data 方法3&#xff1…

清除浏览器缓存(js、css等)

有时候写web项目,改了js或者css文件,但是浏览器就是不刷新,就很头疼o(╥﹏╥)o。那是因为浏览器还有缓存存在的原因,下面来看如何清除缓存。 1.找到目标网页,鼠标右击,点击检查;或者CtrlShifti&…