游戏各个知识小点汇总

抗锯齿原理记录

SSAA:把成像的图片放大N倍,然后每N个点进行平均值计算。一般N为2的倍数。比如原始尺寸是1000x1000,长宽各放大2倍变成2000x2000。

举例:

原始尺寸:

放大2倍后

最后平均值计算成像:

MSAA:比起SSAA少了对扩大后采样点的shading。意思就是SSAA原点是红色,放大了4倍4个采样点还是红色并缓存记录MSAA,少了这步直接使用原像素点颜色

少了N-1倍的采样着色性能省了一些,尤其在片源着色器写了大量算法时比较明显。

计算采样点的颜色比重拿三角形覆盖扩大后的采样点质心来获取。

摘自:

https://www.zhihu.com/question/654069556/answer/3478445466

内存对其

内存对齐是cpu为了更快内存访问速度而设计,可以一次取N个字节而不是1个1个字节取。

测试:

如果没有内存对其,a是8个字节,c是4个字节总共12个字节。因为有对其,所以8个占了一块,另外一块也得是8,所以变成了这样

那我在加上一个1个字节的char b

由于c是4个字节未占满8个字节所以b会继续利用剩下的字节去填满。结果还是16

增加alignas 可设置块的大小。但这个设置必须大于内含元素最大字节。

使用方式:

强行改成4个字节报错

正则表达式Regex用法和常见的匹配

以C#为例:

这里有几个()就多出个组。因为有3个()分别是(version:),([1-9]\\d{3}),([.]) 加上自身就是4组。

正则规则不细说了,看看就会了。

记录一些常用的:

//匹配任意数字
Regex.IsMatch(value, @"^[+-]?\d*[.]?\d*$");
//匹配正整数
Regex.IsMatch(value, @"^[0-9]+$");
//匹配身份证号
Regex.IsMatch(value, @"^([1-9]\d{5})(\d{4})(\d{2})(\d{2})(\d{3})(\d|X)$");
//匹配国内电话号
Regex.IsMatch(value, @"^1[3-9]\d{9}$");
//密码 必须包含一个大写字母一个小写字母一个数字一个符号 且大于8位
Regex.IsMatch(value, @"(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@\#$%^&\*\\\(\)])^.{8,}$",RegexOptions.Singleline | RegexOptions.Multiline);
//以.com为结尾的邮箱
Regex.IsMatch(value, @"^[A-Za-z0-9]+@[A-Za-z0-9]+(\.com)+$");
//日期 yyyy/mm/dd 但没有判断月份和日期的准确性
Regex.IsMatch(, @"^\d{4}/(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])$");
//匹配汉字
Regex.IsMatch(value, @"^((?![\u3000-\u303F])[\u2E80-\uFE4F]|\·)*(?![\u3000-\u303F])[\u2E80-\uFE4F](\·)*$");
//url地址
Regex.IsMatch(value, @"^(?:(http|https|ftp):\/\/)?((|[\w-]+\.)+[a-z0-9]+)(?:(\/[^/?#]+)*)?(\?[^#]+)?(#.+)?$");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值