- 博客(13)
- 收藏
- 关注
原创 图形引擎渲染过程中单pass和multi-pass的区别或者说是什么意思
简单来说一个pass就是走完图形渲染底层一个渲染流程,(从顶点计算 着色 光栅化等这一套流程)从而得到一帧数据的过程。multi-pass就是多pass也就是渲染一帧需要多个pass来配合完成最后那一帧的效果的过程。例如我只渲染一个人物这时候用单pass就可以实现,但是如果要渲染这个人物的阴影延迟渲染的流程中单pass就不行了,需要一个pass去渲染depthmap 得到深度信息,另一个pass去渲染场景 得到场景信息,然后(这里是关键也是为什么要用多pass的原因)场景渲染信息通过纹理采样去获
2020-05-21 11:20:47
3404
转载 设置VS支持UE4 usf语法高亮
一直在尝试设置VS支持UE4 usf语法高亮,也看到很多介绍说直接修改配置文件之类的,但是最终都没有效果。今天尝试搜到一篇文章,发现很有效而且很简单在此记录。转载:https://blog.csdn.net/qq_33727884/article/details/102482927如若不允许转载请联系。首先安装VS HLSL插件(这个很简单扩展里自己找就可以)其次 设置HLSL...
2020-04-30 11:27:55
2230
原创 20200430 快速排序
快排时间复杂度是nlogn,归并排序时间复杂度也是nlogn。可以说他们属于一个数量级,但是实际上快排一般情况下比归并速度要快2倍左右,所以在实际使用上还是有优势的。另外,在数学上已经证明排序的时间复杂度不会低于nlogn,既然如此我们在实际使用中应该尽量多的应用快排算法。虽然快排不稳定 也就是说排序之后元素位置可能会发生变化, 但是考虑到实际需求关注位置的情况不多,或者这样说对排...
2020-04-30 10:07:25
178
原创 20200426 两个正整数做 map 的 key
使用两个正整数做map的Key:struct FTwoIntAsKey{ int A; int B;}这时候要写这个结构体对应的HashCode函数size_t HashCode(FTwoIntAsKey k){ size_t sum = k.A + k.b; return sum * (sum + 1) / 2 + k.A;}这样即可...
2020-04-26 15:59:55
678
原创 visual studio 项目中所有筛选器都消失的解决办法
visual studio 原项目中有很多筛选器,如果发现筛选器全部消失,头文件 cpp文件都显示到一起了是因为点了(或者不小心点了)显示所有文件这个按钮了,再点一下就可以回来了。...
2020-04-23 10:58:31
2658
原创 20200403 - 模板函数实现和声明必须在同一个头文件里
模板函数声明和实现必须放在同一个头文件里。例如:// Test.hclass Test{ template<T> void Func(T num);};void Test::Func(T num){ // do something}如果不在同一个头文件里:// Test.hclass Test{ template...
2020-04-03 11:32:25
805
原创 20200402 - c++ default构造函数 自定义类做hashMapkey
1、C++ 11(应该是11具体记不清了,总之是新特性)加入了构造函数default的支持。但是这个关键字在什么时候用呢?答案是在你写了有参构造函数但是又不需要写无参构造函数,可以使用 Constructor() = default;原因是如果你没有定义任何构造函数、拷贝构造函数、赋值构造函数、移动(std::move)构造函数的时候编译器都会默认生成对应的无参版本,但是一旦你定义...
2020-04-02 10:17:15
314
原创 UE4安装4.22以上版本生成vs项目的时候提示缺少.net 4.6.2 的解决办法
UE4在安装4.22及以上版本的时候,会提示缺少.net4.6.2,原因是这个版本开始使用.net 4.6.2 来创建vs项目。解决办法就是下载安装.net4.6.2,但是win10默认安装的.net版本是4.7,这时候会提示:这台计算机中已经安装了 .net framework 4.6.2 或更高的更新,解决办法是下载.net 4.6.2开发版本,安装即可。1、https://dot...
2020-03-03 11:38:58
2399
2
原创 一文读懂C/C++ 结构体内存分配原则
C语言struct结构体极大的扩充了数据类型,其实就相当于C++中的类,C++为了保存对C的兼容也保留了结构体这个数据类型,不过一般C++中结构体都只有数据没有方法。但是C/C++中结构体在内存中的大小是如何确定的呢?其实 结构体在内存中的大小由以下两个规则确定;1、当前总大小是下一个数据类型的整数倍(如果不满足则补齐,但是单字节最大补齐4/8位具体由当前所有单字节数据类型中最大的数据...
2020-02-26 18:56:25
1476
原创 程序常量区 栈区
今天在思考一个问题,随手记一下:int Test(int n){ int a=1,b=2; int c = 0; for(int i=1;i<n;i++) { c = a + b + i; } return c;}int a = 1,b = 1;int c = a+b;问a ,b,c对应的值在内存中存储是...
2020-02-24 16:37:12
126
原创 C++ unordered_map 实现原理
C++ 常用的map类容器就是 map 和 unordered_mapmap的实现原理就是红黑树 每个节点到叶子节点最大树高不超过1 是平衡二叉树。查找的时间复杂度是O(lgn),但是插入和删除要维持红黑树的自平衡,所以效率较低。但是有序。unordered_map是c++11正式加入的对hashmap的官方实现(之前标准c++没有对hashmap的官方实现,我们用的都是非官方的实现,例如...
2020-02-16 22:09:12
15178
6
转载 学习网站
转载一篇学习网站收集的文章。————————————————版权声明:本文为CSDN博主「ithuangqing」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/sinat_33921105/article/details/103899234这里只做记录,还是看原文比较好。社区类1、Git...
2020-02-02 14:08:09
188
原创 UE中自定义K2Node节点
K2Node节点是UEd中的蓝图逻辑节点 在定制编辑器的时候会用到 相关资料参看以下几个链接:https://zhuanlan.zhihu.com/p/84958215这里记录一点 在实现了继承于自定义类UK2Node的类中实现了关键函数ExpandNode(K2Node节点编译时候用到)会报错 :纯编辑器节点无法在非编辑器蓝图基类(User Widget)中调用。找了原因 最后是...
2020-01-16 12:04:55
2167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人