自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 法线的压缩

编码//将球面上点转移到正八面体上,得到的对应于z=0区域上的投影的xy坐标if( N.z <= 0 )//对z<=0情况进行翻转处理,用于填充边角等腰直角三角形解码//与编码进行对称解码处理if( N.z < 0 )//处于边角等腰三角形区域的数据,得到的z值必定<=0,对之进行恢复处理编码//投影到Z=0的正方形上//相当于乘了一个45度旋转矩阵与一个scale为二分之根号二的缩放系数的缩放矩阵,用于将小正方形的数据扩充至整个大正方形。

2025-02-23 02:36:48 244

原创 c++ if消除的代码

int a = 19;int b = 1;return a;elsereturn b;消除if的写法。

2024-08-03 16:27:47 141

原创 c++ std::vector的 erase的思考

首先说明一下,c++20提供了std::erase的接口了,对于删除vector的指定元素,还是优先应该考虑使用这个接口。这里说的是c++20以前的版本。简单改一下会更加的好,从后往前遍历。可以从rbegin开始来删除(最好不要这样去实现)。这个代码可以运行,而且没有错误,能够正确删除元素,但是他的效率并不高(因为移动的数据一定比从后往前删除的时候移动的数据多)1.在删除的时候,我写代码惯性使用下列代码了。MSVC编辑器有运行错误,不允许比首地址小。MSVC的代码要如下。

2024-01-10 21:10:07 645

原创 构建不能继承的c++类的另外一种实现

利用编译器需要产生析构函数,把FinalClass的析构函数变成虚的,并且给出final标记,这样编译的时候就无法通过了。从而达到不能被继承。一般构建不能被继承的c++类,都是构建虚拟继承的类,然后不能继承的类去虚拟继承这个类,这样就可以了,比如。这样 Finalclass就是不在可以被继承的了。下面我使用c++11之后新的语法支持。

2023-11-09 21:23:26 49 1

原创 c++ 可变参模板特化demo

template struct Test;template struct Test { Test() { int a = 0; }};template struct Test{ Test() { int a = 0; }};template

2022-07-06 18:05:47 472

原创 CPU预测分支的测试

对一个大的数组去做一些判断和修改,比如const int size = 100000;int array[size] ;for(int i = 0; i < size; ++i){array[i] = rand() % 1280;}//std::sort(arrar, array+size); 会影响到cpu的预测。一旦排除了,cpu的预测几乎都会成功long loong nResult = 0;for(int i = 0; i < size; ++i){

2022-03-28 10:12:47 346

空空如也

空空如也

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

TA关注的人

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