自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

昨日Forever

兼听则明

  • 博客(6)
  • 收藏
  • 关注

原创 游戏 图形方面 面试题

图形学渲染流程(管线)说一下答: 传统的前向渲染管线流程是这样的 顶点和索引到顶点着色器,这里主要是对顶点进行变换,然后是光栅化,这里将剔除视锥体之外的元素,光栅化后三角形内的像素将进入到片元着色器(像素着色器),经过深度测试(模板测试)后写入到Target缓冲区内。BDRF函数答:BRDF函数是射出光线的辐照度和摄入光线辐射率的比值,在现代引擎中BRDF一般使用Cook-To...

2020-02-23 18:20:43 2007

原创 C++ 面试题 基础篇

1. new 和 malloc区别答: new 分配的空间不一定是堆 其次分配失败返回的方式不同 一个抛异常 一个返回NULL new分配对象无需指针转换,也无需指定分配大小 new分配对象会调用构造函数 new可以直接分配数组2. 派生类和基类的构造和析构顺序答: 构造:先基类 后派生类 析构:先派生类 后基类3. Vector类底层实现答:底层结构是数组 可以动态扩增 以两倍大小速度...

2020-02-23 18:03:38 566 3

原创 TopK问题(C++)

topk问题是问的比较多的问题,给定一个数组,求出最大的前K个数。1.排序 最符合直觉的就是先排序,再直接输出排好序的前K个元素(排序时应从大到小排)template<class T>auto topk(vector<T> arr, int k) { if (k > arr.size()) return arr; sort(arr.be...

2019-12-01 15:30:59 977

原创 碰撞检测算法

碰撞检测算法有很多,直接检测代价很大,一般使用多种算法进行优化。首先会对物体生成包围盒,例如AABB包围盒,该盒的面平行于XYZ轴,对包围盒是否碰撞进行检测,如果包围盒碰撞,那么就需要进一步检测。我们还会对物体生成凸多面体进行包围。当然碰撞检测一般针对的是动态物体和动态物体或者动态物体和静态物体。粗略阶段:1.利用空间划分,例如使用八叉树,划分后不在同一节点的两物体可以认为不会碰撞。...

2019-12-01 01:31:47 7184 1

原创 从Rust看内存管理

一直以来程序的内存模型分为栈和堆,这对应了程序的两种情形,在运行前就已经固定的内存使用和运行时动态的内存申请。前者在编译后内存空间就已经确定,每个Scope的进入和退出即为入栈和出栈,这种在栈分配的好处是由于内存地址事先确定,可以免去内存不确定下指针的解引用带来的额外开销和空指针等安全问题,同时免去了申请额外空白内存的开销并且空间的连续也提升了Cache的命中率,从而有效提升了性能。...

2019-11-10 12:02:04 1076 4

原创 实现C++智能指针

最近看不进书就在想C++内存模型,然后觉得可以实现一下智能指针,只知道原理是引用计数,没有参考别的什么。代码也写的比较啰嗦,先实现一下最常见的shared_ptrtemplate<class T>struct ptr { int ref_times = 0; T* raw_ptr = nullptr; ~ptr() { if (raw_ptr) delete raw...

2019-11-10 11:57:22 115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除