赞
踩
hi,大家好~我是来自搜狐畅游引擎部的美术向技术美术,小源小榞小圆,来到我们畅游引擎部门马上就要两年了。这次应部门老大邀请做一次分享。主要为摄影测量的实践细节。
为什么分享的主题是摄影测量游戏模型制作?
记得还是19年的时候,我花重金在megascans bridge上购买了很多异常精美的资源,当成宝贝一样翻来覆去的看,没成想年底的时候Epic就给Quixel收购了…然后bridge的所有资源都面向使用UE的开发者免费。那时候只觉得Epic财大气粗,没成想在第二年里的UE5演示demo里,Quixel的扫描资产配合nanite技术这么生猛。事情还没完,21年UE5 early access版本提供给了开发者,很快就有一些非常亮眼的UE5 demo出现在市面上,其中相当一部分在nanit的加持下堆砌了令人瞠目结舌的场景细节。同年Epic收购了RealityCapture,这是一家专注于使用摄影测量技术生成模型的软件公司。22年黑客帝国demo发布,无数的扫描资产和nanite让整个城市纤毫毕现。紧接着UE5正式版发布,nanite技术可以正式在游戏项目里落地使用了。相信这个时点下已经不会有人怀疑,对于下一个世代的游戏项目而言,高精度扫描的模型资产的重要性。
(↑快给人看疯了的UE5 ea版的demo《古代山谷》,这个场景的模型真的可以用“吨”来形容了)
为什么选择摄影测量技术来制作模型?
虽然想要获得良好的摄影测量结果需要专业的相机,至少也要搞个半画幅微单吧?但是先别划走!相信这篇指南对于使用手机来制作模型的朋友也会有所启发的。
好的,说了这么多废话,我们开始进入正题。
我们分几个部分由浅入深,一点一点来说。
首先我们先介绍一下摄影测量的第一次实践,我们需要什么:
btw,最近Capture Reality又推出了一款摄影测量软件叫做RealityScan,可以直接用手机拍照上传云端计算模型后下载,还上了UE5正式发布时候的State of Unreal,但目前实测效果并没有桌面端的效果好。
好的,那我们就开始我们的第一个摄影测量扫描吧。寻找目标的时候发现了公司的一个罐子,就拿它做我们教具好了。
陶罐君
打开相机或者手机,这里不论是相机还是手机,我们都需要开启手动模式,关闭自动白平衡、ISO、不改变EV值。自动曝光、自动白平衡都会让照片之间的相关性变弱,有可能会导致重建失败,或者在生成纹理时产生波纹。
然后我们我们先围着它拍一圈。尽量让相片覆盖小罐子的每一个角落,保证相邻的两张照片至少有30%或更多的重叠区域。这里需要注意,一旦开始拍照,一定不要移动被拍摄的物体,周围环境最好也不要有变化。
然后我们就可以打开摄影测量软件了,以3DF Zephyr为例,我们新建项目→导入照片→以默认的精度运行我们的稀疏点云重建。
这个图大家就看个意思,照着这个来也没问题,但还是建议先去看一下软件使用手册。
稀疏点云运算结束后,软件会告诉我们哪些照片被成功匹配了,没有匹配到的照片会在列表里显示No。偶尔有一两张丢失了不是什么问题,但如果丢失太多照片可能会需要调整参数重新尝试进行匹配。如果反复调整参数之后仍然重建失败,可能就需要重新进行照片拍摄了。稀疏点云重建的结果如下边这个视频。我们已经可以看到罐子的大概形状了,点击软件下侧的照片,可以看到每张照片都对应着模型的一个角度,最后由所有的照片“投射”出了我们模型的点云数据。
2
这里我想多说一些摄影测量软件背后的原理。最左侧是我们的单张照片,可以看到上边有非常多的红点,这些红色的点是由软件计算出照片的特征点,我们导入软件的每张照片都会被提取出一定数量的特征点。中间为两张照片特征点的比较,如果有两张照片的某两个特征点信息一致,那么它们将会被匹配成一对特征点。当两张照片里有足够多特征点被成功配对后,使用他们在两张照片里的相对位置信息, 软件就可以计算出这些特征点的位置关系,也就成了我们的稀疏点云。这里用的虽然是3DF Zephyr的图,但应该不同软件的主要逻辑应该大同小异。这也就是我们为什么要让模型的每个细节出现在相邻的数张照片的原因。
图片来自3DF Zephyr官网
关于特征点、照片拍摄、重建参数我们还有很多没有展开细讲,不过不着急,作为第一个入门模型,我们先开始下一步。在工作流程里开始生成三维模型。这次我就不截图中间的设置了,保持默认,一直下一步然后运行就好。运算结束后,我们的点云也终于变成了模型。但看上去有些模糊?没有关系,三分模七分图,我们继续生成纹理化的网格,依旧是全部选择默认参数。最后结果看起来还不错?我们可以把它导出之后放在UE5里面看看效果
有内味了。
因为UE5有nanite可以用,我们甚至不用拓扑低模,就这么直接给模型丢了进来。
3
但实际上这只是万里长征的第一步。现在这个模型还有挺大问题:
虽然第一部分我只打算粗浅的实践一下摄影测量的基本步骤,但我们至少要也做出一点像样的游戏模型啊。所以,让我们开始第二次摄影测量的尝试:这一次让我们对我们的拍摄对象和拍摄环境做一些简单的布置。
这次的教具同学变成了便利的夹心面包。我把办公室工位的灯尽量都打开了,来获得一个尽可能明亮的环境。与此同时,我用白纸遮蔽了面包的顶部,来避免光源的直射造成明显的投影和高光。另外,我还手拧了一个铁丝支架,用来支撑我们的面包君,以方便我们能无死角的拍摄。
拍摄还是老样子,尽可能拍摄到面包的角角落落,左侧图片可以看到重建的每一个相机位置。
让我们略过中间生成点云、网格这些环节,直接看最后的结果,左侧是生成的模型,右侧是贴图。我们可以看到这次的颜色贴图的生成结果要比上一次的花盆好太多了,开始向着真正的albedo贴图靠近了。但再看看我们的贴图…这不像是一个能用的贴图啊,模型也有一些噪音以及残留的铁架子。
3DF Zephyr里构建的带有纹理的模型,和它的贴图
这个时候就要开始我们的美术工作流了。这里介绍一个简化的工作流:
一个简单的工作流程示意
此时我们就拥有了一个人类能理解的albedo贴图,我们可以把模型和贴图导入进SubstancePainter进行进一步处理。这里我基于albedo的不同颜色来区分不同的材质、创建了蒙版,并以此为基础制作了roughness贴图、烘焙了ao然后导出到UE5里进行预览。
基于规则UV的贴图,对人类十分友好
这个效果就已经相比我们的第一个模型好太多了不是?
下一个部分我们来说点进阶的玩法:室内摄影测量的场景、灯光布置。
好的!现在我们已经是一个有一些摄影测量经验的同学了,让我们更加深入一点,看看我们上次制作模型所遇到的问题。
哦我的老腰!
所以这三个问题怎么解决呢?我们先仔细看一下我们的摄影测量软件,在导入照片的时候,我们可以使用照片蒙版。这个功能可以让软件快速识别背景并将其剔除出计算范围。这个功能并不是3DF Zephyr独有的功能,三兄弟的另外俩也有类似的功能。
4
看起来就像电影用绿幕一样快乐。诶……等等,绿幕?那我们是不是可以用绿幕来当做背景,然后我们的被扫描物体不就想怎么转就怎么转了吗?背景被剔除之后,被扫描的物体和背景的相对关系就不会对重建产生影响了。
而我们的第三点问题,好几年前有看过知乎人像重建大佬——京一不二的文章,知道可以使用偏振光来解决这个问题。那什么是偏振光、如何获得偏振光呢?简单来说,自然界里的光,以波的形式来看的话,波的振动方向可以是任意方向的,而我们可以用一种表面有及其细密的栅格状结构的薄膜,来过滤与其栅格方向不同的光波。过滤之后的光线就被称作线性偏振光。
图片来自CODIXX,一家来自德国生产偏光片的公司
首先,我们可以在光源发生处设置一个偏振膜,这片偏振膜能将光源的光线变成偏振光。当偏振光到达被摄物体时,会同时发生反射和漫反射。单纯的镜面反射光线因为只是单纯在物体表面弹射了一次,所以其波动方向并不会发生变化。而漫反射的发生是光线进入物体表面后,经历数次折射后再次从物体内部射出的光线,这部分光线的振动方向会被重新扰乱成各个方向。而我们只需要在相机前放置一块与光源处的偏振膜角度垂直的偏振膜,就可以几乎完全过滤掉来自物体表面的镜面反射。这种拍摄方式被称作交叉偏振拍摄。
用偏振光照射小圆同学,只有发生漫反射部分的光纤才会让光的偏振角度重新变得无序
所以我们来尝试布置一下我们的环境吧!看看我一点失败的尝试(错误示范+1):
一个非常典型的错误案例
先说CPL的坑吧,这里放一张从wiki找的CPL滤镜的示意图。CPL滤镜实际上并不单单是一个线性偏振滤镜:因为线性偏振光可能会造成数码相机的测光测距等功能无法正常工作,所以CPL在线性偏振镜后又多了一层四分之一波片,将线性偏振光转变为圆形偏振光。
图片来自Wiki-Polarizing filter (photography)
这也正是为什么CPL在从镜头内面看向外面有过滤偏振光的效果,而从外向内看则无法过滤线性偏振光的原因:因为原本的线性偏振光被转换为了圆形偏振光。所以这也导致了如果两片CPL叠在一起用的时候,实际上第二片CPL让你的画面变得更暗之外毫无用处…所以如果有计划使用多盏偏振光源并来获取纯漫反射颜色的朋友一定注意,相机的处的偏振镜,除了最底下一个用CPL,剩下的用LPL就可以了(线性偏振镜)。
第二点,两盏光源并不足以移除被摄物体的全部阴影,重建的结果光照不够均匀。如果要完全移除被摄物体的阴影的话还需要增加更多的光源。但…如果使用偏振光的话,多个滤镜叠在一起真的很难拧(我最多用过四层,拧中间某一层的时候经常带着前后一起转…),想想每次拍摄前都要逐个光源去对齐滤镜的垂直角度,简直噩梦。同时因为光源本身没多亮,又加上CPL和偏振膜过滤光线,导致最后相机的进光量锐减,画面变得很暗淡。为了避免高ISO带来的噪点,不得不增加曝光时间。一张照片可能要曝光数秒…
第三点是,虽然3DF Zephyr能很好地帮我们扣掉绿色的背景,但是绿色的背景产生的反光被照片忠实的记录了下来,并且在最后生成的模型上留下了非常多绿色的波纹。
原谅我在这里没有办法给大家展示一张反面典型的渲染图,因为它实在是太丑了所以我连图都没存(此处应有小圆连夜删除工程跑路被监控拍下的照片)
接下来的一段时间,我在光源等方面纠结了很久,直到我看到育碧大佬Grzegorz Baran做的摄影测量的分享…犹如醍醐灌顶。
大致说一些要点:
黑色背景能很好地避免环境反射所造成的色偏等负面影响
左侧图片来自Wiki-平方反比定律,右侧是最后布置工作环境的示意图
环形补光灯可以有效的移除画面内的阴影,一般被用在微距摄影,还有牙医的口腔拍摄
Grzegorz Baran大佬推荐的型号是Godox AR400,为了避免广告嫌疑本来不应该说具体得型号,但环形闪光灯这里的选择实在是太过狭窄了,除了这个,我能找到的还有一个多炮塔神教…除此之外基本都是LED圆形补光灯。在室内使用LED光源当然完全没有问题,只需要保持房间没有其他光源,并加长相机曝光时间也可以获得很高质量的照片。但是就目前看到的大部分LED光源都没有办法处理户外的摄影测量需求。
这时候又有了一个新的问题:这款闪光灯的灯罩是一个弧面,我们没有办法向之前给平板状的LED灯塞一个片那样简单的给它做个偏振镜了。Grzegorz Baran大佬也有推荐一个专门做这样环形补光灯的偏振镜的厂家,不过人在澳大利亚(还是新西兰,有点记不清了,反正很远就对了),贵不说,现在处在疫情各种封控之中。他们网站能买,啥时候能送到就说不准了。所以我直接量尺寸打印了一个壳子,里面垫了一张亚克力的板子,然后把偏振膜贴在亚克力板上就大功告成了。(这个灯罩的max文件我还留着,设计的比较简陋但是能用,看有需要可以发给大家。)
我承认这个设计并不是一个很好的设计,卡扣设计让拆卸没有磁吸试来的方便,但……管他呢,能用就行
最后,让我们再来看看我们新布置的工作环境。这就专业多了。
我们的新工位.jpg
让我们来对比一下使用交叉偏振拍摄和普通光源拍摄的效果:左侧使用交叉偏振拍摄的照片直观上看就比右侧暗了很多,这是交叉偏振拍摄的一个劣势,会造成光线损失。但看看右侧不使用交叉偏振方法拍摄的砂锅:一个大大的闪光灯的光斑、还有一些其他明显的镜面反射,以及依旧能看到贴了黑色植绒布的转台。反观左侧,这些问题都没有。我们几乎获得了一个纯净的黑色背景、还有几乎没有镜面反射。
左侧交叉偏振拍摄,右侧移除了灯光端的偏振片
虽然交叉偏振拍摄在上面这个对比里看起来如此美好,但它也有一些小问题。比如交叉偏正拍摄会导致金属颜色丢失。众所周知,金属没有漫反射,在很多pbr流程里我们把金属的反射颜色画进albedo里,只是为了制作流程的简便。而金属的这个特性,就会导致难以直接使用交叉偏振拍照的方式来扫描。
交叉偏振法拍摄的时候,来自金属部分的反射会被完全过滤掉。
这里我们在进行一次摄影测量的实践,来看看更多拍照的细节:
左侧大光圈,右侧小光圈
在摆放好我们的场景之后、正式开始拍摄之前,我们需要先把比色卡放在转台上,拍一张照片。这会在我们之后校准色彩时用到。
留好校色卡的照片后,我们就可以360度旋转拍摄我们的砂锅了。需要旋转拍摄数圈,从不同高度拍摄。因为我们已经可以拍摄出几乎纯净的黑色背景了,所以砂锅底面这些拍不到、不好拍的地方我们完全可以给它翻过来扣在转台上拍摄,后期把图片旋转180度就可以(有注意看拍摄罐子底部的时候突然从逆时针旋转变成了顺时针)。
拍摄完成、照片拷贝到电脑之后,我们先使用校色蜘蛛自带的软件来生成一份校准颜色的配置文件。如果没有的话这一步可以略过,直接导入Lightroom用中性灰校准一下色温和色调。然后批量导出。Lightroom很方便的一点是可以修改一张照片后复制参数,批量粘贴到其他照片。然后导出设置里有两项比较重要,一是格式选择TIFF,无压缩,16bit。这可以最大限度的保留图像的细节。二是要包含所有源数据,在我们导入照片开始重建的时候,如果我们导出了相机的元数据,就会自动匹配相机的型号和镜头参数。
在重建稀疏点云的时候,3DF Zephyr提供了几种不同的预设类型,选择正确的预设类型能更快、更精准的生成稀疏点云。如果重建的稀疏点云持续出现错误,那我们也可以试试使用高级选项。调整关键点灵敏度、匹配的精度、阶段深度、以及照片排序,有时候能将使用预设反复生成、反复出错的照片集,生成出正确的点云数据。这个过程可能会有一些花时间,需要多一些耐心。至于完全自定义参数,绝大部分时候都不会用到。
3df zephyr的几种预设,其他软件也有类似的设置
这里多提一句,拍摄时候建议按照一定顺序来拍照,比如环形或者横着拍完一行再拍摄下一行。当照片队列里前后几张照片在拍摄的时候也是位置紧邻的话,能加速重建的速度、减少重建时出现的错误匹配。
打个比方,我们拍摄了100张图片,如果这100张图片完全随机排序,我们需要让每张图片和每张图片之间互相对比特征点,这样的计算量首先会非常大,另外如果你在A位置拍摄的一张照片里的特征点,和远离B位置的一些特征点恰巧重合了,那重建出的点云可能会出现一些意想不到问题(比如重建后的结果A和B两处位置以一种奇怪的方式重叠出现在同一个位置)。但如果这100张照片是依照顺序拍摄的,那每张照片只需要比对它的前后数张照片,比如A位置出现在第7-11张照片里,B位置出现在50-55张照片里,他们各自前后比对范围是5张的话,两处特征点将不会互相产生影响。
3DF Zephyr对几个配置选项的解释
另外,当我们在使用大量高精度照片生成模型时,一次失败可能会花费比较多的时间,所以我一般会选择从稀疏点云开始,后生成密集点云,然后提取网格,最后生成纹理化网格,这样的好处在于,如果重建出现偏差时能及时返回上一步重做,而不是提取网格做完了,才发现稀疏点云的匹配有问题。
最后让我们来看看重建的结果。可以看到这次我们重建出了一个几乎完美的albedo贴图,以及一个相当精致的模型。之后就是导出进DCC处理模型、拆分UV、烘焙和制作贴图、最后导入到游戏引擎的步骤,相信各位美术师们都能八仙过海各显神通,就不多讲了。
最后得到的结果,不论是模型精度还是Albedo的颜色都很令人满意。
记得之前我们有提到,使用交叉偏振拍摄的方式难以拍摄到金属物体、产生足够的有效特征点并重建模型,所以我们的核心是要在物体表面产生足够丰富的特征点。达成这一目标有几种可行的途径:一种是使用不透明的彩色喷漆、涂料在难以捕捉的物体表面绘制图案。类似我在之前扫描砂锅的时候有在锅上画一些小的特征点,来辅助软件识别物特征。前段时间还看到有另外一种很有意思的做法,在物体表面拍上一层滑石粉。滑石粉本身不透明、细腻、白色能很好地反射光线,能在物体表面形成非常细密细节来辅助软件计算特征点。
我也尝试了一下这个神奇的方法,意外的还不错。图里这个被扫描物体是一个粉底液的盖子,本身是金属材质,直接使用交叉偏振拍摄看起来就是麻麻黑。不使用交叉偏振拍摄,它也过于光滑、反射强烈了。但排上一层淀粉之后就能在照片里看到比较清晰的表面了。看看最后的结果,考虑到这个盖子本身就是一个很小很小的物体,重建的精度也是可以接受的。同时也因为这个盖子的表面过于光滑,所以无法非常均匀的覆盖淀粉。重建的结果对我来说已经超出预期了。
原本是打算用散粉来拍一层,但事实证明散粉过于高级了,太细了拍上去根本看不出来,还得用淀粉或者滑石粉
另外一个实例是这个蛋黄酥。因为蛋黄酥的上层的表皮非常的光滑,且因为含油量比较大有较强的次表面散射的效果。这些都导致蛋黄酥的正面这部分的重建一直难以解决。但是只要轻轻刷上一层淀粉,这个问题就迎刃而解了。唯一的问题是,这些刷在表面的淀粉可能会影响最终扫描的颜色,我们需要在后期制作贴图的时候将这些结块的淀粉给移除(我直接用ps的污渍修复工具了,看起来效果其实还不错)
左侧实拍照片,中间和右侧是重建结果
最后放进引擎看起来是这个样子:
UE5截图,蛋黄酥的高光时刻。
另外值得一提的是,像这种会掉渣的甜点,大手轻轻一捏可能就掉块皮下来。一旦我们开始拍摄,我们肯定不希望在扫描完成前去动它第二次,所以有一个好的固定这类物品的支架很重要。 自己动手丰衣足食,我在东方树叶的瓶子上用热熔胶黏了俩针管并用自喷漆喷了个黑色,瓶子里装一半水,放着还挺稳的。加上针头和物体接触面积很小,非常容易修复这一点点瑕疵。用来支撑物品的支架可以千变万化,淘宝买的、自己做的,好用就行。
做手工的时候千万注意安全!
除了这些不透明的物体,玻璃、塑料的扫描也一直没有太好的解决方案,一般会采用表面喷漆的方式来获得不透明的表面,再进行扫描。
当然,除了室内拍摄,我们也可以带上相机和闪光灯去室外扫描一些素材。室外扫描的核心要义在于,尽量在阴影里拍摄 + 闪光灯亮度调高+离被拍摄物体更近一些。还记得我们之前布置室内环境的时候提到的光衰减规律吗?距离被扫描物体距离越近,就越能发挥出闪光灯的功效,让闪光灯的光线完全覆盖掉室外的自然光线,从而获得一张效果还不错的albedo贴图。
不过难免还是会遇到老问题,金属物体没有漫反射…但大概是因为在户外的缘故,这些井盖个个都是半锈了的状态,才让重建的模型看起来足够的精确,就是albedo贴图里金属部分需要单独调整颜色。
这个减速带也是以相同的方式拍摄的。可以看到细节量简直爆炸…
对了朋友,如果在户外使用闪光灯的话,可能闪光会因为过热而罢工,可以离近一些拍照并把功率调小(比如1/4或者1/2)。但离近了就要拍很久,这就需要自己权衡了。
另外,我们也将生成的模型烘焙成为贴图,来制作高质量的地形材质、贴花等。
可以使用摄影测量软件重建出模型后,用DCC烘焙成贴图
这里因为距离太远导致照片部分位置的亮度不足,重建结果出现了一些难看的花纹…理想的处理方式是去重新拍一组,但是出于自己的懒惰,我就ps修了。一点点修复光照的小技巧:可以在颜色上方叠加一张50%中性灰,混合模式选择叠加,然后用加深、简单工具去调整中性灰图层的亮度,能在不伤害原始图层的前提下调整亮度。
啰嗦一些美术师们应该都知道的小技巧
最后裁切一下,修掉接缝,放SD里看看。
6
当然,拍照建模不只有摄影测量,我们还可以利用光照的光影信息生成贴图和模型:依次从八个方向放置光源,然后拍下光源在八个角度时候的照片,通过软件计算出法线贴图等信息。
Substance Designer里内置的两个节点,但他们最多只支持8张不同角度光源的照片,想要更精确的结果还得找别的软件或者自己写工具。
对没错,我们依旧可以用我们的大闪光灯,效果看起来还不错。
此处有另外一个冷知识:相机支架中间那根杆可以倒过来装…然后相机和闪光灯就可以垂直冲地面了,这在我们拍摄一些只能平放的东西很有用,以及拍摄地面。
左侧为拍摄现场的样子:我们需要将光源放置在八个方位并拍摄照片。
最后我实验的这样一组照片:灰度卡是为了保证不同角度照片大致的亮度是一致的。因为闪光灯一直在地上挪位置,虽然我有用尺子量,但,这样更严谨一些吧。还是使用LightRoom处理并裁剪成方形,导入Substance Designer。
相机拍摄的8张图片
Substance Designer里有一个节点分类,叫做Scan Processing,里面的Multi angel to albedo/normal是我们需要的。我们依次连接进我们八个角度光照的照片之后,坐等十多秒,就有了一张像模像样的法线。
这个节点异常简单,图片按顺序连上去就行了
最后输出的结果如下。个人觉得这样的流程快速、效果也比较能令人满意。虽然这个部分并不属于摄影测量了?但我觉得这种贴图生成方式可以成为摄影测量的重要补充方式。摄影测量虽然能够相当精确的重建物体的表面结构,但受限于摄影测量的工作原理,使用摄影测量重建一处表面需要以一定精度从不同角度反复拍摄同一处表面数次,用摄影测量的方式重建类似布料这样的细节将会是一场噩梦。相比之下多角度光照图片生成贴图的方式就要便捷很多。而这种方式的局限也显而易见:受限于闪光灯/补光灯的光线衰减,以及相机画幅的限制,每次只能生产一小块材质。并且,如果扫描的物体起伏过于剧烈,会在拍摄画面里留下很大一片阴影,而导致计算出现一些错误。
7
使用多角度光照重建材质这一做法也有非常多的技巧和细节,但受限于篇幅原因就不多说了。下图是一张来自Ubi多伦多Tech Art Director Dave Riganelli在他Artstation账号分享的文章的图片。大佬直接做了一个封闭的黑盒+8盏定位好的可以单独打开的光源来辅助拍摄。这套工具因为有个黑盒可以屏蔽外界光源,所以在扫描一些户外表面资产的时候简直不要太方便。在室内扫描一些表面的时候也不用花很多时间在挪动光源上了,简直提高生产力的利器(给大佬跪了)。由此可见不论是摄影测量还是多角度光源重建材质方面,都还有很多探索、自制工具提高生产效率的空间。
Dave Riganelli和他的材质制作核武器,图片来自大佬Artstation的文章分享
以上就是这篇摄影测量分享的全部内容了,讲的比较琐碎。除了这篇分享里写的,以及其他博主、up制作的教学之外,摄影测量还有不少实践上的细节需要积累经验。希望这篇文章能帮助到对摄影测量技术有兴趣的朋友。另外,自知学识浅薄,实践经验也远说不上丰富。如果文章里有错误欢迎指正,但求轻喷!
另外,对游戏里的图形学、物理模拟等等感兴趣的同学,我司的追光者计划了解一下!看一眼不吃亏不上当!
文:小源小榞小圆
欢迎加入我们!
感兴趣的同学可以在官网投递简历:
内推码:NTAI1kh
引擎校招:搜狐畅游 - 校园招聘
引擎实习:搜狐畅游 - 校园招聘
TA校招:搜狐畅游 - 校园招聘
TA实习:搜狐畅游 - 校园招聘
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。