- 博客(14)
- 收藏
- 关注
原创 渲染管线
渲染管线GPU和CPU的区别渲染管线应用阶段(Application Stage)几何阶段放入显存与Draw Call顶点着色器(Vertex Shader)坐标变换逐顶点色彩信息处理曲面细分着色器(Tessellation Stage)几何着色器(Geometry Shader)投影(Projection)裁剪(Clipping)屏幕映射(Screen Mapping)光栅化阶段(Rasterization Stage)图元组装(Primitive Assembly)三角形遍历(Triangle Trav
2021-03-14 17:06:43 650
原创 批处理
图形优化静态批处理动态批处理GPU InstancingSRP Batcher小结静态批处理标记为Batching Static的物体,在使用相同材质球的条件下,在项目打包时Unity会自动将这些物体合并到一个大的Mesh,并且提取这些共享材质的静态模型的顶点和索引数据放到一个共享Vertex buffer和Index buffer。优点:提高渲染效率,并不会减少DrawCall,只是减少了渲染状态设置,但是编辑器中会显示Batch减少。缺点:打包体积增大,运行时内存也增大。多个不同的Game
2021-03-14 11:14:40 225
原创 OpenGL概述
笔记什么是OpenGL初识OpenGLOpenGL语法OpenGL渲染管线什么是OpenGLOpenGL是一种API,是一种可以对图形设备访问的软件库。OpenGL被设计为一个现代化的、与硬件无关的接口。(可以在不考虑操作系统或窗口系统/在不同图形硬件系统上/完全通过软件的方式 实现OpenGL接口)。一个用于渲染的OpenGL程序主要操作:从OpenGL的几何图元中设置数据,用于构建形状使用不同的着色器对输入图元数据执行计算操作,判断他们的位置,颜色,以及其他渲染属性光栅化:将输入图元数据
2020-12-26 23:43:24 1044
原创 位运算小结
位运算基础a&ba|ba^b~aa<基础我们假设a=10001101(2),b=00100111(2)a=10001101_{(2)}, b=00100111_{(2)}a=10001101(2),b=00100111(2)为了表示方便下面的数统一用二进制表示(如果是其他形式会标注)a&b&——按位与,将a和b每个二进制位与,如aaa1000 1101bbb0010 0111a&ba\And ba&b0000 0101
2020-07-31 15:12:20 305
原创 string类(学习笔记)
stirng类string类是模板类:typedef basic_string<char> string;使用string类要包含头文件< string>string 的初始化:s
2020-06-04 16:57:51 705
原创 输入输出和文件操作(学习笔记)
输入输出和文件操作输入输出输入输出相关的类标准流对象判断输出流结束istream类的成员函数istream类的成员函数输出重定向输入重定向流操作算子整数流的基数:流操作算子dec,oct,hex控制浮点数精度的流操作算子设置域宽的流操作算子用户自定义流操作算子文件读写文件和流创建文件文件的读写指针显示关闭文件字符文件读写二进制文件读写二进制文件和文本文件的区别输入输出输入输出相关的类istream是用于输入的流类,cin就是该流的对象ostream是用于输出的流类,cout就是该流的对象ifst
2020-05-31 19:56:34 891
原创 虚函数和多态(学习笔记)
虚函数和多态表现形式虚函数的访问权限多态的实现原理动态联编虚函数表虚析构函数在类的定义中,前面有virtual关键字的成员函数就是虚函数virtual关键字只用在类定义里的函数声明中,写函数体时不用表现形式派生类的指针可以赋值给基类指针通过基类指针调用基类和派生类的同名虚函数时:1)指针指向基类的对象,那么被调用的是基类的虚函数2)指针指向派生类的对象,那么被调用的是派生类的虚函数派生类的对象可以赋值给基类引用通过基类引用调用基类和派生类中的同名虚函数时:1)引用引用的是一个基类的
2020-05-29 18:13:12 370
原创 马拉车(manacher)
马拉车简介应用简介abcbaabccba从上面两个简单的字符串中可以看出——回文串中心是不确定的:奇数:有一个字符作为回文串中心;偶数:有两个字符作为回文串中心;马拉车采用了非常聪明的小办法解决这个问题——往其中加入中间字符:变成了(暂且忽略第一个’~'字符)——>~a|b|c|b|a:回文中心为 ‘c’ 字符~a|b|c|c|b|a:回文中心为 ‘|’ 字符当然,你插入啥字符效果也差不多,看个人爱好就hen神奇的变成了回文中心只有一个字符了。说明一下模板题变量的意义看大佬的
2020-05-24 19:48:37 253
原创 浅谈case-switch和if-else
if-elsecase-switch将多个指令序列的分支地址编码为一张表,即跳转表(jump table)
2020-05-18 07:29:33 253 2
原创 组合数取余
组合数取余使用C++库函数利用杨辉恒等式利用逆元即计算 Cnm%pC_n^m\%pCnm%p .当 n,mn, mn,m 比较大时,就可以爆掉long long的范围了(据大佬说大概 n=60n=60n=60 就会爆了). 本蒟蒻就不验证了,相信大佬的 . 其实你算个阶乘就可以了使用C++库函数可以使用一个众所周知的数学定理当 n,m≤50n,m\le50n,m≤50 时,使用C++库...
2019-08-28 21:58:44 1389
原创 快速乘法
快速乘法普通版dls版__int128版在乘法计算 (a×b)%p(a\times b) \% p(a×b)%p 的结果时, a×b≥264a\times b\ge2^{64}a×b≥264(即unsigned long long范围) ,如果直接算,显然会溢出,这时,就可以用上快速乘法了 .普通版类似于快速幂,原理与快速幂类似,复杂度为 O(log2b)O(\log_2 b)O(log...
2019-08-25 20:02:27 423
原创 裴蜀定理(贝祖等式)
简介若 a,ba,ba,b 是整数,且 gcd(a,b)=dgcd(a,b)=dgcd(a,b)=d ,那么对于任意的整数 xxx , yyy , ax+byax+byax+by 都一定是 ddd 的倍数,特别地,一定存在整数xxx , yyy ,使 ax+by=dax+by=dax+by=d 成立。推论:aaa , bbb互质的充要条件是存在整数 xxx , yyy 使 ax+by=1ax...
2019-08-08 11:47:31 1689
原创 欧几里得/扩展欧几里得
欧几里得/扩展欧几里得欧几里得算法简介扩展欧几里得算法简介欧几里得算法简介欧几里得算法,也叫辗转相除,简称 gcdgcdgcd,用于计算两个整数的最大公约数.定义 gcd(a,b)gcd(a,b)gcd(a,b) 为整数 aaa 与 bbb 的最大公约数.引理:gcd(a,b)=gcd(b,amod  b)gcd(a,b)=gcd...
2019-08-06 18:34:48 138
原创 线性基
线性基简介预备知识简介构建方法应用洛谷P3812(模板题)hdu3949(第K大异或值)BZOJ 2115(图中最小异或路径)BZOJ2844CF1100F(线性基+离散)2019牛客第四场B(线段树+线性基求交)简介预备知识向量空间(vector space):定义 (F,V,+,⋅(F, V, +, \cdot(F,V,+,⋅)为向量空间(vector space),其中 FFF 为域...
2019-08-03 11:07:48 463 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人