SnowyArkEngine开发笔记[0x00]: 写在最前
发表于|更新于|Game EngineSnowyArk
|浏览量:
文章作者: SnowyLake
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 雪之湖畔 - SnowyLakeSide!
相关推荐

2023-09-11
浅谈UE5的C++程序化生成Shader
待搬运, 内容详见原文链接. 原文链接: https://zhuanlan.zhihu.com/p/574551808

2023-09-11
UE5.1移动端延迟管线基于Light Channels模拟Unity Rendering Layers
待搬运, 内容详见原文链接. 原文链接: https://zhuanlan.zhihu.com/p/577239276

2023-09-11
UE5.1移动端延迟渲染管线测试与剖析
待搬运, 内容详见原文链接. 原文链接: https://zhuanlan.zhihu.com/p/575618981

2023-06-24
从auto_ptr到unique_ptr:浅谈C++右值引用、移动语义与智能指针
std::auto_ptr是C++03对智能指针的第一次尝试,作为一个失败品,其甚至已然在后续的标准中被移除,但时至今日,我们依然可以透过它一窥C++发展史的一角。 出于方便、严谨起见,下文所提及类与函数,如未特别标明命名空间,均为std或其子命名空间下的标准库设施。 std::auto_ptr的失败之处 auto_ptr在语义上是有些类似它的后辈unique_ptr的,其拷贝构造/赋值函数并非深拷贝或浅拷贝,而是被设计成了资产的所有权转移即move语义,从而保证一份资源同时只能被一根auto_ptr所持有: 1234567891011121314template <class _Ty>class auto_ptr {public: auto_ptr(auto_ptr& _Right) noexcept : _Myptr(_Right.release()) {} _Ty* release() noexcept { _Ty* _Tmp = _Myptr; _Myptr ...

2023-09-11
关于std::optional传递开销的讨论与优化
在讨论std::optional之前,我们应该先适当谈论一下“可空类型”。 我们知道,在传统的C++中,是不存在现代编程语言中常见的“可空类型”(如C#中的Nullable)的,这就导致很多情况下我们无法给一个指针以外的变量或返回值设置一个安全的空值(实际上C++11之前用于指针空值的NULL也并不安全),而需要设置一个人为规定的标记值(Sentinel Value)来将其标识为空。 1234567//C#//size理应为非负uint? size = null; //OK, 通过C#语法糖[int?]标记size可为空,并将size设置为空//C++//因为需要考虑Sentinel Value,故size无法为unsigned int//当size == -1时,size为空int size = -1; //OK,通过人为设定标记值来将size设置为空 显而易见,传统C++使用标记值来对某一变量设置为空的行为相比现代语言是存在问题、丑陋且不安全的: 某些情况下为了考虑标记值不得不放弃最为合适的数据类型(比如unsigned int之于size) 其他使用者容易忘记甚至不...

2023-09-11
从零开始的UE5卡通渲染0x01:自定义着色模型
待搬运, 内容详见原文链接. 原文链接: https://zhuanlan.zhihu.com/p/551343308
公告
不想工作, 苦呀西~


