自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (2)
  • 收藏
  • 关注

原创 GAMES101——Lecture 07: Shading 1 (lllumination, Shading and Graphics Pipeline)

文章目录1 照明和阴影最基础的模型:Blinn-Phong反射模型漫反射高光环境光最终的Blinn-Phong 模型着色频率如何知道逐顶点的法线是什么?当这些物体都变成三角形之后,变成屏幕上的一个个像素点之后,这些像素的值和颜色应该是什么呢?这个就是着色的功能。下一步操作为着色。挪动一下光源后,物体并没有发生变化,但是物体的颜色却发生了变化。这个问题应该如何解决,就是着色的作用。这门课中着色的定义:对不同的物体应用不同的材质这样一个过程。因为不同的材质肯定和光线的相互作用有不同的方法,可通过这种不同

2021-07-09 14:34:31 493

原创 GAMES101——Lecture 09: Shading 3 (Texture Mapping Cont)

文章目录3.1 如何在三角形内部进行属性的插值?3.1.1 重心坐标什么是重心坐标?如何求得三个系数,也就是如何求得重心坐标呢?方法一:面积比方法二:公式法3.1.2 求得重心坐标后,如何用它进行插值呢?3.2 如何将纹理应用在实际的渲染中?3.2.1 纹理的放大(纹理太小了怎么办?)纹理过小导致的问题描述双线性插值双向三次的插值3.2.2 如果纹理太大了怎么办?纹理太大导致的问题描述解决方法一:超采样解决方法二:Mipmap什么叫mipmap?如何知道要查询的正方形区域有多大?如何用mipmap来查询正方

2021-07-09 14:28:15 797

原创 GAMES101——Lecture 08: Shading 2 (Shading, Pipeline and Texture Mapping)

文章目录2 实时渲染管线管线概述着色器GPU3 纹理映射2 实时渲染管线管线概述先把三维空间中的点投影到二维空间中去,然后再指定每哪三个点可以组成一个三角形。三角形会覆盖屏幕上的哪几个像素点(光栅化 ),对这些像素点进行着色。着色器着色器shader 是用来定义任意的顶点,怎样操作任意的像素或者片段。网站推荐,只用关注场景如何渲染Inigo Quilez http://shadertoy.com/view/ld3Gz2GPU用于执行图形管线计算的专用处理器。GPU 本身是一个高

2021-07-09 14:09:40 346

原创 GAMES101——Leature 06: Rasterization 2 (Antialiasing and Z-Buffering)

文章目录1 反走样 Antialiasing1.1 采样的理论采样会产生不同的问题:反走样的理念:采样之前做个模糊操作(滤波)频域傅里叶变换通过频率来分析走样是怎么回事儿滤波 = 去除某些频率内容 = 卷积(=平均)采样 = 重复频率内容1.2 实际的图形学中如何做反走样方法一:增加采样率方法二:反走样模糊操作MSAA采样操作2 可见性与遮挡2.1 画家算法原理涉及到一个问题2.2 问题解决方法:深度缓存/缓冲 z-buffer1 反走样 Antialiasing1.1 采样的理论采样不止可以发生在不

2021-07-09 14:07:28 689 3

原创 GAMES101——Leature 05: Rasterization 1 (Triangles)

0 回顾上节课的内容上节课主要说了观测变换(其中包括了视图变换和投影变换):视图变换:利用摄像机和物体间的相对运动关系,始终把摄像机从一个任意的位置移动到一个经典的位置:在原点,看向 -z 轴,并且向上方向是 y 轴。然后把其他所有的物体和这个相机一样的移动。这样就可以保证把模型变换应用在所有的模型上,把所有的视图变换也应用在所有的模型上。在此之后,我们就知道所有的物体都是由一个标准的位置看过去,接下来就需要把物体投影成二维的照片。投影变换(将三维物体投影到二维照片上)正交投影:直接把

2021-07-09 11:43:36 397

原创 GAMES101——Leature 03: Transformation

0 回顾上节课的内容向量点乘叉乘矩阵1 为什么要学习transform变换?模型变换 model视图变换 view2 2D transformations使用矩阵表示转换均匀缩放、非均匀缩放 反射变换 切变 旋转默认围绕坐标原点,逆时针旋转 以上的几种变换都是线性变换。也就是以上的变换都可以写成一个矩阵 x 向量的形式。x' = Mx3 齐次坐标在进行平移变换的时候,变换不能以单个的矩阵形式表示,所以此

2021-07-09 11:39:27 247

原创 Renderdoc源码研究——修改其中签名并替换

文章目录源码思路修改思路使用方法源码思路1、查找apk包中已经存在的签名文件,并移除该签名文件。部分核心源码如下:bool RemoveAPKSignature(const rdcstr &apk){// Get the list of files in META-INF rdcstr fileList = execCommand(aapt, "list \"" + apk + "\"").strStdout; for(rdcstr &line : lines)

2021-07-09 11:26:16 926

原创 Renderdoc源码研究——duration计算过程

文章目录源码逻辑Timer Queries 小结1、要了解的是什么?2、为什么需要了解?3、了解的方式是?踩的坑源码逻辑1、点击面板上的图标,触发事件 on_timeDraws_clicked()GPUCounter 这个结构体中会存储很多变量,其中的EventGPUDuration 变量就是存放的duration的值。【定义】GPUCounter:: EventGPUDuration —— 用于表示:此事件在 GPU 上花费的时间,由两个 GPU 时间戳之间的增量衡量。// Event

2021-07-09 11:18:21 2632 3

c++的虚函数

文章目录c++的虚函数虚函数的作用?虚函数的使用方法?虚函数和纯虚函数的区别?多态如何实现?为什么基类的析构函数要用虚函数?为什么c++默认的析构函数不是虚函数?多态的虚函数表是在编译的时候创建的还是运行的时候创建的?虚函数可以是内联函数吗?c++的虚函数虚函数是定义在基类中的函数,用virtual声明成员函数为虚函数。子类可以选择性地对其进行覆盖。静态函数不能是虚函数 (因为它没有t...

2020-03-19 22:02:41 338

原创 乐观锁、悲观锁

文章目录1 悲观锁2 乐观锁2.1 CAS算法 (Compare and Swap)2.2 版本号机制 -- 可用于解决ABA问题3 c++ 中用过哪些锁?c++ 中有乐观锁吗?乐观锁对应于生活中乐观的人总是想着事情往好的方向发展;悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。1 悲观锁总是假设最坏的情况,每次去拿数据的时候都认为会被修改,所以每次拿数据的时候都会上锁。这样别...

2020-03-19 21:47:35 2772

原创 STL介绍以及其底层实现?包括vector, map, list

文章目录1 介绍一下STL?2 STL如何实现vector、list、map的底层机制?1)vector为什么vector的插入操作可能导致迭代器失效?2)list3)map3 vector和list的区别vector插入删除和list有什么区别?1 介绍一下STL?STL,Standard Template Library,即标准模板库。包括如下六个组件:它们之间的关系是:分配器给容器分配...

2020-03-19 21:43:06 3965

原创 const关键字、volatile关键字、static关键字、define

文章目录const的作用volatile关键字const调用时需要注意的地方const和define的区别?static的作用const和static的区别?const的作用const修饰一个变量,可以使得这个变量的值不能被改变。因为const对象一旦创建后,其值就不能再改变,所以const对象必须实例化。const可以修饰指针,可以指定指针自己为const(常量指针),也可以指定指针所指...

2020-03-19 21:39:58 515

原创 内联函数

文章目录什么是内联函数?内联函数和宏定义的区别什么是内联函数?内联函数是C++中的一种特殊函数,它可以像普通函数一样被调用,但是在调用时并不通过函数调用的机制,而是通过将函数体直接插入调用处来实现的。在函数规模很小的情况下,函数调用的时间开销可能相当于甚至超过执行函数本身的时间,把它定义为内联函数,可大大减少程序运行时间。如何提高运行时间?答案:内联函数同宏函数一样将在被调用处进行代码...

2020-03-19 21:37:03 447

原创 进程和线程

文章目录1 进程2 线程3 进程和线程的联系4 进程和线程的区别5 进程间通信方式6 线程间的通信方式互斥和同步的区别点击查看参考资料1 进程进程是对运行时程序的封装,是系统进行资源调度和分配的基本单位,实现了操作系统的并发。至少有5种基本状态初始状态等待状态就绪状态执行状态终止状态2 线程线程是进程的子任务,是cpu调度和分派的基本单位,用于保证程序的实时性,实现进...

2020-03-19 21:33:15 992

原创 TCP和UDP协议

文章目录1 什么是TCP?2 什么是UDP?3 TCP 和 UDP的区别是什么?1 什么是TCP?TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。面向连接。即两个使用TCP的应用(通常是一个客户端和一个服务器)在彼此交换数据包之前,必须先建立一个TCP连接。可靠的。在一个TCP连接中,仅有两方进行彼此...

2020-03-19 21:29:34 190

原创 构造函数、析构函数、虚函数

文章目录为什么构造函数不能为虚函数?为什么析构函数要定义为虚函数?虚函数的工作原理?有关虚函数的几个知识点为什么构造函数不能为虚函数?参考回答:在类中,构造函数用于初始化对象及相关操作。构造函数是不能声明为虚函数的,因为虚函数对应一个virtual table(虚函数表),这个表的地址是存储在对象的内存空间的。而在执行构造函数前,对象尚未完成创建,内存都没有被分配,所以无法去查询虚函数表...

2020-03-07 16:27:11 909

转载 Marching Cubes算法——图像数据到网格数据

概述之前的博文已经完整的介绍了三维图像数据和三角形网格数据。在实际应用中,利用遥感硬件或者各种探测仪器,可以获得表征现实世界中物体的三维图像。比如利用CT机扫描人体得到人体断层扫描图像,就是一个表征人体内部组织器官形状的一个三维图像。其中的感兴趣的组织器官通过体素的颜色和背景加以区别。如下图的人体足骨扫描图像。医生通过观察这样的图像可以分析病人足骨的特征,从而对症下药。    这类应用在计算...

2019-05-20 15:44:46 2474 2

转载 AMiner《计算机图形学研究报告》

只是简要记录一下我自己觉得感兴趣和有用的内容,为今后继续深入研究做些准备吧。图形学的应用游戏:有三大应用(几何学、动画和绘制)科学计算可视化:目前广泛应用于医学、流体力学、有限元分析和气象分析中。尤其在医学领域中,可视化有着广阔的发展前途。影视制作:近些年来人们普遍将注意力转向基于物理模型的计算机动画生成方法。虚拟现实仿真技术计算机辅助设计与制造:计算机图形学被用来进行土建工程、机...

2019-04-18 16:37:56 1082

原创 简单的冯氏光照模型

冯氏光照模型分为三个部分:环境光 Ambient 即使在完全黑暗的情况下,世界上也通常会有一些光亮(比如:月光、远处分散的光源),物体不会是完全黑暗的。漫反射光 Diffuse 视觉上最显著的分量。物体的某一部分越是正对着光源,那么这部分就越亮。镜面光 Specular 模拟有光泽物体上的亮点。这个颜色会更加倾向于光的颜色。环境光照void main(){ ...

2019-04-18 12:41:23 890

原创 总结GLM库中glm::transform(位移), glm:scale(缩放), glm::rotate(旋转)

在使用下面所介绍的函数之前请记得包含相关头文件,一般包含这几个就够了:#include <glm/glm.hpp>#include <glm/gtc/matrix_transform.hpp>#include <glm/gtc/type_ptr.hpp>下面这三个函数主要在模型矩阵中运用,因为模型矩阵的主要功能也就是旋转、平移、缩放。glm:...

2019-04-18 10:03:48 36603 5

原创 坐标系统 -- 四大空间及三大变换矩阵

坐标系统 -- 四大空间及三大变换矩阵局部空间: 物体所在的坐标空间,即对象最开始所在的地方。有可能你创建的所有模型都以(0, 0, 0)为初始位置,然而它们会最终出现在世界的不同位置。世界空间: 如果我们将所有的物体导入到程序当中,它们有可能会全挤在世界的原点(0, 0, 0)上,这并不是我们想要的结果。我们希望物体在一个大的世界空间中合理地位于我们想让它处在的位置。观察空间: 就是从摄...

2019-04-17 14:19:01 726

转载 linux下查看opengl版本

创建test.c文件#include &lt;stdio.h&gt;#include &lt;GL/glut.h&gt;int main(int argc, char** argv){ glutInit(&amp;argc,argv); //显示模式初始化 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);...

2018-12-24 18:52:07 10048 4

原创 ubuntu16.04环境下 安装 Qt Creator 和 Qt library4.8.6

下载前的准备工作安装依赖库sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libxcursor-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxrandr-dev libxrender-dev安装 Qt Creater下载地址:http:/...

2018-12-24 15:47:34 4056

原创 在Ubuntu下卸载QT

1、在Linux的软件中心安装如果你在安装的时候,选择的是默认路径,那么应该是: /opt/Qt5.12.0 (以5.12.0版本举例)如果在安装的时候是自定义的安装路径,则进入该安装的文件夹下.找到MaintenanceTool文件.然后输入命令:./MaintenanceTool会弹出界面点击删除卸载即可.2、编译源文件安装如果是编译安装,直接删除你安装的文件夹....

2018-12-24 14:43:53 5575

原创 OpenGL中常用的函数中文手册

https://blog.youkuaiyun.com/flycatdeng/article/details/82588903 OpenGL ES 2.0 中文API文档(转载)目录glGenBuffers -- 生成缓冲对象的名字glBindBuffer -- 绑定一个已命名的缓冲对象glBufferData -- 把用户定义的数据复制到当前绑定缓冲的函数glGenB...

2018-12-14 20:12:20 6586 1

原创 2016年蓝桥杯java——抽签

X星球要派出一个5人组成的观察团前往W星。 其中: A国最多可以派出4人。 B国最多可以派出2人。 C国最多可以派出2人。 …. 那么最终派往W星的观察团会有多少种国别的不同组合呢? 下面的程序解决了这个问题。 数组a[] 中既是每个国家可以派出的最多的名额。 程序执行结果为: DEFFF CEFFF CDFFF ...

2018-07-16 00:37:31 563

原创 2016年蓝桥杯java——分小组

题目: 9名运动员参加比赛,需要分3组进行预赛。 有哪些分组的方案呢? 我们标记运动员为 A,B,C,… I 下面的程序列出了所有的分组方法。 该程序的正常输出为: ABC DEF GHI ABC DEG FHI ABC DEH FGI ABC DEI FGH ABC DFG EHI ABC DFH EGI ABC DF...

2018-07-16 00:35:23 715 1

原创 2016年蓝桥杯java——凑算式

题目: B DEF A + — + ——- = 10 C GHI 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。 比如: 6+8/3+952/714 就是一种解法, 5+3/1+972/486 是另一种解法。 这个算式一共有多少种解法?需要注意的地方是:两个整数相除得到的是整数,所以2...

2018-07-16 00:32:31 1488

原创 2016蓝桥杯java——生日蜡烛

题目: 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。 请问,他从多少岁开始过生日party的 请填写他开始过生日party的年龄数。解题思路: 暴力破解的方法 不断循环到找到236为止!设两个变量:从第i年开始,到今年吹了j根蜡烛,那么到今年为止的总蜡烛数是s=s+j。代码如下:...

2018-07-16 00:30:43 1352

原创 2016蓝桥杯java——煤球数目

有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), …. 如果一共有100层,共有多少个煤球? 请填表示煤球总数目的数字。解题思路: 真真是做起数学题来了 已知an=an-1+n, 求an的通项公式:(看草稿纸 做高中数学题!!!)答案是:an=(n^...

2018-07-16 00:24:55 1024

原创 n皇后问题_java语言

在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。 Input: 共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。 Output: 共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。 ...

2018-07-16 00:21:00 281

原创 2017年蓝桥杯javaB组——承压计算

题目: X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每块金属原料的外形、尺寸完全一致,但重量不同。金属材料被严格地堆放成金字塔形。 其中的数字代表金属块的重量(计量单位较大)。 最下一层的X代表30台极高精度的电子秤。 假设每块原料的重量都十分精确地平均落在下方的两个金属块上, 最后,所有的金属块的重量都严格精确地平分落在最底层的电子秤上。 电子秤的计量...

2018-07-16 00:17:55 1533

原创 java中求素数的几种方法汇总及比较

首先来看两道题目: 1. 请实现一个函数,对于给定的整型参数 N,该函数能够把自然数中,小于 N 的质数,从小到大打印出来。比如,当 N = 10,则打印出:2 3 5 7**重点内容** 2. 请实现一个函数,对于给定的整型参数 N,该函数能够从小到大,依次打印出自然数中最小的 N 个质数。比如,当 N = 10,则打印出:2 3 5 7 11 13 17 19 23 29解题思维:...

2018-07-16 00:13:46 28400 5

原创 2017年蓝桥杯javaB组——等差素数列

**题目:**2,3,5,7,11,13,….是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30,长度为6。 2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。 这是数论领域一项惊人的成果! 长度为10的等差素数列,其公差最小值是多少?解题思维: 暴力破解 枚举...

2018-07-16 00:08:50 1509 1

原创 2017年蓝桥杯——购物清单

题目:购物单小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。取款机只能提供100元面额的纸币。小明想尽可能少取些现金,够...

2018-07-16 00:05:25 1048

原创 Echarts中雷达图的使用&legend过多需要出现滚动条的办法

效果图: legend过多需要出现滚动条的办法: legend中的属性这样设置即可:type:’scroll 注意引用的js版本,最好是比较新的版本html代码如下:&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;title&gt;...

2018-05-28 01:36:58 8747

原创 Echarts折线图实例

效果图: 源代码如下:&lt;!DOCTYPE html&gt;&lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;title&gt;第三部分&lt;/title&gt;&lt;/head&gt;&lt;body&gt; &lt;div id="main" style

2018-05-28 01:24:21 4800 1

原创 Echarts中堆叠条形图的实例&legend参数设置 由水平变为侧边垂直排列

老规矩,先上效果图legend的效果实现主要靠这几行代码:legend: { data:['直接访问', '邮件营销','联盟广告','视频广告','搜索引擎'], orient: 'vertical', //垂直显示 y: 'cen...

2018-05-28 01:10:37 20473 2

原创 Echarts中太阳图(Sunburst)的实例

话不多说 先上效果图: html代码如下:&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt; &amp;lt;title&amp;gt;ECharts&amp;lt;/title&am

2018-05-28 00:49:23 6785

转载 词法分析器的原理解释及代码实现

打开源文件,读取文件内容,直至遇上‘$’文件结束符,然后读取结束。对读取的文件进行预处理,从头到尾进行扫描,去除 // 和 /* */ 的内容,以及一些无用的、影响程序执行的符号如换行符、回车符、制表符等。但是千万不要在此时去除空格,因为空格在词法分析中有用接下来对源文件从头到尾进行扫描。从头开始扫描,这个时候扫描程序首先要询问当前的字符是不是空格,若是空格则继续扫描下一个字符,直到扫描出的...

2018-05-17 17:22:30 26856 2

linux课件下载

linux课件下载linux课件下载linux课件下载linux课件下载

2018-05-28

Excel2LaTex.xla

可以将EXCEL表格中的格式转化为LaTex格式 不管是简单或较复杂表格都可以实现 只是某些特殊的数学字母或公式需要自己调整

2018-02-18

空空如也

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

TA关注的人

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