07 2022 档案
摘要:原文:浅谈 C++ 中的 const 和 constexpr,原文中“用constexpr修饰某物并不保证它一定在编译时被计算,也可以在运行时被计算”,我觉得是错误的。 const和constexpr都可以来修饰对象和函数。 修饰对象的时候两者之间最基本的区别是: const修饰一个对象表示它是常量
阅读全文
摘要:1、值传递 值传递,会将实参的值拷贝到被调函数的作用域中,产生一个局部变量,该局部变量的变化不会影响实参。 2、指针传递 指针传递,其本质上也是值传递,传递的值是一个地址。在被调函数的作用域中改变局部指针变量的值,是不会影响原实参指针的。但是局部指针变量可以进行解引用,对其引用对象进行修改。 3、引
阅读全文
摘要:1.智能指针的作用和定义 智能指针的作用是管理指针所指向的内存的生命周期,能够管理(控制)该内存的共享和释放,避免用户在使用完该内存后忘记释放,造成内存泄漏。 智能指针是普通(原生的,即未封装的)指针的封装,在提供普通指针的功能同时,管理指针所指向的内存空间,当智能指针的实例超出其作用域是,会自动调
阅读全文
摘要:该软渲染器的意义在于深入学习渲染管线的流程,在不使用图形API的情况下,实现对三维模型的渲染。 已实现目标 1、透视投影和透视校正每个顶点参数插值。 2、在NDC空间进行背面剔除。 3、采用 Clamp 纹理寻址实现纹理采样。 4、实现Z 缓冲(反转 z)、深度测试,模板缓冲和模板测试。 5、实现
阅读全文
摘要:(本文翻译自Real-Time Rendering 4th Edition) 渲染流水线的主要作用是,在给定的一个虚拟相机、一些三维物体、光源以及其他的条件下,生成或渲染出一张二维图片。因此,渲染流水线是实时渲染最基本的工具。在图1中描绘了渲染流水线的处理过程。二维图像中的物体的位置和形状取决于它们
阅读全文
摘要:1、坐标系 笛卡尔坐标系是游戏程序员最常用的坐标系,它用两个或三个相互垂直的轴来描述二维和三维空间的位置。点可以由元组(x,y)和(x,y,z)表示,其中的各分量是指从原点沿各轴到点的距离。 图1 笛卡尔坐标系 在三维笛卡尔坐标系中,要安排三个相互垂直的轴,我们有两种选择:右手和左手。左右手坐标系的
阅读全文
摘要:1、三次握手过程 TCP的三次握手是建立可靠连接的过程,该过程确定了双方的通信能力和为双方分配了相应的序列号(seq),其详细过程如下(前提是服务端处于Listen状态): (1)客户端为报文段随机分配一个序列号,并向服务端发送SYN(seq = x),同时客户端进入SYN_SENT状态。 (2)服
阅读全文
摘要:在虚拟装配系统的开发过程中,经常遇到任务需求同质化。如果以硬编码的形式将这些同质化的拆装任务进行开发,那么对每一个任务都需要进行定制开发。为了提高开发工作效率,将拆装任务的共性提取出来,并将之数据化,从而解决通用性问题。 拆装任务的共性包括: (1)任务要素:描述该操作步骤在装配任务中的信息,包括该
阅读全文
摘要:多态是指为不同数据类型的实体提供统一的接口。 编译时多态,也称静态多态,是指在编译是编译器会根据参数个数、参数类型、参数顺序和函数是否const来决定调用哪一个同名函数,或者根据模板参数来生成相应的模板类,其体现即函数重载和模板。 运行是多态,也称动态多态,是指程序在运行时,会根据调用者的类型,调用
阅读全文
摘要:顶点的法线 确定顶点的法线之前需要知道面法线。面的法线是一向量,该向量指向该面的外侧朝向,如图1。 顶点的法线就是包围该顶点的面的法线相加的结果的归一化单位向量(个人理解)。当然,也可以说面的法线是组成面的顶点的法线相加的结果的归一化单位向量,如图2. 在知乎用户谜之裙摆,称《“顶点法线可以直接根据
阅读全文
摘要:前置知识: capacity是指容器的容量,指该容器如果不重新分配内存,最多只能容纳capacity个元素。 size是指容器中当前存在的元素个数。 capacity和size的关系:size <= capacity reserve(n)是指为容器至少预分配n * sizeof(元素)的容量。如果分
阅读全文