
搜狐畅游2019校招技术美术补录岗的笔试我当年也参加过。说实话拿到邮件的时候挺意外那会儿秋招差不多结束了正处在“投出去一堆简历没回音”的阶段补录通知就像半夜食堂还给你留了一碗热汤。但等真做完这份笔试我才反应过来一件事技术美术这个岗位笔试里考的东西和我之前刷过的那些纯程序题、纯美术题完全不是一回事——它不是考你会不会某个API而是考你有没有一套“在美术和程序之间来回翻译”的思维框架。这份笔试给了我一个很清楚的信号游戏公司招TA看的不是单项能力多强而是你能不能同时理解渲染原理、美术资产、DCC工具链以及——非常重要的一点——搞清楚什么是“够用”。很多同学技术底子不错但答案写到一半就放飞了用做科研的严谨去答生产题这是最可惜的失分点。这篇文章不打算照搬原题说实话不同批次的题差异挺大而是从这份笔试考察的能力结构出发复盘我后来在项目里验证过的那些答题思路以及踩过的坑。如果你正在准备游戏公司TA或图形程序方向的校招笔试可以参考这套思路去准备比单纯刷LeetCode或者背Shader代码更有针对性。1. 补录批的TA笔试为什么要赶这个节点又为什么这么考补录批有个特点招聘节奏比正式批快考察也更有针对性。因为补录本身是团队确定有缺口之后发起的HR和面试官都希望快速筛出能干活的人不太会出那种“面面俱到但什么都没有深挖”的卷子。搜狐畅游当时的主力项目以MMO和手游为主TA在项目里承担的职责相当杂既要处理角色和场景的美术效果又要写Shader、维护渲染管线还要做资源规范、性能优化。笔试就围绕着“能不能上手干活”来展开。1.1 补录岗为什么值得认真对待很多同学把补录当成“捡漏”心态上不太重视这其实是个误解。补录批的岗位通常是正式批招聘结束后、业务部门根据实际人力缺口临时申请的名额也就是说这个坑是真实存在的而且往往缺的是能立刻产出的人。面试官在补录批筛简历和笔试的时候容忍度更低标准更偏向“这个人来了能不能帮上忙”而不是“这个人有没有培养潜力”。我当时收到通知后的第一反应是去翻之前记录的面经帖子发现搜狐畅游正式批和补录批的TA笔试题型不太一样。正式批偏重基础覆盖什么数学题、渲染基础、工具题都来一点考察面广补录批更直接会围绕项目实际可能遇到的问题出题比如场景性能瓶颈、材质效果实现、资源规范设计。这就要求你在准备时不能只看书还要真正上线做过东西哪怕是在自己电脑上做的Demo也行。1.2 TA笔试和程序/美术笔试的本质区别TA笔试题目单独拿出来看难度通常低于图形程序岗——不会让你手写一个完整的PBR光照模型也不会有特别变态的数学证明题。但它有一个其他岗位没有的特点题目里几乎每道题都有“上下文”比如给你一个项目场景、一个材质效果、一个性能瓶颈的数据让你综合判断怎么处理。你做答的时候要同时考虑这个方案美术同事能不能接受这个效果在低端手机上跑不跑得动这么做会不会给后续资源制作增加额外成本所以TA笔试本质上考的是一种“有约束的决策能力”。你可以把它理解成厨师考试——程序岗考你刀工多细、火候多准美术岗考你摆盘多好看、调味多有创意TA岗考你“给定一批食材、一个灶台、一个晚饭时间做出一桌能上桌的菜”至于这桌菜是你煎炸煮炖哪样做出来的没那么重要。2. 数学和渲染基础题怎么答才能露出“图形思维”每种岗位的笔试都会有基础题TA的基础题集中在数学和渲染管线上。这些题看着都眼熟但怎么答其实大有讲究。2.1 矩阵变换和向量运算答题要带空间想象力搜狐畅游这份笔试题里数学部分的考察重点几乎都围绕着3D空间中的变换问题比如给你一个模型从模型空间变换到世界空间、再变换到视口空间的流程让你写出用到的矩阵和顺序。乍看是送分题但很多同学栽在“只写公式不解释几何意义”上。比如平移、旋转、缩放组合的时候为什么通常是 S * R * T 的顺序应用因为顶点是先经过模型空间的原点先缩放再旋转再平移才能得到我们直觉上“先摆好形状再摆好朝向最后放到位置”的结果。你的答案里如果能画出这个变换顺序的示意图或者解释清楚行向量和列向量的左右乘区别会给阅卷人留下“这个人是真的理解空间变换”的印象。别觉得这是废话我见过不少答案一上来就写矩阵但连行主序、列主序都没说清楚——这在工程里会直接影响你写Shader时的mul顺序很容易踩坑。法线变换是另一个高频点。很多人记得“法线要用逆转置矩阵变换”但你要是能接着解释一句因为法线是方向向量平移不影响它但非均匀缩放会改变法线的方向直接用模型矩阵变换会导致法线不再垂直于表面——这就是你为什么需要用模型矩阵的逆转置来变换法线。能写到这一层的说明你真的踩过这个坑而不是背过结论。向量部分点积、叉积题目都会涉及。点积求夹角、判断前后面叉积求法线、判断左右关系。这些题目本身不难但出题人可能会把它包装成一个实际应用场景比如“第一人称角色向前移动时如何判断某个敌人是否在角色的可视范围里”。答案是点积大于阈值就说明在视野内叉积判断在左还是右。能举这个例子的比干巴巴地写公式的得分高得多。2.2 渲染管线题注意答题颗粒度渲染管线的题目在TA笔试里几乎是必出的但考察颗粒度很关键。搜狐畅游这份题里给我印象比较深的是让你描述Unity或者说常用引擎里一帧画面的渲染流程从CPU设置渲染状态、提交渲染批次到GPU执行顶点变换、光栅化、片元着色最后到帧缓冲呈现。题目本身不新但要求你对其中几个环节给出“工程上为什么会这样设计”的解释。我的建议是每个流程节点至少准备两层解释第一层是what说明这个阶段做了什么第二层是why说明这个阶段存在的理由以及如果去掉会怎样。例如深度缓冲它存在的理由是为了解决遮挡关系如果你关闭深度测试那渲染顺序就会决定谁覆盖谁会出现各种穿透和错误遮挡。画面上如果有半透明物体又需要单独处理因为半透明物体通常需要从远到近排序渲染并且关掉深度写入。能讲到这份上说明你已经不是一个只会“开开关”的工具人。还有一个容易被忽略的点前向渲染和延迟渲染的区别。笔试题目可能直接问也可能隐藏在一个场景里问为什么延迟渲染在移动端不太常用结合当时搜狐畅游的手游项目背景答案应该包含延迟渲染需要多张渲染目标存G-Buffer内存和带宽开销大移动端带宽有限功耗敏感发热问题突出。但延迟渲染的优点是光源数量多的时候性能优势明显光栅化阶段和光照阶段解耦适合大量动态光源的PC场景。能把这两个方面讲全、讲出权衡而不是只说“一个快一个慢”才是TA该有的思考方式。3. Shader和渲染效果题分水岭就在这里笔试里真正拉开差距的是Shader相关题目。这类题目不是靠背题库能蒙混的必须写得出结构、讲得清原理。3.1 手写Shader题结构完整比炫技更重要我当时遇到的题目大致是给定一个美术效果需求让你实现或者描述一个Shader方案。比如最常见的“实现一个双面渲染的材质”“让模型边缘发光”“实现一个简单的卡通描边效果”“水面或网格材质的运动效果”等。题目不一定要求写出完整代码但一定要求能画出结构、说明关键计算。以“边缘发光”为例其实有好几种方案。基于视线方向和法线方向的边缘检测就是计算视线方向和法线方向的夹角夹角越接近90度说明越靠近边缘发光强度越强。也有基于深度差检测边缘的比如采样周围深度判断当前像素和周围深度的差距来定位边缘位置。能列出不同方案并分析适用场景的答案会明显优于只会背一个方案代码的答案。这里特别提醒Shader代码结构一定要完整如果把Properties、SubShader、Pass这些核心块理清楚哪怕细节有遗漏也能拿到不错的分数。阅卷人想看到的是你知道怎么把材质参数暴露给美术、知道要写哪些Pass、知道怎么组织代码让可读性更好。反过来如果你只画了一个Pass没有考虑批处理、没有写HLSLPROGRAM和ENDHLSL的完整性即使算法思路是对的也会被扣工程分——因为TA写的Shader是要给别人用的不是自己跑通就行。3.2 光照模型和PBR基础原理要能讲清楚2019年那会儿PBR已经是大厂项目的主流了Unity 2018、UE4都内置了完整的PBR管线所以笔试里考PBR概念的概率很高。题目一般不会让你推导BRDF公式但会让你解释为什么金属和高光的颜色表现不同为什么粗糙度会影响高光的范围和强度能量守恒在渲染里是什么意思答题的思路最好从物理直觉切入。金属与非金属的区别在于金属表面的反射光带有金属本身的颜色信息非金属的反射光基本是白色的。这就解释了很多美术在调材质时莫名其妙的问题为什么金属度调高以后高光颜色变成了金黄色因为金属对光谱的吸收和反射具有选择性。如果你能接着说明在引擎里调整Metallic、Smoothness/Roughness和Specular参数之间的联动关系就非常加分。因为这说明你不光知道公式还知道一个美术调参时脑子里在想什么。Blinn-Phong和Phong的区别也是个常见考点。很多同学只记得Blinn-Phong用半角向量代替反射向量但重点是问“为什么这样做更快”因为半角向量只需要光方向加视线方向再归一化一次效率更高同时高光效果更柔和更接近真实的光照分布。能讲到这个层面比单纯说“Blinn-Phong利用Half Vector”有信息量得多。3.3 性能分析题每个方案都要讲代价和Shader配套的通常会有性能分析题。比如给出一组数据一个场景里DrawCall数量很高、帧率低让你提出优化方案。这类题目的得分点不在于你能列出多少种优化手段而在于能不能分清“哪个优化先做、哪个优化性价比最高”。比较合理的分析链路是先定位瓶颈再做针对性优化。不同项目遇到的问题不同盲目把静态物体合并、动态批处理打开、做LOD并不一定有效。比如如果瓶颈在CPU端提交DrawCall那减少渲染批次最有效如果瓶颈在GPU端像素填充率那么减少渲染批次没用得降分辨率或者减少OverDraw如果瓶颈在顶点处理那就需要优化网格复杂度或者使用实例化渲染减少状态切换。我见过有同学答案写了很长的优化列表但完全没提瓶颈定位这一步这就属于“没有生产思维”。TA在实际工作中接到需求的第一件事不是马上动手而是先分析指标、定位瓶颈、确认方案可行再动手做做完还要A/B对比验证。笔试里能把这一步体现出来就说明你已经具备了基本的工程素养。还有一个常见陷阱无脑推荐动态合批。动态合批在引擎里是有条件的它要求粒子或者其他一些顶点属性符合引擎规定比如顶点属性不超过某些限制或者材质相同且实例化兼容。物体数量多但属性复杂的情况下动态合批可能反而因为CPU计算合并而更慢。能指出这种细节而不是堆方案名称会让你在阅卷时被明显区分开。4. 工具脚本题和流程题往往被忽视但最考验TA的“翻译能力”很多准备TA笔试的同学把精力都放在了渲染和Shader上这是对的但不够。搜狐畅游这份笔试里还有一个让我印象很深的部分是工具脚本题和资源流程题比例还不小。这背后的逻辑是TA的日常工作里有很大一部分时间是在写工具、做插件、优化美术同学的产出流程而不是只调材质。4.1 DCC工具自动化脚本考的不是语法是思路笔试里会给你一个场景项目里有几百个模型需要把资源命名不规范、缩放比例不对、材质球缺失等模型检查出来并自动修正怎么设计这个工具这时候你要回答的不是某个具体API调用的细节而是整个工具的设计思路检测规则是什么、如果可能存在的问题如何处理批量化流程、怎么给美术输出清晰的结果报告。我当时答的时候用的是Python在Maya或Blender中做批量处理的思路。大致的步骤是先用命名规则和维度数据做检测再按项目规范修正把异常结果导出成报告甚至可以做一个很小的UI窗口让美术一键运行。这里的关键点是考虑程序怎么写不能假设美术会正确选择多个物体所以最好用遍历选择的模式让美术选中根节点后自动递归处理所有子节点。这种意识和能力是TA和图形程序岗位一个很大的区别。另外一个常考的细节是资源导入导出时的坐标轴处理和单位转换。这个问题在工业流程里非常常见——建模软件里Z轴向上游戏引擎里Y轴向上如果不在导出阶段统一进引擎以后整个模型就是斜的。笔试里如果涉及这类题你要主动说出你的处理策略比如在DCC工具里写一个导出脚本统一设置旋转偏移量、缩放、单位并校验网格方向。4.2 沟通与流程题把美术语言翻译成技术语言TA笔试有时候还会出现看起来像“脑筋急转弯”的题比如美术同学说“我想要一个更柔软的光影过渡效果”你如何理解并实现这类题看的其实是共情能力——你能不能从美术同学的描述里提取出真正的技术需求然后匹配合适的技术方案。美术说“柔软的光影过渡”对应的技术方案可能有很多调整光照的衰减参数修改材质的光照模型或者用后处理做模糊和柔和效果。你不能直接跟美术“解释理论”而是要跟他确认效果参考图再讨论是调参还是换方案。笔试里能把“先确认参考、再给方案、最后验证效果”这个过程写出来的会让面试官觉得你是一个能轻松融入团队的人。还有一种典型问法你怎么设计一套资源规范让美术同学产出的模型和贴图符合性能要求我当时给的思路是按平台和能力划分等级比如按高端机和低端机给不同面数上限和贴图尺寸限制同时给美术提供自动化检查工具在导出时自动提示超标的资源再把这套规范写成一个文档配上错误示例和正确示例。这个思路的重点是“把规范变成工具”而不是单纯打印在一个文档里让人去记。后来我实际工作以后发现这个思路确实是对的因为人都会犯错工具不会。5. 从笔试到项目实战复盘后我强烈建议你做的事笔试只是第一道门槛但准备笔试的过程其实就是在为实际工作搭知识框架。复盘搜狐畅游这份笔试题后我的收获集中在几个方面希望对你有切实的帮助。5.1 备考节奏三个星期可以做什么如果你的时间大概有三周我会建议这样分配第一周把数学基础补扎实梳理矩阵变换、坐标系、向量运算同时把渲染管线、深度测试、混合、模板测试这些基础概念用自己的话写一遍。第二周专攻Shader跟着Unity或Unreal的文档把常用效果手写一遍至少包括标准PBR、边缘光、溶解、描边、半透明。第三周做成套模拟题加练工具脚本设计题和性能分析题。每天保持2到3个小时的高质量输出时间是TA笔试准备的最低配置。刷题的时候注意一个原则不是把代码跑通就完事而是每个效果都要能解答三个问题这个效果用了什么技术这个技术的原理是什么如果换一种方案做会有什么不同5.2 面试前的“微型Demo”准备笔试如果过了面试往往还会追问你有没有做过效果Demo这个环节很多同学吃亏——不是没做过而是讲不清楚。所以我特别建议在笔试通过后、面试之前用一到两周做一个小型效果Demo比如一个简单的场景或一个角色材质效果然后练习用5分钟把它的实现思路讲清楚。讲Demo非常有价值它本身就是TA的日常呈现方式。面试官听你讲的是思路你想做什么、为什么选择这个方案、过程中遇到过什么坑、怎么解决的、有没有考虑性能和数据驱动。能把这条线讲通要比你列出10个效果截图有说服力得多。我在实际带过的人里几乎所有最后发offer的实习生都能把个人Demo讲得逻辑清楚而不是说“这个东西是我用教程做的”。5.3 进入项目之后我对这份笔试题的重新理解后来真正在项目里做TA再回头看这份笔试题很多当时觉得“偏实际”的题现在理解得更深一层。比如性能分析题真实的项目优化远没有试卷上那么“干净”你拿到的性能数据总是充满噪音可能是某个美术资源忘了压缩可能是某个Shader在个别机型上有奇怪的Bug也可能是同一个功能在不同场景里的瓶颈各不相同。但笔试教给你的“先定位再优化”的思路是始终贯穿在真实工作里的。另外有个细节我在笔试时没太在意后来才觉得重要搜狐畅游这类端游和手游都在做的公司TA需要同时兼顾PC端和移动端的效果与性能笔试里那些关于平台差异、移动端限制的题目其实都是在暗示你这个岗位不是纯做渲染的它要考虑多平台问题。如果你回答时能主动提到“低端机兼容”“包体和内存开销”会非常贴合他们的实际业务需求。备考说到底不是应对考试而是把你对游戏开发的理解从“单点技术”升级成“系统流程”。这也是为什么我强烈建议你不论最终去哪家公司都把校招笔试当成一次自我检查——清楚自己的知识盲区在哪里哪些原理是只懂皮毛、哪些细节是完全没接触过的然后用项目思维一个个补齐。最后分享一个我后来在带新人时经常说的小建议准备TA笔试也好面试也好尽量在电脑上放一个可以实时看效果的环境发现问题千万别去死记硬背直接改参数、调数字亲手验证一遍比看十篇文章都管用。技术美术这个岗位说到底是在实践里长出来的分数很重要但真正的能力还是要靠你动手做出东西来证明。