摘要: 回顾Games101 chapter 1 - 6 前言 本文只写回顾后重新加深认识的知识 透视除法的意义 经过MVP矩阵之后,将模型空间下某点的坐标,转换成了裁剪空间下的坐标,此时因为裁剪空间的范围是$x∈[-W/2,W/2]$和$y∈[-H/2,H/2]$,所以经过以下两个变换,其中除以pz就是透 阅读全文
posted @ 2021-06-24 15:47 shadow_lr 阅读(813) 评论(0) 推荐(2) 编辑
摘要: 阅读全文
posted @ 2021-05-19 22:20 shadow_lr 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 前言 在探讨c++11中的Move函数前,先介绍两个概念(左值和右值) 左值和右值 首先区分左值和右值 左值是表达式结束后依然存在的持久对象(代表一个在内存中占有确定位置的对象) 右值是表达式结束时不再存在的临时对象(不在内存中占有确定位置的表达式) 便携方法:对表达式取地址,如果能,则为左值,否则 阅读全文
posted @ 2021-05-09 18:57 shadow_lr 阅读(47752) 评论(7) 推荐(11) 编辑
摘要: (目录) 前言 因为要整理近期学习的c特性,特地出一篇来介绍POD类型和c11引进的Trivial和Standard-layout 聚合 聚合是以下类型之一: 数组类型 类类型(通常,struct或union)具有 没有用户声明的构造函数 (直到 C++11) 没有用户提供的构造函数(允许显式默认或 阅读全文
posted @ 2022-02-17 13:03 shadow_lr 阅读(1196) 评论(0) 推荐(1) 编辑
摘要: 三/五/零之法则、CRTP、RAII、RTTI、RTTR、类型擦除、auto与std::vector 阅读全文
posted @ 2022-02-11 13:31 shadow_lr 阅读(606) 评论(5) 推荐(1) 编辑
摘要: More Effective C++ 条款(1-9)总结 基础议题 条款1:仔细区别pointers和references 如果有一个变量,其目的是用来指向(代表)另一个对象,但是也有可能它不指向(代表)这个变量,那么应该使用pointer,因为可将pointer设为null,反之设计不允许变量为n 阅读全文
posted @ 2021-12-23 16:21 shadow_lr 阅读(191) 评论(0) 推荐(1) 编辑
摘要: 本文前言 在学习图形学(games101 from bilibili)的时候,也遇到了像这样的问题,Cook-Torrance模型无法实现粗糙度为0时,物体微表面呈现绝对镜面的效果(呈现出一面镜子),为了搜寻解决办法,因此看到了这篇博客,因为是全英文,所以就花了一点时间翻译了一下,方便日后重新观看, 阅读全文
posted @ 2021-09-27 14:11 shadow_lr 阅读(813) 评论(0) 推荐(1) 编辑
摘要: 半球上的Hammersley 源作者:Holger Dammertz 一组关于如何在2D中使用Hammersley点集以在着色器程序中快速实用地生成半球方向的笔记。如果你发现任何错误或有意见,不要犹豫,请联系我或在我的博客上留言。 1. 概述 在编写与光照有关的着色器时,人们经常需要一些以表面法线为 阅读全文
posted @ 2021-09-26 13:43 shadow_lr 阅读(1549) 评论(2) 推荐(0) 编辑
摘要: Halton序列 在统计学中,Halton序列是用于生成空间中的点的序列,如Monte Carlo模拟的数值方法,虽然这些序列是确定性的,但它们的差异性很低,也就是说,在许多方面看起来是随机的。它们在1960年首次提出,是准随机数列的一个例子。它们概括了一维Van der Corput序列 用于生成 阅读全文
posted @ 2021-09-25 20:51 shadow_lr 阅读(1718) 评论(0) 推荐(0) 编辑
摘要: 回顾games101中的AA(抗锯齿) 前言 善于进行课后总结,可以更加巩固自己的知识和具体细节 锯齿(走样)产生的原因 本质上,在光栅化阶段中,用有限离散的数据想表示连续的(类似三角形的某一边),就可能存在采样点不够的问题,也就引申出了锯齿(走样 Aliasing)的这个概念,在信号处理以及相关领 阅读全文
posted @ 2021-08-28 15:39 shadow_lr 阅读(1288) 评论(2) 推荐(0) 编辑
摘要: 前言 UBT和UHT是编译工具,谁定义的呢,虚幻引擎自己定义的,拿来做什么呢,UBT和UHT是UE4用来简化多平台编译,去除用户自定义平台编译项目的操作 我们写的UE4代码不是标准的C代码,是基于UE4源代码层层改装了很多层的,UHT将UE4代码转换成标准的C代码,而UBT负责调用UHT来实现这个转 阅读全文
posted @ 2021-08-16 20:41 shadow_lr 阅读(2681) 评论(0) 推荐(0) 编辑
摘要: TreeView例子 先从Contruct中往子Slot添加Widget,先声明指向STreeView的指针,后续方便进行视图的一些操作 TSharedPtr<STreeView<TSharedPtr<FString>>> TreeBeingTested; TArray<TSharedPtr<FSt 阅读全文
posted @ 2021-08-11 10:46 shadow_lr 阅读(1552) 评论(0) 推荐(0) 编辑