面的天美 深圳那边的项目组发起的面试 视频面
面试一共40分钟
本人信息
双飞本科 硬件专业
电子科技大学 硕士 但也非科班
成绩平平,没有什么项目和比赛,就是个普通学生
没什么很厉害的项目
上来先自我介绍,可能有1~2分钟
总体来说问的不难,都是基础,可能是因为我的项目没什么好问的。都是一些Demo
正题:
因为我简历上写的技术栈是c++和c#
Q: C++ C# 哪个用得更好
A: 都差不多,掌握的还比较基础
Q: 讲一下怎么理解的 C++ 多态
A: 多态是面向对象编程的特性之一,还包含继承和封装,多态跟继承关系比较大,通常是为了实现父类指针指向子类对象,然后调用同一个方法实现不同效果的功能。
然后共享屏幕实现了一下C++的多态,而且考了一下指针的释放时机
Q: 你说的是动态的多态,那么静态呢?
A: (很紧张,这块其实复习了的,但是没转过来)模板函数算么?
Q: 算是一种,其实还有重载
A: 哦对对对
Q: C#里面托管内存和非托管内存有了解吗?
A: 这块涉及到的比较浅,在C#中使用C或C++的dll时,如果用到了指针传递,那么就需要在非托管内存上开辟空间给c++使用,否在如果在托管内存上,C++使用时被C#给回收掉了就会出现问题
Q: unity中的装箱拆箱了解吗?
A: C#的数据大体上可以分为值类型和引用类型,如果要用值类型的数据给一个引用类型的参数赋值,就会发生装箱操作,装箱过程就是在托管堆上开辟一块空间,然后把传进来的值类型数据复制到这块空间上。而拆箱就是把引用类型的数据传给值类型的参数。
Q: 渲染管线了解吗?
A: 看过一些书
Q: unity中渲染一个半透明物体的过程
A: 渲染半透明物体要关闭深度写入,防止前面的半透明物体把后面的不透明物体覆盖掉,然后开启混合,设置混合模式,然后逐像素的混合半透明物体的颜色和缓冲区中的颜色,这里跟半透明物体的透明度也有关系。
Q: 你说你看过《unity shader 入门精要》这本书,里面有一个部分透明的魔方渲染示例,为什么要分渲染两次渲染?还记得吗?
A: 因为透明部分是要关闭ZWrite的,但是关了ZWrite就无法显示出魔方内部的深度关系,分两次是分别渲染不透明部分和透明部分,不透明部分的渲染要开启ZWrite,透明部分则关闭ZWtite,开启混合。
Q: 怎么实现物体的描边效果
A: 深度检测,视角方向夹角
Q: 嗯,你说的方法也可以,但是项目中一般不这么做,我通常会使用两次渲染的方式,叠加出描边的效果,这样可以减少一些计算量
A: 哦哦,就是第二次拓宽一点渲染范围,我没想到
Q: 操作系统了解的怎么样?
A: 还可以吗,有准备过一些
Q: 进程线程的区别
A: 老套的答案jiubuxie
Q: 你说线程是共享资源的,那你知道线程之间有什么资源可以共享,什么资源不能共享吗?
A: 没答上来。。。。
反问环节
Q: 我认为我C++的实际操作水平还有待提高(因为上面操作指针那块修改了几次才弄对,也是因为紧张吧),您觉得我还有那些地方需要再好好准备一下的?
A: C++代码能力确实还有待提高,C#还不错,其实我们这边不一定要专注于C++的,C++ C#都可以,我感觉你C#还不错,其他地方也还可以。
致谢环节
截止到现在还没消息,说的晚上应该会出结果。希望不要凉。
全部评论
(5) 回帖