【MetaApp】UE初级工程师二面

二面主要针对计算机图形学的一些知识进行了考察,一周的时间简单看了下计算机图形学的MOOC,最后整个面试下来我自己感觉还是准备的比较匆忙,等结果…

计算机图形学

1.插值

给定直线两个端点,如何完成直线插值?

线性插值法

给定曲线两个端点,如何完成曲线插值?

bezier曲线插值,利用t值,过程略

给定矩形四个顶点的坐标和颜色,如何完成整个矩形的颜色插值?

矩形分成两个三角形,重心坐标计算+插值

2.线性变换

定义?

零点不变,不发生弯曲

有几种变换?

平移、旋转、缩放、错切

哪几个变换是线性变换?

旋转、缩放、错切

3.凹凸性

一个图形有凹凸点,那么该用什么样的方法去判断凹凸点呢?

假设得到当前连续的三个顶点分别是P1,P2,P3。计算向量(P1,P2),(P1,P3)的叉乘,也就是计算三角形P1P2P3的面积,得到的结果如果大于0,则表示P2点在线段P1和P3的右侧,多边形的顶点是逆时针序列。然后依次计算下一个前后所组成向量的叉乘,如果在计算时,出现负值,则此多边形时凹多边形,如果所有顶点计算完毕,其结果都是大于0,则多边形时凸多边形。

4.坐标转换

给定一个直角坐标系,规定一次操作可以完成两个坐标轴的交换、坐标轴的取反,请问最后能得到几种坐标轴?

由题意可转化为求笛卡尔坐标系种类,一共48种,一种比较形象的体现方法:因为该坐标系经一次变换后三个坐标轴依然互相正交,那么先不考虑坐标轴的指定,我们可以在空间上得到8种朝向的坐标系(360°/90°2=8,上下班平面各四种),每种朝向中三个坐标轴的组合是A33即6种组合,则总的坐标系个数就为86=48种。

5.齐次坐标

普通坐标通过矩阵计算只能完成线性变换,那该怎么做才能够使他做到平移呢?

坐标加一维常量转换为齐次坐标

原理?

在这里插入图片描述

网络安全

MD5和SHA-1可以用来加密吗?

是的,SHA1和MD5的算法都是从MD4算法改进而来的2种算法,基本思路都是将信息分成N个分组,每组64个字节,每个分组都进行摘要运算。当一个分组的摘要运算完毕后,将上一个分组的结果也用于下一个分组的运算。

信息的长度(注意是bit位长度,不是字节长度)用64位表示,也要参加信息摘要运算,而且是放在最后一个分组的末尾,所以长度信息要占据8个字节。

如果信息数据最后一个分组长度小于64个字节,在后面添加0x80标志结束,如果此时数据+结束标志已经<=56个字节,还可以放入长度数据,就在结束标志到第56个字节补0,然后放入长度,如果此时信息数据+结束标志已经大于56字节,那么这个分组后面补0,进行一次摘要运算,然后再建立一个分组,前面全部补0,最后16个字节放长度,再进行一次摘要。

需要注意的地方如下。

MD5最后生成的摘要信息是16个字节,SHA1是20个字节。

MD5和SHA1的分组信息运算,分组里面的的数据都会被视为16个DWORD,而MD5算法认为这些DWORD的字节序列是LITTLE-ENDIAN,而SHA1的算法认为DWORD是BIG-ENDIAN的。所以在不同字节序的主机上要进行转换。

放入最后一个分组的长度信息,是原始数据长度,而且是BIT位长度,其是一个uint64_t,而MD5算法要求放入的长度是LITTLE-ENDIAN的,而SHA1算法则要求这个长度是BIG-ENDIAN的。不同的平台要进行转换。

C++

空指针调用成员函数及访问成员变量会发生什么?

如果空指针调用普通成员函数,看该函数体中是否使用到了this指针(是否访问非静态成员变量)。如果使用到了this指针,程序会崩溃;如果没有使用到this指针,程序不会崩溃。当然,如果访问静态成员变量,是不会使用到this指针的。

如果空指针调用虚函数,程序会崩溃,无论函数体中是否使用this指针。

如果空指针调用静态成员函数,由于静态成员函数内部没有this指针,也不能调用非静态成员变量,因此程序没有问题。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
UE4 4.22版本引入了全新的面光渲染特性,极大地提升了场景中的光照效果。面光是一种基于VCT(Voxel Cone Tracing体素锥追踪)技术的全局光照方法,通过使用GPU计算,可以在场景中实时计算光照的传递和效果。 面光的工作原理如下:首先,场景的几何体被分解成一个个体素锥体,每个体素锥体都会储存实时的光照信息。然后,光线从光源处投射进入体素锥体,通过追踪光线的路径,计算光照在场景中的传递和反射。最后,将计算得到的光照信息应用到场景中,实现更加真实和逼真的光照效果。 面光的优势在于其能够实时计算大规模的光照效果,并且不受场景中物体数量的影响。在传统的光源照明方法中,随着灯光和场景中物体数量的增加,计算量会增大,导致性能下降。而面光通过使用体素锥体分解场景,将计算量均分到各个体素中,大大降低了计算复杂度。 此外,面光还支持动态光源和间接光照,可以实现更加真实的光照效果。通过在面光设置中调整参数,如光源的强度、体素锥体分辨率等,可以精确地控制光照效果和性能平衡。 总之,UE4 4.22版本的面光功能为游戏让场景中的光照效果更加真实和逼真提供了强大的工具。通过使用面光,开发者可以在游戏中实时计算大规模光照效果,提升游戏的视觉质量和沉浸感。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ycr的帐号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值