面经详情

第一次在线写代码失败,其他还算轻松的一次面试
面试官人很好,暂时忘掉的会引导你回答出来,看过real-time rendering基本都可以回答上来,但是在线写代码没写出来,下周二面。
Q:透明渲染,描边,NPR,Z测试。

相关推荐

看准66084
U3D
未通过未通过
虽然是一面,但是问的全都是项目。1.面试官自我介绍,引出我的自我介绍2.让我介绍一下第一个项目3.问游戏中的UI场景如何搭建,游戏中的人物移动和战斗如何做的(具体到大概的代码实现)我大概说了基于一个框架,有一个UI管理者,通过传入面板的名字,动态在resoures里面加载自己搭建好的一个UI直接显示就可以,此外还有淡入淡出效果,关闭面板不是立即关闭,而是先在用一个bool值代表关闭,在updata中调它的透明度,直到0,然后关闭面板。人物移动是使用animator实现的,由于人物动画自带位移,按下某个按键,触发走或跑动画。人物战斗远程对敌人的collider使用射线检测,之后向第一个碰撞体发送一个takeDamage的消息,之后在敌人的脚本进行相应掉血、叫声、动画之类的反应。4.介绍一下第二个项目,你在其中做了哪些感觉有意思的东西,怎么实现的(同样会追问到大致代码)大概讲我的渲染器怎么从传入的几个球,材质来实现一个画面的展示。我说材质、多线程的加速、包围盒、视频渲染都是比较有意思的(这里它打断我那就材质和多线程)我大概说了材质有哪几种,分别大致是如何做的(这里他要具体到磨砂材质),我就讲磨砂有哪几种反射模型(这里他要具体到一种如何实现),我就讲传入光线的参数,一个点和一个向量构成,和球进行碰撞,得到时间(其实这里是多少倍意思),然后算出碰撞点,计算法线,单位化法线之后用碰撞点加单位法线得到一个临时球心,做一个正方体挖掉球之外的部分得到一个球取表面,这里省略了很多细节,感觉回答的不好,让面试官觉得听不懂(其实是三个随机数实现的随机向量,然后筛掉长度大于1的,就得到了球内坐标,然后单位化,就得到了球的表面坐标,之后与法线点乘就排除掉该球下表面从而得到最接近真实的漫反射模型)。多线程加速大致是用一个线程数组,他们分别执行渲染函数,比如,第一个线程执行1到20行所有像素,第二个线程渲染执行21到40行,然后把他们执行完得到的像素信息打印到到跟我们分辨率一样大的二维数组里,之后按顺序输出。还做了一个进度提示,用像素的乘积代表总任务,不管哪一个线程执行完了一个像素就让这个全局变量减一,因为使用多线程修改变量,也给它加了个锁,这样就可以看到渲染进度了。5.最后是一些比较水的问题,就是在团队中有没有遇到一些奇怪的事,如何处理?这里讲我的同学有时候会不规范操作设备,我会上前劝说,几次之后会选择上报中心助理(这里他对我们的中心结构很感兴趣,好像助理不应该有这么大权力,我还大概讲了一下)。6.自我评价,优点,硬要我说有哪些缺点?比较爱学习,爱思考,工位就是我的家,缺点是,工位是我家的缘故,东西太多,比较乱。7.最后算法题给一个字符串,如:”5:10,8:20,30:50,40:20”,返回一个奖品id。分号前代表奖品id,分号后代表奖品权重,即例子中,5号奖品抽到的概率为10%,30号奖品抽的概率为50%。看题目用了三四分钟,第一次做抽奖类似的题,我的想法是用线段的思想,把每个奖品的权重想象成一段绳子,依次遍历得到权重然后(这里分割字符串的函数忘了,面试官让我随便先写一个,不用实现),就让这个绳子不断边长,使把每一段绳子的初始值和id放在map里面,之后用随机数余上绳子总长,之后遍历map,看这个随机数在哪一段上面,就返回id。面试官看完问我怎么优化,我说了几个小细节,比如这个绳子可能会很长,需要用longlong,map用hash_map,(面试官提示我这里面的for循环都有必要吗?),我说需要,因为这个绳子总长不算出来,后面随机数无法落在绳子长度范围内(他说这个可以用其他方法获取,第一遍遍历信息基本都有了,其实第二遍也就没有必要了)。...查看更多
2022-07-19 发布

进入微信小程序

前往微信小程序,查看更多结果

立即前往
看准网字节跳动字节跳动面试经验字节跳动面试经验:第一次在线写代码失败,其他还算轻松的一次面试
正在招聘Golang200 个岗位