- 博客(27)
- 收藏
- 关注
原创 图形学经典算法
//bresenham画线算法 draw line算法思想: //1 图像是由屏幕中离散的点组成,这些点用整数来表示。 // 2 为了保证能绘制更多的点,需要选择 x 方向 和y方向中变化最快的 作为自变量 // 3 从像素中心开始绘制,当像素增加或者减少大小大于0.5时候 每次朝着变化率快的方向划线, // 直线斜率表达式float k = dy / dx ,为了减少浮点数计算 比较式两边都乘以2 *dex -&g...
2021-07-01 00:01:30
1403
原创 安装双系统 ubuntu 总结
1 先分区,留出一个比较大的磁盘空间,在系统爱安装时候,分区界面里面,至少分出两块,一块挂载 \,不挂载是无法安装系统的,另一块挂载 \home。 如果安装双系统,安装系统前一定记得备份windows系统。安装中出现 SATA模式问题就进入系统bios中把SATA 模式切换为Ahc2 安装显卡驱动时候,不小心跟新或者安装内核,会因为显卡兼容问题,导致开机无法进入。1禁用开源驱动 nouveau2使用命令行禁用自动更新 修改sudo nano /etc/apt/apt.conf.d/20auto-up
2021-04-28 12:44:24
226
原创 android 之 java 调用 c++
java 通过 jni 即 java native interface 来调用实现 java 与 其他语言的相互调用java调用c++ 代码的方式是通过链接库来调用的,所以需要先编译为链接库,因此可以通过camke先编译为链接库,然后调用链接库中对应的方法,某一个java javCls 类中需要调用 一个没有返回值的 c++ 中的 方法: 比如 nativeC++FunjavCls{ ... native void nativeC++Fun();}实现步骤:1 那么首先...
2021-02-02 23:39:25
953
原创 移动端图形架构之PowerVR of Imagination Tile-based rendering
目录PowerVRTMRTMR的缺点IMR 和TBR区别PowerVR第一篇打算记录目前了解到也是听到的最多PowerVR的Tile-Baed Deffered Rendering下面简称TBR。目前渲染模式主要分两种,Immediate Mode Rendering 下面简称IMR。IMRTMR 就是一种设计比较简单的流水线作业多架构方式,主要在PC端工作,它无需考虑大量的带宽消耗,丢过来渲染数据,然后直接渲染,因此渲染速率很高。 它的渲染流程图如下:T..
2020-12-24 15:58:57
950
4
原创 URP Lesson Two
Draw Call 着色器和合批<table><tr><td bgcolor=yellow>背景色yellow</td></tr></table>
2020-09-02 08:19:23
1025
原创 Mipmap 和 过滤 (看完不理解你打我)
Mipmap 总结:作用:1 用于LOD2 提升图片质量。3 加速渲染时间,也可以减少每个像素渲染所需要用到采样的纹理数量,(增加所采集样本的存储位置不太理解这句话)。4 减少GPU 与cpu的压力,通过提前存储了各种不同级别的mipmap,可以在图片远离和靠近摄像机的时减少计算,从而减轻了cpu与GPU压力。怎么选择mipmap 级别:很自然想到的一点是 会根据图片距离摄像机的远近来选择需要使用的mipmap级别。如果通过距离摄像机的远近的话,gpu会计算每一个像...
2020-08-08 21:48:43
3843
翻译 URP Lesson One
What are partial classes?It's a way to split a class—or struct—definition into multiple parts, stored in different files. The only purpose is to organize code. The typical use case is to keep automatically-generated code separate from manually-written cod
2020-07-19 23:59:59
528
翻译 Octree 了然于胸
今天是北京时间 2020 年 6月25 - 端午节的下午4点33分,由于北京出现疫情的原因,今天没有和女朋友出去玩,加上现在外面下着冰雹,固而心情很舒畅,便想着把之前一直想写却没有时间写的 octree 做一下笔记,以便以后阅读。 开始还是需要点开熟悉的wiki来查询一下定义: Anoctreeis atree data structurein which eachinternal nodehas exactly eightchildren. Oc...
2020-06-27 13:00:52
1083
原创 帧缓冲
opengl 中默认会为我们创建一个帧缓冲,以后的颜色深度模板等信息会保存在里面。一 什么是帧缓冲以下摘抄自著名的wiki:Aframebuffer(frame buffer, or sometimesframestore) is a portion ofrandom-access memory(RAM)[1]containing abitmapthat drives...
2020-02-10 17:48:28
1589
原创 HDR
一 什么是HDR?了解HDR前需要先了解什么是LDR。通常受限制与人的视觉系统,通常显示器让显示器支持1670 万(24位)的颜色值,这些颜色值通常可以足够表示一个物体的颜色。显示器屏幕每个像素由3种颜色通道R、G、B组成,每种各占8位,组合起来就是24位,表示值的范围也就是0-255,那么对应的每个颜色通道的对比率范围也就是1:256。我们就称作这样的范围的颜色值叫做 LDR低动态范围 。...
2020-02-10 15:43:42
1783
原创 linux 基本命令
printenv 查看环境变量type 命令 查看命令是内部还是外部命令man + 命令 查看 外部命令 (也可以用 命令 + --help)help + 命令 查看内部命令找到命令的可执行文件用 whereis + 命令/home 目录下比较重要文件/etc 配置文件目录/home 用户家目录 权限很高可以存放自己的私有文件/proc 内核映射文件touch 查...
2020-01-29 23:10:37
173
原创 c++ 知识加强
介绍typedef 好的文章 https://zhuanlan.zhihu.com/p/81221267 和https://liam.page/2017/02/05/pointer-in-C-and-Cpp/COM"自身是一个很复杂的概念,是微软当时为了让Office能够在办公软件当中胜出,所开发出来的一种技术。在Office当中使用的基于"COM"的技术主要有"OLE"和”DDE“...
2020-01-29 22:57:07
247
原创 python 语法
单行 注释 #多行注释 ''' xxxx '''查看 变量类型 type(变量)None 类似 c++格式化输出 %d %xxxint(str) 字符串转int
2020-01-29 22:50:32
199
原创 矩阵中 “行优先“ 和 “列“ 优先
什么是行优先和列优先?故名思意,当我们表示一个矩阵的时候把行放在前面就是行优先,把列放在前面就是列优先。比如 一个矩阵[m][n] , 表示为 m行n列矩阵,表示为行优先,当表示为 m 列n行的时候就是表示列优先。一个三维空间中的向量p分别沿着x方向y方向z方向上分别平移为a,b,c距离,用行优先的平移矩阵表示为 ,用一个列优先的平移矩阵表示为,两个矩阵的关系也不难看出其实是互为转...
2020-01-29 21:26:17
14450
翻译 高光IBL
高光IBL在上一篇教程中,我们通过预先计算作为照明的间接漫射部分的辐照度图,将PBR与基于图像的照明结合起来。在本教程中,我们将关注反射率方程的镜面部分Lo(p,ωo)=∫Ω(kdcπ+ksDFG4(ωo⋅n)(ωi⋅n))Li(p,ωi)n⋅ωidωiL_o(p,\omega_o) = \int\limits_{\Omega} (k_d\frac{c}{\pi} + k_s\f...
2019-01-01 18:33:48
4282
1
原创 particle unvisible on bulid while visible on Game view
上周四发现,在unity的Game view 里面和build之后的游戏节目显示效果表现不一样,在unity 的Game view 里面粒子效果显示正常,但是build完之后粒子不显示了。 开始怀疑是shader的原因,于是用 renderdoc(FamgDebug 也可以)查看,发现压根就没渲染于是排除shader渲染方面的原因。于是查看代码,查了半天发现也没问题.(这...
2018-11-26 23:21:05
162
原创 修改特定扩展名文件的默认打开程序
windows默认打开.txt 的notpad有些鸡肋,可以通过一下命令修改.txt默认打开程序。Ftype txtfile="E:\Program Files\Sublime Text 3\sublime_text.exe" "%1"filename为默认的.txt文件的名称(txtfile),可以通过 assoc .txt 来查看 如下图"E:\Program Files\Su...
2018-11-22 15:25:55
2072
原创 mklink 参数使用
工作中需要使用mklink来达到节约磁盘占用,提高工作效率的目的MKLINK [[/D] | [/H] | [/J]] Link Target/DCreates a directory symbolic link. Default is a file symbolic link./HCreates a hard link instead of a symbolic link./JCr...
2018-10-15 16:01:40
1822
原创 通过栈来了解递归的原理和实现
作为一个很基础的东西递归在面试中是作为最基础的东西,既然是最基础的东西今天就巩固一下:首先去网上大致找了一下 包括一些知乎大神到最后也没怎么把这个原理很透彻很清晰的说清楚,我觉得通过栈的执行很容易把这个过程说清楚了.wiki上定义是:Recursion is the process a procedure goes through when one of the steps of th...
2018-09-21 00:34:40
4288
7
原创 c++学习心得
1. c++中类中非静态成员函数 默认访问的时候会有一个this指针指向它,而静态成员函数没有。this 指针的作用就是其实是改对象的一个地址,而静态成员函数因为在全局区域它不属于任何一个对象因此没有this 指针。2. c++ 中类和结构体的区别,c++中类结构体的区别不像c#中,类是引用类型结构体是值类型.结构体不能继承。由于c++是从c演变而来因此c++中结构体是对c中结构体的保留。c+...
2018-09-06 11:05:07
907
原创 从foreach 到yield 来聊聊协程
C#实现foreach 其实是通过对一个集合不断的迭代输出的过程 。 它需要满足的条件是 1 foreach的对象有 GetEnumarator方法 来返回迭代对象的集合 2 需要有一个类继承IEnumerator接口。该类有一个集合保存了所有需要迭代的对象,并且该类中必须有几个方法:返回一个是否还有需要迭代的对象的bool MoveNext()方法,重新设置迭代索引的 Rese...
2018-07-12 12:47:42
712
原创 lua 学习整理
最近学习lua,有几个要点需要总结一下最重要的莫过于使用lua来实现面相对象了由于lua中的对象其实是一个table,而metatable为table的原表,为访问一个table提供了可扩展的可能性,因此使用metatable来扩展table的功能进而实现对象和继承的功能.当访问一个table的某个变量的时候如果该table中不存在就会去该metatable的__index 里面去找,该__ind...
2018-06-06 18:06:07
285
原创 Early -z Test
在渲染管线中这些测试包含 裁剪测试 模板测试 深度测试 。只要在执行的过程中不影响这些测试,默认都可以让这些测试提前执行。这些影响测试的条件包括:1 写出深度 gl_FragDpth 因为改变了原有片段的深度值。2 硬件限制 比如 如果alpha test 被激活的话,有一些硬件就不会进行深度的提前测试因为必须需要执行alpha test .而alpha测试没法提前执行(因为物体的alpha值不...
2018-05-04 20:17:49
672
翻译 GC
优化垃圾内存介绍当我们运行游戏的时候,使用内存纯粹数据。当这些数据不需要的时候,这些内存就会释放以便于我们重新使用。垃圾就是不被使用的数据占用的内存。垃圾收集就是处理这些内存仍旧可以被利用的过程的名称。unity使用垃圾回收来管理一部分内存。如果垃圾收集发生的太频繁或者处理的工作太多就会造成性能低下,这也就是意味着垃圾收集是影响性能问题的一个普遍的原因。在这篇文章中我们会学到当垃圾回收发生时候垃圾...
2018-04-25 23:51:26
261
原创 说一下 Deferred Shading MSAA那些事
以下内容纯属自己总结如有错误欢迎指正前言 defferred shading 可以在大量光照场景中节省性能,但是不能使用混合不能使用 MSAA。下面先梳理一下概念MSAA 多重采样抗锯齿 与普通采样不一样的地方是 在光栅化阶段,由硬件自己进行特定运算来多重采样最终输出平滑的颜色wiki 定义如下In supersample anti-aliasing, multiple locations are...
2018-04-12 18:21:12
2440
原创 从opengl 测试到unity alphatest
OpenGL Test Opengl中测试共分为几个阶段 裁剪 apha 测试 模板测试 和深度测试,OpenGL可以为像素保存颜色、深度值和模板值,利用混合实现透明时,像素颜色不发生变化,但深度值则会可能变化,模板值受glStencilFunc函数中第三个参数影响;利用测试操作实现透明时,像素颜色不发生变化,深度值也不发生变化。Unity Alphatest unity 中...
2018-03-25 14:44:38
495
原创 一次 string的 GC 探寻
public class PlayText : MonoBehaviour { Text txt; string story; StringBuilder sb; void Awake() { txt = GetComponent(); story = txt.text; txt
2017-11-29 14:27:53
1115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人