选课类别:计划内与自由选修 | 教学类型:理论课 |
课程类别:本科计划内课程 | 开课单位:数学科学学院 |
课程层次:专业选修 | 学分:3.0 |
先占个坑吧,考后再补,很难不评价在科大最为有感触的“课”,或许这门课远远超过了“课”的定义。
与其说刘老师开的这门“计算机图形学”是一门课,更不如说是一个方向,一种人生。很幸运今年能选到刘老师的这门课程,毕竟这门课开课的频率也是有目共睹,上一次开课还是20年的时候。目前为止上过的所有课程中,在这门课中的收获无疑是“断档”式领先的,一门课可以从一个方向基本的知识,一直延申到前沿,就已经足以让其他课程望尘莫及。
本门课程感觉可以分为两个部分,前一部分是图形学基础知识的基本介绍,大概是十一周左右的时间;后半部分更为面向前沿,每一节课程都大体介绍了一个方向现有的工作。课程的要求无疑是非常高的,我原先并不是一个很会写代码的人,原先的代码课数值代数、数学建模、数学实验很难提的上有很大的收获(数学实验纯粹自学倒也算是一种对于能力的锻炼吧),这门课的前一部分,除了清明和劳动假期,基本上每周需要实现一个“小任务”,五个和几何相关的任务(简单的图形绘制窗口、图像变换、Poisson Editing、给定边界的极小曲面生成与参数化、ARAP系列工作)、两个和渲染相关的任务(简单的Phong光照模型、Path Tracing)、三个和动画相关的任务(Spring Mass、SPH、角色动画)。所有任务中,ARAP系列工作当时做的我比较绝望了,不过后来莫名奇妙修改了一个遍历方向就搞定了,至今感觉还是未解之谜;渲染的矩阵各种变形是容易错的,而且对于结果的影响很巨大;物理仿真部分助教写的说明文档实在是太详细了,大大简化了该部分的工作量。我在这里非常感谢我的舍友,他在这门课中给予了我非常多的帮助,包括并不限于算法的理解、代码、逻辑、一些简化的方法、C++的特性、一些快捷键等,使得原先在上这门课前从来没用过C++的我对该语言有了一些浅薄的认知。至于最后的大作业,我同样非常感谢我的队友,个人认为最终项目还是达到了较高的完整度,或许也可以继续进行下去吧,大家都对于这个项目付出了极大的努力,而在最后一个晚上,我们de一个bug到了早上七点后才睡觉,或许也是一种新奇体验。
刘老师上课是指针性的,除了用一种很高的观点去看现有的工作,并且将算法的思想和流程讲的非常清楚外,还会外加一些并不要求在这门课中直接实现的工作“指针”,于我而言目的就是提出一些思考的方向,大面积了解现在的工作,或许才可以选择一个更加感兴趣地方向深入探究吧。这在课程后半学期更是如此,讲解了现在火爆的NeRF还有3DGS系列工作,讲了所谓“卡脖子”技术的CAD/CAE问题,讲了大规模场景重建,讲了可微渲染、高质量实时渲染等等,而当今这些方向确实有无数的前辈们成绩斐然,也确实极大的造福了当今社会。
刘老师的connection毋庸置疑是独一档的,在6.10左右请了全球做的极好的几位老师来做报告,与他们的沟通让我察觉出了一种对于这个方向的无比热爱,是我心中所向往的那种学者“性情”。而暑期又请了国内外的专家开讲习班和讲座,今年请到了Minchen大神(虽然有点遗憾是线上),去年是Chenfanfu Jiang老师(他们还是师徒关系hh),每年的报告课程都是异常精彩,我去年选修了计算机图形学前沿课程,并且最终做了一篇对于数字人的综述,不过当时自己读论文感觉还是经常蒙古的,现在看起来要好了不少(所以从我自身感觉,这门课确实以一种合理的方式使得自己的能力得到了提升),在今年的报告上,确实会比去年听的好了太多,也和我自己在张老师的指导下学习了三维重建的一些工作,包括传统的SFM-MVS方法以及隐式表达、显隐结合表达等一系列方法,包括我的大作业的一部分也与重建的内容相关,因此报告中出现了水面有洞、树木噪声太大等问题我切切实实的经历过,甚至报告中的某一款软件我还申请了一个月的试用不过后来找到了国外一个软件的替代;Michen大神在报告中也确实又提及了物理仿真的一系列基本想法,这与课程中的内容是有一些重复的,因此听的时候也不是那么坐牢,这种感觉令人兴奋且是前所未有的。刘老师也将作为今年Pacific Graph的Conference Co-chairs,该会议其中的很多学者都在学术界颇负盛名……以上的种种有一种刘老师杀疯了的感觉,而目前为止感觉可能数学科学学院除了几何物理中心也再没有老师提供如此多的机会,让学生和学术界的大咖进行交流。
总而言之,非常幸运今年能够选到刘老师开设的这一门课,这里的每一节课我都听过了不下两遍,相比于20年的计算机图形学课程也有很大的改变,框架更加简练,文档更加精细,更加涉及到当今世界正在做什么,这对于与时代结合极为紧密的这一个方向自然是极为重要的。感谢三位助教的无私奉献,我在自己写项目的时候觉得框架真的是最困难的一步,配置环境等问题经常让人红温(网上开源的很多库完整的运行感觉都一点不容易。。。),我们的助教却在短时间内写出来完善的框架,并且感觉可以应用于以后的研究学习中,堪称伟大!
而最后在讨论一下关于考试的问题,考试基本上全是图形学最最基本的常识级别内容,全部来源于课堂(甚至是只有作业)提及的经典算法,如扫描线、SPH方法、Mass Spring、Path Tracing、Phong,还有一些基本的定义,OpenGL、API、shaders、齐次坐标、参数化、什么是Poisson方程、极小曲面等等,还有一些算照片大小的、C++的性质等这些基本知识……老师完全不会在所谓的“考试”中难为你,这与我今年带助教的淑芬A2课程完全不一致,期末考试的很多题都完全不应该是出现在考试中的以坑学生为目的而不是检测知识为目的的神金题,而我相信这在科大的培养中屡见不鲜。。。而在这门课中又学到了如此多的知识,让我更加坚定的从事这个方向,因此我愿称之为“科大计算方向第一神课”,乃至我目前上到的“第一神课”。这门课的优秀率绝对极高,刘老师在给分方面绝对不会让学生心寒,毕竟,这可能是我们的“热爱”啊。被教务处卡到现在才出分,也是我本科阶段最后一门需要成绩的课(如果不被迫gap了的话),算是对于本科生涯最完美的句号。
这门课应该是我上大学以来收获最多的课,当然,这门课要付出的也很多。
每一周或者两周一个编程作业,一共有五次,最后有个为期一个月的3人合作的大项目。编程量是很大的,仔细学的话编程能力能有很大提升。主要是用Qt和Vs编程,最后的大项目要用到Unity3D。
刘老师上课上的很好,不是一味地填鸭式教学,而是给我们一个基本的指引,然后让我们自己去搜索相关资料,锻炼自己寻找资源的能力。而且他是个比较有激情有活力的人,精神面貌很好。
学完这门课之后的感觉,不是“以后再也不用和它打交道了”,而是“这门课我算是入门了”。
利益相关:
几乎每个实验都认真肝了,加分项几乎都做了,总评96
课程相关:
慕名而来,果然学到了很多知识。如果想锻炼自己c++代码水平,这门课绝对值得一选。可惜的是由于疫情在家,没好好听课,只认真学了实验相关的部分,期末过ppt才发现老师上课其实讲了很多。但其实只是作业所学到的知识,已经足够去通过一个图形学相关的算法岗面试了(凭借着九次大作业成功进了字节的图形图像部门,每次面试都要讲一遍光追TAT)
实验相关:
吹爆助教!今年实验体验非常好,助教自己搭的框架(除了使用说明有点少,但问助教回复很快),很多实验只需要自己填空。比如最后一个实验光追,其实自己只需要实现光追的算法,并不需要去考虑opengl的接口。以及助教的c++规范真的强。
课程主页http://staff.ustc.edu.cn/~lgliu/Courses/ComputerGraphics_2020_spring-summer/default.htm
我自己实验 https://github.com/SqrtiZhang/CG_2020spring
实验ddl是每周一早上6:00,充分考虑了我们肝ddl的能力(就是头有点冷
考试相关:
考试比较简单,个人感觉占比比较少。当时脑子抽风了一道很简单的8分大题没写出来。
卷子主要考察定义等基础知识。比如今年考了
upd: 2024.7.19
提醒大家出分了。
对于给分不好评价,只能说“一分耕耘,一分收获”,我个人收获了满意的成绩。当然这学期同学水平普遍偏高,不可避免的可能会有不满意的成绩。
本来有很多想说的,但是话到口边,又很难组织语言。
很好的课程,很独特、很有价值的一段学习经历。
推荐计算机编程水平极高,并且愿意花时间的同学选课,我认为你不会后悔的。
有缘再见!
今天大作业展示,课程基本结束了。记录一下刘老师的寄语(大概意思,不是原句):
你们可能之后会选择图形学方向,或者很多其他的方向,但是一定要 Follow Your Heart,这样你才会有动力,而不会感到累。绝大部分的累实际是“心累”。这样你才不会焦虑,不会认为“卷”,因为你自己正在“卷”,或者说你不必需要在意竞争,只需要做你想做的。这样你可以更好的处理人际关系和家庭关系,让你的生活更加美好。我之前在(某个美国名校)碰到一个博士后,已经做了三段博士后了,就是发不出文章做不出成功,他是做代数的。我说:你既然做不好代数,为什么不去转换方向呢?他说已经晚了。博士后是一个工资很低的工作,他如果接着这样痛苦地做着博士后,没有办法做出成果,也会在家庭和人际关系等方面有更多问题。
你们到现在,能力都很强。如果一个人在某个方向有天赋,而且有能力,那么他可以在这个方面做的很成功;如果只有天赋或者只有能力,也可以做的不错。
的确看得出来老师做图形学是充满热爱的。
(可惜我还不能理解这种热爱)
欢迎评论区指正和补充。
作为计算机系的,第一次学C++竟然是在数院课程的寒假作业里,令人感叹。
作为计院同学,慕名来数院选了这门课。这门课作为编程练习来说效果很好(比计院所有课好),如果是想要了解图形学的话,跟着这门课的进度也可以快速入门。
课程总共有8个assignment,刚开始对于没基础的人来说有些艰难,不过跟上了进度后也就习惯了。ddl是早上8点,可以说充分的考虑到了同学们的能力。(麦教环境不错,可以去那边赶ddl)
最后的大作业非常开放,可以用游戏引擎做游戏,也可以用单片机做自己觉得有意思的玩意。刘老师实验室还有VR设备可以用。我们的大作业是用Unreal 4引擎做了一个游戏。在制作过程中会发现学完这门课后,理解先进的引擎用到的技术也没那么困难。另外我自己也调研过Unity 3D,没想到在另一门课上发挥了作用,所以对我来说选这门课是血赚。
课程也不是没有缺点。assignments中使用的框架没有紧跟时代,有些老库用起来非常难受,但也就是些小问题,没有什么是一晚上不能解决的,如果没解决,那就肝到早上。
这门课除了对编程水平要求很高,极高,非常高,其他方面都非常好
就是作业能不能少一点,听说今年还要比20年多两个作业😰
刘老师教课水平一流,收获很多,无奈内容太多时间太少跳过了很多内容,比如 opengl 的实验,shader 更是直接没讲。
图形学还是很有意思的,看刘老师主页上的课题都很有趣,这课的课程实验也很有趣,能够做出很漂亮的结果。印象最深的是有次作业的附加题是实现刘老师 08 年一篇文章中的算法,肝了一整天没吃饭,但最后的结果实在是漂亮,瞬间觉得这一天值了。
如果你投入时间很多的话,这课是容易拿高分的,我当时每周大概花个一晚上来写代码,最后拿了个 96。
在科大计算数学方向中收获最大的一门课,没有之一。
刘老师开的所有课都值得去听。