今天没吃药 感觉自己萌萌哒~~

链接:https://www.fylstudio.online/2021/02/13/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF]%E7%BE%8E%E6%9C%AF%E5%B7%A5%E4%BD%9C%E8%80%85%E5%A6%82%E4%BD%95%E7%82%B9%E4%BA%AETA%E7%9A%84%E6%8A%80%E6%9C%AF%EF%BC%88Technical%20Artist%20%EF%BC%89%E6%8A%80%E8%83%BD%E6%A0%91%EF%BC%9F/

[学习路线]美术工作者如何点亮TA的技术(Technical Artist )技能树?

作者:大菜鸟
链接:https://www.zhihu.com/question/408549502/answer/1362139266
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1
2
3
4
5
问题:

[美术工作者如何点亮TA的技术(Technical )技能树?]()

个人背景:非计算机科班,在影视行业中制作三年houdini离线特效,后转入引擎制作特效两年。许久以前的作品连接:[https://www.bilibili.com/video/BV1ei4y1t7mN](https://link.zhihu.com/?target=https%3A//www.bilibili.com/video/BV1ei4y1t7mN),最近写的一些文章。[狸猫居zhuanlan.zhihu.com![图标](https://pic4.zhimg.com/4b70deef7_ipico.jpg)](https://zhuanlan.zhihu.com/c_1165301835593723904)目前点亮技能树:houdini、unreal的基础操作。一点基础的计算机图形学原理,相关的数学基础(代数,线性代数,积分)。c++ prim中学会变量,函数,类。Hlsl这类shader语言在引擎中的简单使用。困惑的地方:1. 花了一些时间从头学数学基础,但是还是不能求解渲染方程/模拟方程。也许是看论文不认真不知道那些字母对应的参数对象是谁?学会了做积分极限那些运算但是套不上公式来求解,只有对于一些简单的方程能理解并且复现出来(Gerstner Waves),或者看别人推导的过程来抄。2. 看了c++prim这本书的前面一小部分,能把一些简单的代码做数值运算这些在软件中使用上写一些shader效果的计算。但是更复杂的开发ue软件里面那些代码(所有的…除了计算部分,其他的那些类啊啥的都看不懂他们的意义)就完全不能理解他们的功能和套路。不理解如何去写程序。现在感觉对于技术方面的东西缺少了编译代码的能力,还有数学理解那些公式的能力,这方面(数学和编程)如何能完善呢?自己学习都学得非常的浅薄。目标是想能有足够的技术基础,实现自己看到想到的美术效果的ta。请求各位大大不吝赐教!

谢邀。我的回答会有很多主观因素,并且跟“一般的标准答案”差别可能有点多,不一定对,仅提供一个思考角度;说错了望斧正阅读过程中有任何不适,建议即刻关闭网页保存心态。我没有任何恶意,只是观点角度比较奇特,你们多半不喜欢看,提前跟大家说一声对不起。而且回答一不小心又写得有点长,我不是故意的,占用了大家的时间,sorry。

中间还有点跑题,主要是觉得问题本身暴露的问题比较重要,我先花了比较多的篇幅描述了为什么我觉得题主尝试学习的方向可能不太对。并给出了我觉得或许比较合理的建议。

后面的段落是有认真回答问题本身的,想看推荐资料的可以直接翻到后面。

写完发现写了12个小时,一万三千多字。不知道这样是不是有点不正常?


感觉这个问题本身还是不够成立,TA的技能树理论上是点不完的。方向太多了,不知道你具体想走的是哪条路,是动画、还是绑定、还是特效、还是声音、还是程序化生成、还是灯光、还是偏material的材质,还是偏shader的材质,技能点都差异巨大。建议补充。

但看问题描述,好像是偏shader方向。假设是吧,尝试回答一下。

必备技能点HLSL以及美术效果实现能力

哪怕是shader方向,这个问题也挺难回答的。我个人觉得,TA没什么固定的技能树,唯一一个必须的,可能是HLSL(以及相应的数学工具,语言和使用相对简单,数学和数学思想反而难很多)这个技能点没点满的话,材质肯定做不深入,是一个必备技能点,并且要点满。

HLSL非常简单,门槛相当低,很快就能掌握,所以很多人觉得,我会了,可以了。然而这个会了,却没什么太大意义。

因为TA这个工种,一半T一半A,T是手段,A是目的。掌握技术知识固然重要,但比这更重要的是如何如鱼得水地使用这些技术,实现自己想要,或者团队需求的美术效果

所以,HLSL这种工具很简单,但怎么用这些简单的工具,做出想要的效果,是重中之重。这里就涉及到非常多的经验积累了,基本上要实战个几年,才能接近如鱼得水——市面上现用的效果,只要有充足资料,就可以尽力复现;没有存在过的新需求,也可以很快把握中心思想,提炼出技术点,逐步攻克,尝试实现。

经验积累的话,可以通过大量去造轮子,把市面上常用工具里的常用效果都实现一遍。

比如说,简单的,像PS里的各种图像混合算法,曲线色阶,色相位饱和度,vibrance,色彩平衡,通道混合器;锐化、高反差保留、高斯模糊;浮雕效果等等这些东西先抄一遍。

我知道有人看到这里已经嗤之以鼻了,因为这些东西都太简单了,大佬们看不上,都是雕虫小技。

但我其实这里举的例子,不是随便举的。专门拎出来的这一批技术点,后面包含的东西还蛮重要的:

像各种图像混合算法,曲线色阶,色相位饱和度,背后包含了对色彩的基本理解、色彩的数学表达方式,RGB色彩空间到HSV 、LAB色彩空间的数学转换方式,以及为什么需要这么多种色彩空间,都是为了解决什么问题,我的项目中是否在这些地方也可以做相应的提升等等。

还有为什么以前大家喜欢用saturation调饱和度,后来为什么又多了vibrance这种也是调饱和度的工具,优势在哪,解决了什么问题。而大部分DCC软件和游戏引擎都默认没有vibrance,而很多偏后期的软件都慢慢开始加入了vibrance,是否我的项目也可以因此得到提升?

为什么高反差保留的结果用叠加(overlay)模式叠加在原图片上,会起到锐化的作用,锐化的本质是什么?高反差保留(high pass)在本质上又是个什么东西,用的什么算法? 这一套实现的过程中,你会发现,你需要额外的很多知识点——比如图像处理基础、卷积、图像的频域图、傅里叶变换基础等等,会让你多一个看世界的角度。很多习以为常的东西,可能都能当成信号来理解,并且转换到频域下做很多正常人类思维很难理解的操作。

浮雕映射本质上就是二维距离场,UE4一个很牛逼的一个功能就是用mesh distance field做的那一套东西,DFshadow、DFAO、DFGI,以及自己拿距离场信息在shader层面,以及在niagara粒子系统里面能发挥巨量的创造力。

这些仅仅是在复现PS的一些基础功能的时候,就会涉及到的知识点,只要人有足够的好奇心,多问一问,为什么这么做,这要解决什么问题,挖出来的,背后都是一套复杂的知识系统。

通用外语技能点——美术黑话翻译四级

而这些基础知识,是能直接提升制作效果能力的。比如说,大家应该都经历过、或者围观过一些美术朋友用PS工具的一个习惯——把两个图层混合的时候,用滚轮把混合模式遍历一遍,选出自己觉得最好的效果。而如果掌握了背后的原理的话,知道每种混合具体是什么计算,一开始就可以脑补出来混合出的结果啥样,那就直接选自己想要的混合模式就好了,不需要去猜;并且在有独特需求的时候,自己设计满足需求的混合模式。以此来快速高效地实现项目需求。

这个例子也是举的很基础,但背后包含的逻辑却很重要——TA可以理解工具的本质算法,因此能够比美术更高效地实现效果,并且可以自己造工具实现美术做不了的效果;而这一点建立的前提是,TA能够很准确地get美术需求,并且把美术需求转换成具体技术点。

而这种能力,是很多牛逼的技术大佬所不具备的(也不是一概而论,只是说大概率上专精做程序的人不爱点这方面的技能点),他们就听不懂美术们道上讲的“黑话”——什么,

这个渲染画面的体积感不对、画面太平了(一般都是灯光出了问题,灯光方向和摄像机观察方向过于一致或者正好相反,阴影全在物体背后被挡住,或者照明全在物体背后被挡住)

画面太飘了(阴影算法以及AO不够准确导致物体看上去像是浮空)

画面太脏了(暗部占比较多,颜色高频过多,颜色色相本身不和谐)

画面太噪了(画面高频信息过多,往往指物件摆放太多小东西,贴图上细节东西过多,需要模糊,或者抠掉一部分细碎的画面元素)

画面太干了(材质的roughness或者灯光系统有问题,出不来合适的高光)

画面太油了(材质的roughness或者灯光系统有问题,高光范围过于聚合)

这个东西在画面里面放不进去(色相、明度和周围环境差异相对大了一点,往往数值上可能只需要微调0.1不到)

材质金属感太强了(一般人现在不会犯metalness的问题,所以指的是roughness值过低,高光太锐)

材质塑料感太强了(roughness值过高,高光太散)

材质要湿一点(降低roughness值,降低diffuse值)

太软了、太肉了(模型上指结构处理smooth太多了,该有的结构被平滑;材质或者贴图上指mask的对比度不够高)

太硬了(与上面相反,动态效果上这个描述也很多,一般指做的材质运动、粒子运动等等,缺乏淡入淡出,用smoothstep代替一次函数;然而项目中的很多东西往往不满足smoothstep的使用条件,可能需要自己想适合的数学公式,或者用几个特征点拟合出合适的函数)

以上都还是比较基本的,美术黑话四级基本都能准确把握。更牛逼的是跟你说不够高大上、不够金碧辉煌、不够朋克、不够绚烂、不够华丽、不够感动、画面太廉价、没有生命、没有呼吸感

这种语言就因人而异了,只能具体细聊下去才能明白是啥意思。

而能够听懂美术黑话,可能是TA的一个重要的外语技能点了吧。并且,能翻译美术黑话,说明具有美术思维,才算得上有辨别美丑的能力(程序员真的会跟你说,功能是这个功能,效果好不好我不知道,我看不出来),这是TA能自己独立做技术原型,而不需要太依赖主美的基础了吧。

美术解构能力与建筑类型学

听懂美术黑话之后,还需要把这些内容,解构成程序能理解的技术语言进行沟通。或者就算不需要程序介入,自己独立去实现的时候,也还是要把抽象的内容解构成非常具体的可执行或可实现的技术点。就有点像我上文的美术黑话翻译一样,对应到具体的技术点上,就不存在歧义,也可以被不懂美术的同事执行了。

不过这些例子是非常简单的例子,往往工作里还会面临大量极难拆分解构成技术点的抽象效果。比如我以前写过的一段思考,很好地说明了这个意思。

imgimg

当你做的项目对写实有很高的要求的时候,你必然会面临这种问题——去分析一个东西,到底怎么才能做得像。不管模型、贴图、材质,还是特效动画等等。虽然现在模型贴图都有扫描,动画有动捕,特效还没办法,做得像真的是个相当难的技术活。

另外,用这些扫描的动捕的数据,虽然能直接解决项目大部分需求,但也有不能解决的时候。而且去思考一个物体为什么让你感觉就是一个这样的物体,而不是另外一个东西,你的感觉是因为什么东西产生的,是某一种形状?还是一种颜色?还是材质上的高光?还是物体之间的相对关系? 这种思考是一件特别有意思的事情。

并且是TA这个工种在工作需求面前很可能被迫必须去思考的问题。

那个时候我已经在工作过程中感受到自己美术水平限制了自己的制作能力了,我当时觉得可能还要再去提升一些很本质的美术能力,但同时又担心这种提升的效率不够高。毕竟学的东西多了以后,总觉得抓住本质才是最高效的学习方法,而美术领域,对这种本质的探讨资料似乎很难找到。大家似乎都是干就完事儿了,也没太考虑这种形而上的问题。

后来机缘巧合之下,在跟一些建筑圈的朋友们交流的过程中,他们透露了非常关键的一个信息——他们当时在做一个建筑,里面有很多书架,然后书架上放满了书。太多了不可能手摆,只能用程序化生成的方式去解决,那么就在houdini里面搞了,生成当然是很简单的,随便搞点位置随机再加些约束条件可能也就出来了。但他们要求比较高,觉得这样的排布出来的不够自然,不真实;然后他们分享了他们一直改进算法的过程,把很程序化的排布感慢慢降低,变得越来越自然,越来越像图书馆里经常被翻看借阅的书籍排布——有的地方排的紧,很整齐,有的地方比较散乱,还有横着躺到的,架在别的书上面的;每个格子里的书有自己的一套相互关系和规律,格子与格子之间的书的整体又有一套相互关系和规律,一个架子上全部书的整体和另一个架子上全部书的整体,又有一套相互关系和规律。

就这么简单的一个东西,大部分人可能觉得搞点随机就完事儿了的东西。真的想要做到真正逼近真实世界,里面的学问太大了。

听完我惊呼太牛逼了。跟我苦苦思考的问题,在本质上有不谋而合之处。

后面我私下找他们交流,他们给我说了一个很关键的点——这有个研究方向的,名字叫类型学

后来我自己去做了一些这方面的学习,发现真就有研究这种东西的学科啊!虽然还是有点玄妙,但好歹有科学的方法了。

摘抄一个很棒的解释:

imgimg

建筑类型学简单来说是什么?www.zhihu.com图标

看到没,建筑类型学就是那个答案!而虽然是建筑那边的学科,但里面的思想,明显能推广到非常普遍的层面。

而这真的是非常适合TA去研究的方向,虽然看起来好像不是那么技术,也不是那么美术,又有技术在里面,也有美术在里面;归纳出可执行的系统的技术体系,以实现正常手段难以企及的美术追求。多么像TA这个工种本身啊~

做得好看是终极目标,调参能力是核心能力

美术解构做得再好,也只是嘴炮,想落地还是得自己能把结构出的技术点实现出来,而且要实现得效果不错。不然你哼哧哼哧地把技术框架都搭好,做了个简陋的demo,给主美一看,主美犹豫了一下,说“这个不行”;然后你解释说,市面上成功的案例都是用这个技术做的,功能都实现了啊,怎么不行? 主美往往会说“不好看啊,要不然planB吧”

其实往往用的这个技术真的没毛病,但主美不懂技术,无法评估这个技术怎么样,他只觉得这个画面不是他想要的。你说得再好,他还是怀疑。

所以TA的很重要能力,甚至核心能力是美术能力,而不是技术能力、或者代码能力(也可能某些公司把TA理解错了,拿这个当指标,这是发展初级阶段的体现,只是暂时的。而且这里的美术能力,我有一个感觉,在有基本的美术基础上,核心点其实是调参能力

因为TA一般不会做特别美术向的东西,一般都是自己生产工具和shader,自己测。而需要自己研发的很多东西,往往都没有稳定的技术标准,很多参数都没有物理意义,也没有量纲。没有现实世界的指标对标,就只能调一点测一点。而且这些参数还很有可能大量耦合在一起,相互影响严重,以至于难以感受到一个参数到底产生的影响是什么。

同一个工具,在不同人调的参数下,效果会有天壤之别。比如asher之前的这篇文章中就提到了这个观点。

Asher:UE4之制作高端霸气的干冰体积雾zhuanlan.zhihu.com图标

我非常赞同这个观点。对于自己搭建的工具或者体系,只有自己最了解,你不可能把基础功能都实现了就丢给美术同事去调参,有些参数你甚至都没法命名,因为没有物理意义,只能用parameter01,parameter02;这样的工具不经过细致打磨是没法给别人用的,甚至有时候真的没办法的时候,一个工具造出来,只有自己一个人能用得好(或者说打磨到能让大部分人明白使用方法,成本过于巨大)。

而我觉得一个TA牛逼的地方就在于,能够极快地在耦合的参数海洋里调出想要的效果;能够用大家都知道的技术做出大家都调不出来的好看效果。

这种活是美术和程序都无法完成的,只有TA能做,也是TA无法被取代的地方以及核心竞争力的具体体现

为什么我觉得题主的学习路径有问题

上面的这些段落看起来似乎是跑题了,但我说这些,是因为看到你的问题描述里说你正在学的东西——

还是不能求解渲染方程/模拟方程
做积分极限那些运算但是套不上公式来求解
看了c++prim这本书的前面一小部分,能把一些简单的代码做数值运算这些在软件中使用上写一些shader效果的计算。但是更复杂的开发ue软件里面那些代码(所有的…除了计算部分,其他的那些类啊啥的都看不懂他们的意义)就完全不能理解他们的功能和套路。不理解如何去写程序。

我觉得你可能对TA有什么误解。其实我早就注意到国内的TA圈子普遍存在这种误解(我个人理解的角度,我知道大家都不这么觉得)。似乎TA的门槛在于技术、程序能力,似乎TA就要自己能写渲染器,能写引擎,能改UE4的源码;似乎只有这样才能和一般的从业者拉开差距才能算得上TA。

我有时候会思考,这种思维到底是怎么产生和发展的。我想到的一种可能是——大部分TA都是从美术转过来的,美术方面多少有点斤两,而相对欠缺的是技术能力,所以狂看技术方面的东西来尝试弥补先天不足。

而现在这个阶段,技术上的文章、教程,往往都是比较厉害的程序写的。所以大家在学习和仰望的过程中,形成一个美好的愿景和期待,觉得程序大佬那伟岸的光环形象,就是自己的目标。觉得图形学、龙书、虎书、GPU精粹、甚至动力学、流体解算这些程序大佬们玩得飞起的东西,就是自己真正的学习路径。而这也确实是在网上学图形技术能找到的流传较广的学习路径。而似乎离这些程序大佬之间的差距,就是自己和真正TA的差距。

我觉得可以换一个角度思考。比如说,你边上一个美术大佬,做偏表现的material和texture的,做的材质特别真实,充满美感,登峰造极,享誉世界。你当然也会做材质,但大多数人可能连他一成功力都达不到,你有时候还会顺手帮他做一些提升效率的工具,以及更满足他需求的新shader。但你是否会把这种在做材质表现上的差距理解成自己和真正TA之间的差距呢?我观察到的绝大多数TA并不觉得这是个问题。

那问题来了,TA明明就是一半T一半A,为什么T那一边的差距,大家抓着不放,A这边的差距,大家视若无睹呢?

TA真的不是以技术为手段来实现美术效果的一种工种吗?TA为什么是technical artist 而不是artist tech-director,这个名字难道不说明问题吗?

我觉得现在很多TA,就是顶着TA名号的AT,或者说是会一点美术的图形程序肄业生。

而大家学着图形程序的学习路径,想要跟真正浸淫多年的图程大佬拼刺刀吗?哪里来的盲目自信能拼得过呢?

这就像你不会想着跟一个专门做材质贴图十几年的老美术拼美术功力一样显而易见啊。

题主上面列举的一些困惑,从终极目标来看,都不算TA的职能范畴——你想要求解渲染方程/模拟方程,真的是想自己重新做BRDF?重新做解算系统吗?不说这是不是TA该干的事儿,现阶段的项目里面也不太会有这种需求啊。

想要读懂并自己着手修改“更复杂的开发ue软件里面那些代码”,真的是你需要去完成的工作吗?这个活儿的代价是很大的,但是对你的回报到底有多少呢?确实有很多TA加了这方面的技能点,但真的是必点的技能点吗?你有那么多必须改引擎才能实现的效果要做吗?如果说仅仅是出于兴趣来学习的,那也无可非议,如果说是觉得自己必须学这个才能算TA,那真的没太大必要,不要被某些观点绑架了,本文上面比较大的篇幅已经论述了这个问题;如果确实有这种需求,何不找图程大佬帮帮忙呢?他帮你改一下可能几天的工作量,你自己想要有这个能力,可能要大半年的学习时间投入。这一切值得吗?

就像做偏表现的材质一样,你是都可以学都可以做的,你想要做到美术大佬的五成,花时间精力是可以实现的,但这真的是TA这个工种的职能范畴吗?没了TA这个活他就搞不出来了吗?有人可能真觉得图形方面的这些工作,没了TA还真就搞不出来。这种情况在现阶段也确实是成立的,但只是暂时性的。

现阶段,由于图程在行业里基数非常小,TA很多时候,主动或者被动地,承担了一部分图程的工作,这是游戏行业发展的这个时间节点的局限性导致的结果,暂时看起来是风生水起的。

但后面行业越来越发展越来越正规,大家终有一天会站在专业图程大佬的阴影里。

所以说,不管是美术上还是技术上,我觉得TA都要去学习掌握,如果仅仅是满足工作需求,真没有深到你问题描述里那个程度。如果出于个人爱好,真的学深了,那也仅仅只是锦上添花,能做得好更好,做得一般般也没什么关系。因为你跟这些专门浸淫这个方向多少年的专家,有着无法跨越的鸿沟的。你在学,他也在学,你还要同时学好多个方向的东西,他们只专注搞一个方向。只要双方都不停止学习,都差不多聪明,那这个差距是一辈子也填不平的,只会越来越大。

与其越俎代庖去干图程干的事儿,为什么不大家一起愉快地合作呢?就像你帮美术大佬写工具写shader一样,为什么不让图程大佬帮你改引擎、造新的光照模型、造解算系统呢?(如果公司没有图程的话,那确实只能辛苦你了-_- ,但这并不是合理的)

而我也知道,确实有一部分人是在骑驴找马。挂着TA的头衔,往图程的方向默默努力,如果确实想清楚了,这就是你的目标,那完全没问题,暂时别耽误本职工作就好。

个人建议的加点

我稍微总结一下上面部分的观点——你想要点的技能树,并不是TA必须的,个人建议不要点,或者不急着点;TA需要学的知识量超大又很复杂,有限的时间应该投入到更常用更基础更能出效果的技能上面去

比如你可能比较熟悉的houdini,我觉得这个方向真的蛮牛逼的,是现在非常热的方向。不管是做程序化生成、特效、解算、还是后面导入引擎用的自定义模块搞点项目定制化的幺蛾子,都有极大的用武之地和巨开阔的出口以及无限光明的发展前景。

不比你在UE4里改点源码香得多得多?这种技能点可是标准图形程序并不太会点的技能点,非常有优势。

而且houdini不光能做东西,还可以很好地锻炼人的思维。是既可以修外功又可以练内功的不可多得的练功房啊。就像我前面例举的复现PS里一些功能的例子,表面上都是大佬们看不上的垃圾技术,但背后藏的知识体系又广又深。

而houdini这种几乎包含了“世界运行本质规则”的软件,随便拆拆官方节点,里面的营养不是丰富到腰爆炸?到时候你对什么感兴趣就深入学什么,缺数学工具了就学数学工具,技术力不是蹭蹭往上涨?只不过看起来会跟现在的主流路线不太一样而已,你会学很多大家听都没听过的东西,这些也都是技术力啊,并不是必须走 图形程序 加 C++这种学习路径的;这只是热度比较高的路线,但并不是必须,不用随大溜。也并不符合你现阶段的加点风格。

强烈建议继续在houdini技能树上继续加点。而相信这软件你应该比我玩得溜多了,也没法提出有建设性的学习建议了。

图形学和编程学习推荐

如果你是对图程方向还有C++这些发自内心地感兴趣想学。我也斗胆描述一下学习建议。

首先图形程序方向,我觉得你可能学习资料不太好。看看闫令琪大佬的这个教程吧,学完绝对能解决问题。

GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com图标

还有这个网站:

https://www.scratchapixel.com/index.php?redirectwww.scratchapixel.com

然后C++方向,看问题描述,感觉你似乎对编程语言并不是特别熟悉?如果熟悉的话,HLSL这种小儿科肯定玩得很溜了,如果你不是出于谦虚而说的只能做到HLSL的简单应用。

那么我可能会建议你去学别的语言,上来学C++的话,可能很不友好。那么我当然推荐先学Python啦。首先这个语言相对比较好学,而OOP的思想基本都可以实现,在这个语言体系下,先锻炼编程思维,至少把类啊、继承啊、多态 还有一些常见的设计模式(虽然python不怎么需要设计模式,但也可以学习的时候强行用),这些OOP特性玩到飞起,再去搞C++吧。

学习Python除了学习曲线平缓之外,也有非常高的实用价值。一个是在工作方面,TA一般会面临比较多各种平台下的工具开发需求,这种不太需要管运行效率的工具开发,肯定Python写起来又快又舒服。而且游戏行业相关的各种软件,对Python的支持都非常优秀,没有比这更适合的选择了。

另外在个人生活方面,Python也有非常广阔的使用前景。比如简单的做一些爬虫,收集自己感兴趣的教程、论文;把一些常看的优秀输出者做集中订阅;

做自己的音乐库,不用因为他们音乐版权的问题而同时使用三个播放器还听不全

(这段话是我复制的,不代表我的观点,仅供参考,或许有法律风险)

imgimg

开发自己的QQ机器人,帮助管理QQ;开发微信下的小程序,辅助日常微信使用;开发自动回复女朋友消息的回复助手,根据她的心情回复相应内容。在windows下用api开发提升工作效率的应用程序等等。

我是觉得搞这些还挺有意思的,有了程序的思想之后,生活便利性有了很大提高;生活里的乐趣也多了不少。这部分的推荐,功利性没有那么强,但很有趣。人活着,图个乐嘛。

数学是极重要的内功(相关推荐)

最后,数学能力;不是很清楚你到底是什么水平。就我自己的工作来说,数学使用率极高。常规的写shader、开发工具,背后隐藏的都是数学知识,数学水平很大程度上决定了上限。

而一般这块涉及的数学工具,多数不太深。基本不太用得上微积分和线代,向量和三角函数用的是最多最多的。我平常挺喜欢用数学实现各种表现效果上的东西——比如说,ps里面的常用工具,substance designer里面的很多节点,我都在UE4里面复现了一套,用起来贼舒服。

还有UE4里各种表现材质,火焰、瀑布、破碎、爆炸、植物摇摆、一些模型本身需要有动画效果的子弹技等等,全用数学算。用函数做飞行的淡入淡出与形变动画,做破碎爆炸的预备缓冲等等。

因为我早之前也做动画,基本知道动成什么样比较有节奏感,会从美术上觉得好看。而基本上脑子里有概念后,花一些努力,都能找到一些函数把自己想要的运动表达出来的。对于程序来说,我做的很多工作,他们也会觉得蛮简单的,但很大的一个区别是,他们那函数做动画,多半不会加预备缓冲。

而当时主美表示运动上的那个预备缓冲让整个效果有灵魂的时候,我先是震惊(因为加的很微妙,也没跟任何人说我搞了些什么),然后是感动(觉得努力有了价值),最后是信念感(更加深刻地体会到TA工种的竞争力在哪)。

而以上大部分工作,都只用到了中国高中阶段的数学知识。“知道数学知识 ”和 “把这个数学知识拿来玩出花”,是两个全然不同的东西。很多程序数学水平都比我高很多,但他们不太会花时间研究怎么把这些数学工具拿来调好看的效果,而怎么用怎么调,真的是TA应该花大时间和气力去研究的学问,因为团队里可能只有你这个工种有义务干这种事儿了

这方面的培养,很少有著书立说的,算比较小众,大多还是要靠自己在项目里多尝试多积累。这里推荐一下the book of shader,是我目前知道的质量比较高的研究这方面的资料:

The Book of Shadersthebookofshaders.com图标

还有Inigo Quilez的个人网站也很多这个方向的资料,他就是搞shader toy的那个男人。不过他的文章不太友好,他是假定你已经有非常完备的相关知识体系的前提下,来学习他新研究出来的骚点子。所以过程相对简略,解释得也少。有些方向不太熟的话,像看天书一样,看一篇下来像如同学了一篇论文,了解背景知识就得好多天。

fractals, computer graphics, mathematics, shaders, demoscene and morewww.iquilezles.org

然后他的网站,鼎鼎大名的shadertoy也要好好推荐一下,是抄代码的好地方(误),raymarching宗教总部,以及个人脑洞的实验基地。

Shadertoy BETAwww.shadertoy.com

而一些弊端是,网页没有IDE的功能,敲长代码有点痛苦,加载速度也有点慢。

所以这里还推荐一下vscode 的插件HLSL preview,可以在vscode 里可视化进行HLSL编程。好用得一匹。

imgimg

https://www.youtube.com/watch?v=Q6EBV7tTz0Uwww.youtube.com

非功利与激情

然后,我在Susbtance Designer里做技术原型也挺多的,他对需要用Render Target的技术,有很棒的拆解和debug能力。一般写HLSL debug的时候还是挺困难的,当你多张RT交互计算的时候,你想要看RT每一次计算的过程会比较繁琐,追踪某个像素的变化过程也很繁琐。而在SD里,每一次RT都可以是一个节点,整个计算过程的每一次,都可以直接双击一个节点查看,而且可以自己设计debug通道,直接双击就查询debug效果,还可以非常轻松追踪像素数值的变化过程,debug起来非常轻松。而且每个计算的性能消耗都直接写在节点下面,对于性能评估也超级方便。

唯一问题是连连看有点难受。所以我自己做了一个工具,可以在SD里把代转换成节点,于是可以愉快地在SD里敲代码,把他也当成一个有自己独特优势的HLSL工具。

之前在SD里实现过一些SDF,raymarching,体积云,基于poisson disc的散布,基于jumpflooding的2d距离场生成什么的,跑起来跟在shadertoy或者UE4里跑都没啥区别。因为这个软件自己的特性和脾气,导致我对图像处理的理解提升了特别多。

可以看出来,我个人在这个方向加了超多技能点,回报也不少,但和投入的时间精力比起来,回报率还是挺低的。不过我搞这个方向,就没想过有没有用的问题,完全就是出于个人兴趣,就觉得好玩,就想玩,有点业余时间就在里面搞搞幺蛾子。我觉得99%的SD用户都不会想到SD可以这么用,绝大多数TA也不会把SD用成这个B样子,这完全是不计成本不计回报才无心插柳柳成荫的。

而且这种技术方向非常小众,以至于我分享一些个人研究成果的时候,搞技术的不关心,搞美术的看不懂。我也很理解这种状况,也并不觉得有什么问题,有足够的时间精力我还是继续在这个方向耕耘产出。毕竟研究过程就已经挺快乐的了。

可以看出,我比较推崇的加点方式还是以兴趣为导向的。自己最喜欢什么,就加什么点。我从来都没按最热门的推荐加点路线去加点,一是因为那些不是我现阶段最感兴趣的技术点,二是我现阶段确实没面对这方面需求。

而且我自己独树一帜的加点方式,也没感觉什么压力,并不会觉得大家都会的那些东西,我不是很懂就觉得低人一等什么的。我虽然和大多数人都不同,但我有自己独特的优点和缺点,我承认并且接受这些优点和缺点,也很明确知道因为自身的独特性,我被取代的风险极低,从来不会有这方面的顾虑和焦虑,也从来不会有来自外界的学习压力。我爱学啥就学啥,你们都抱团集中在搞什么,我看看就好,不感兴趣并且现阶段用不上,我摸都不会摸。

而我觉得,每个人都是独特的,有自己独一份的基因、脾气和秉性。在TA这种自由度如此高的工种上,发展得如此千人一面不是很奇怪的事吗?

所以我还是坚持推荐你在houdini的方向继续深入下去,我觉得这可能是你自己的兴趣方向和长处,为什么不可以在发展得枝繁叶茂之后再去触类旁通呢?

高级点的数学以及好的学习资料

线性代数和微积分,也还是时常要用一下。感觉微积分在采样、raymarching这些地方用的多一些,但这些使用目前来说,在项目生产中使用频率较低。而且都是基础知识了解了就能用,很多时候都已经被前人走过了,能看懂公式和推导,套用一下就完事儿了,好像不太能玩出花来(流体、动力学解算这个我也做的少,基本就是拿paper看原理,公式大致推一遍,看paper做一遍,不看paper自己从头造几次轮子,能脱离原始资料重新实现,就基本勉强掌握了。感觉也是玩不出花来,可能自己太菜了吧)

线性代数一般在VS和PS阶段的一些空间转换用一下,基本就是矩阵代表空间变换的具体应用,大部分时候用现成的函数或者节点都够了,少数时候,需要自己手动造矩阵做空间变换。理解线性代数的本质能够对这方面的灵活使用有帮助。

还有就是GPU端的一些并行操作,也会用到线性代数,动画里motion matching也会用到。概率也是蛮低的(可能还是我太菜了吧)。

这里强烈推荐3blue1brown的教程,让你一步捅穿线性代数,线代从来没这么简单过。相比之下同济版教材真的是屎。

【熟肉】线性代数的本质 - 00 - “线性代数的本质”系列预览_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com图标

然后他平常出的数学视频,真的蛮有意思的,给了我很多启发,虽然大部分还是用不上,仅仅当作兴趣爱好在看着(可能还是因为我太菜了吧)。

总的来说,数学非常非常重要,不管你走什么路线的TA,数学应该都能很大程度上决定上限,数学工具的熟练程度直接决定了做出东西的质量。

幸运的是,我们大部分时候要用的数学工具真的算比较简单的了。感觉难学的话,主要问题还是学习资料没找好;找到合适的学习资料,就已经成功了60%了,学得很艰难很痛苦的话,应该花时间去寻找更好的学习资料,而不是死磕(除非比较小众的方向,真没什么资料,那就只能死磕了)。

尽量不要上来就看很严谨官方的教材,往往就会像同济版一样,写的没什么毛病、很完备,也能学会工具的使用方法,但就是不知道这工具是怎么来的,这些算法的意义是什么。

现在工作阶段已经不需要拿数学工具去考试了,所以这种只讲操作,不讲故事,不讲发展历史,不讲原理的教材就非常不适合学习。

好的教材就是那种,跟你像讲故事一样,深入浅出地把这些知识背后的来龙去脉都讲清楚的,还花大篇幅讲解,为什么要这么算,几何意义是什么,人应该用什么样的角度去思考这个问题才更符合人类的直觉等等

就比如上面说的3blue1brown的教材,就是极为优秀的典范。很多以前觉得高大上的数学知识,给你一步捅穿,让你不禁惊呼,“哦,原来就是这么回事儿,原来就这么简单啊,这么多年才第一次学懂,以前都白学了”。

什么是优秀的学习资料

再具体的某些应用角度的技术学习,一样的思路——找合适的学习资料。在自己还不了解一个领域的时候,直接读论文是不合适的。论文往往都是一个技术点的高精浓缩,确实把一个问题讲解得很严谨,很完备,但跟学数学一个道理,对于不太了解这个方向的人来说,非常不友好,你可以很快抄下来里面的算法和实现,但你很难在论文里详细了解这个技术点的来龙去脉、实现方法的详细思路。抄是可以抄,但就变成囫囵吞枣了。项目紧的时候是可以这么搞一下,如果感兴趣的知识点,还是要花时间回头好好学一下。

那么什么样的学习资料比较合适呢? 就目前的现状来看,国外的学习资料远远优秀于国内的资料。国内环境里很多都是搬运工,原创相对较少,快速查资料看一下还是可以的,细细去了解的时候,一手的资料多数时候更好一点,尤其是国外维护自己网站的人很多,看到一篇感兴趣的文章,你可以顺着作者的站点,查到更多感兴趣的东西。

一个优秀的学习资料往往是这样的:

  • 图文并茂
  • 图占的比重较多
  • 在需要的地方有动图和视频直观表现效果
  • 网页可交互控件(这个太难做了,但效果真的棒,比如UE4文档对比两个图时,中间的滑竿)
  • 文章结构清晰合理,标题使用妥当,让人一目了然每个段落的中心思想
  • 花一定篇幅讲解技术背景
  • 有清晰直观的原理讲解
  • 有完整的技术实现分析和推导
  • 少量代码或者伪代码或者完全不需要代码;或者可执行完整代码
  • 复述自己个人的学习和思考过程,讲解犯的错误和走过的弯路
  • 充沛的相关资料引用

优秀案例是这样的:

imgimg

Visualizing Algorithmsbost.ocks.org图标

这样的:

imgimg

https://blog.demofox.org/2017/11/03/animating-noise-for-integration-over-time-2-uniform-over-time/blog.demofox.org

这样的:

imgimg

Red Blob Games: Hexagonal Gridswww.redblobgames.com图标

上面这几个网站,大家就算不关心里面的技术,也强烈推荐大家点进去看一下,我的截图说明不了问题。你进去玩一下才能感受到,这些作者,为了把一个知识讲明白,花了多么巨大的心血!他们基本都符合我上面描述的大部分优秀特征。里面的GIF做得特别棒,特别说明问题,还有可交互控件,自己上手操作一下,你会被感动到,甚至第一个链接的作者,为了做出直观的可视化效果,自己开发了可视化工具,把算法计算的过程用各种动图、可视化图片的方式充分地展现出来。

真的,大家看一下这些美轮美奂、美不胜收的网页,会让你学习的心情爆好,学习效率爆增。能找到这么棒的学习资料,怎么能学不会东西呢?

什么是“坏”的学习资料

而反面案例的特征往往也相当清晰,第一眼就能看出不适合学习的资料:

  • 通篇文字,没有图或者少量不直观的图,更别说动图和可交互控件
  • 少量介绍之后全是代码,或者直接给没有推导过程的公式结果
  • 文章没有段落

虽然IQ大佬技术很屌,文章里也都是很有用的干货,但他写的文章,就不怎么考虑读者的感受,让人学习起来非常煎熬痛苦,有时候甚至会怀疑,他是不是就故意不想让你轻易看懂呢(当然不是,他只是不care),所以很值得控诉,虽然控诉了也没卵用,奈何别人技术过硬,该学的还是要学的。

imgimg

https://www.iquilezles.org/www/articles/filteringrm/filteringrm.htmwww.iquilezles.org

然后国内的大量技术文章,基本把缺点占完了,可能程序员思维,真的不理解用户体验吧?或者仅仅把网站当笔记本用,没想过要让别人看懂。这两种可能,导致的结果是相近的。比如CSDN绝对是重灾区,很多人可能观念里,程序员就是要写博客的,然后把网站当笔记本用了

随便处刑一个:

imgimg

imgimg

图像处理–角点检测_samkieth-CSDN博客_点状检测 图像处理csdnblog.csdn.net图标

一眼扫下来,虽然有排版,但很不用心,极少量图片,被大量文字包围;直接上公式,没有推导和思考过程;感觉讲不清楚或不想讲的地方,直接上代码,你自己看吧。这些已经符合前面归纳的反面特征了。

如果继续阅读文章的话,会发现,果不其然,文章内容仅仅只是对技术点和公式的罗列,感受不到作者作为人的思考和温度;对于不懂相关技术的人来说,看完还是一头雾水;对于已经懂一些相关技术的人来说,也很难有什么新收获。读下来的时间基本都浪费了

这种就是比较“坏”的学习资料了,作者到底想要怎么写文章,那是他自己的权利,我们无权干涉。但对于我们自己的学习来说,可以通过这些“坏”学习资料的普遍特征,快速筛除掉不适合阅读的资料,避免不必要的时间浪费。掌握了这些规律以后,找到靠谱资料的效率会大大提高。

当然“坏学习资料”,指的仅仅是对于读者来说,学习成本非常高的资料,不是说对它里面知识的否定。知识可能是很优秀的知识(比如iq的文章),但非常不适合作为开始阶段的学习资料,当自己找到优秀学习资料,并且相关知识已经学得比较熟悉之后,如果这些“坏学习资料”,真的包含不错的知识点,这个时候再回过头来学习,你才有可能看懂。

我从题主的描述中,感觉到题主应该是学习了挺多不适合你现在阶段学习的资料,也就是所谓的“坏学习资料”。优秀的学习资料,我也根据你的描述,做了相关推荐,希望对你有帮助。


莫名其妙,写这个回答又写了12个小时。本来真准备随便写写的,为什么写起来我tm就管不住这个手呢???真的讨厌。

不过TA的另外一个解释是talking artist,我觉得我真的是被迫符合了这个定义。

最后这算不算也是一条点题的回答?

[学习路线]美术工作者如何点亮TA的技术(Technical Artist )技能树?

https://www.fylstudio.online/2021/02/13/学习路线]美术工作者如何点亮TA的技术(Technical Artist )技能树?/

作者

戴巍

发布于

2021-02-13

更新于

2021-03-19

许可协议