- 博客(45)
- 资源 (1)
- 收藏
- 关注
原创 openGL兔兔大作业-面的鼠标拾取
好久没写过GL了,正好来发发教程要求给出兔兔的顶点坐标与三角面索引,需要实现:绘制模型,冯氏光照模型及视角移动鼠标点选高亮某三角面总体思路 & 坑点 For 可以自己实现OpenGL编写的朋友导入模型 :给出的数据为顶点坐标,没有法线信息,需要求解法线,在我的实现中对每一三角面根据三点坐标求解了法线,没有进行法线插值,这会使得兔兔表面不够圆润,并且需要 NumFace * 3 大小的VBO,较浪费空间。按道理可以对每一点求解法线,使用该点与邻接点的向量进行加权平均,具体可以
2020-12-23 02:33:17 1354
原创 【2020春招实习面试】雷火面试
第一次面试先让写一个全排列得代码 我紧张蒙了两分钟还是写完了然后问了个算法题 n个居民楼 每楼若干户,放三个垃圾分类点怎么最优然后是stl小问题 vector内存 map内存(???)然后渲染相关 问了问我小引擎写了啥 我说简单全局光照事件处理说了一个法线为什么是蓝紫色得(??)我蒙了个直接映射然后随便聊了聊 他说都用延迟渲染 说了说我这demo效率低问我有没有场景管理(insta...
2020-04-29 20:52:16 807
原创 【2020春招实习面试】腾讯IEG
4.11腾讯一面上午发了个信息直接约了下午电话面试面试官直接拿着简历从头开始问先问了我第一个3ds模型导入,问我是怎么进行导入的我说我找的博客里面给了一个按3ds布局导入数据的代码,然后只导入了mesh信息,自己做三角形绘制。(没想到真问这个模型导入,尴尬)然后问了我接触过别的模型文件嘛,我说只听过obj那些,但是没写过。问了我知不知道FBX 不知。然后看我是c++开发,就问了一下...
2020-04-29 20:49:57 546
原创 【面试】【杂项】
new mallocnew 调用对象构造函数 不需要规定大小 堆区开内存malloc不调用构造,需要规定大小,另外一区开内存c++从文本到可执行文件过程预编译:文本替换 宏替换 -> .ii编译:检查语法错误,编译 -> .s汇编:转换为汇编代码 -> .o .obj链接:将外部文件链接到一起,会检查函数是否定义 -> .out .exec++三大特性...
2020-04-08 00:25:16 129
原创 【面试】操作系统
进程通信管道普通管道PIPE :半双工,亲缘关系命名管道FIFO :无关进程不是文件,不属于文件系统,只存在内存中IPC消息队列 : 具有特定优先级,可以随机查询按类读取,独立于进程信号量 : 控制多个进程对共享资源访问,如果传递数据需要共共享内存,实现进程互斥,基于PV操作信号signal共享内存套接字线程同步线程:系统可识别的最小执行和调度单位,每...
2020-04-07 23:24:22 130
原创 【面试】【知识点总结】图形学
图形学渲染管线顶点数据输入 (Vertices)顶点着色器 (Vertex Shader)曲面细分着色器 (Tessellation Shader)几何着色器 (Geometry Shader)图元装配 (Primitive Setup)裁剪剔除 (Culling and Clipping)屏幕映射 (Screen Mapping)光栅化 (Rasterization)片...
2020-04-03 23:44:43 1551
原创 【面试】【知识点总结】C++知识点
C++const :修饰指针const int* p不可改变指针值int* const p不可改变p指向修饰引用:const string& str修饰成员函数void func() const {} 不可改变成员变量(const ClassName *this)static修饰全局变量&函数:限定在当前编译单元修饰局部变量:开在静态区,只初始化一次,可用...
2020-04-03 01:24:19 166
原创 【2020春招记录】 吉比特游戏研发笔试
心累笔试形式一个半小时,20道选择题,6道读程序写结果,2道编程题。选择题:两三道智力题,一道数据库,一道网络,好几道数据结构,几道算法。阅读程序:十五分钟冲完,乱七八糟不知道看出来啥了编程:一道判断素数,另一道给15位数随机组合被m整除个数,没想出来打了60暴力。这笔试吐了,时间短而且全是基础知识点,不算没学过的操作系统&计网,也够受了。...
2020-04-01 22:50:01 3027 2
原创 【2020春招记录】网易雷火笔试
又是为自己的无知流泪的一年一. 网易雷火笔试 300’第一题26个字母分别算个斐波那契就行第二题是个小贪心,按价值从大到小排个序,从最大的开始杀,杀这个数最好的时间就是他消失之前的那个时间点。第三题一个模拟,按题目要求模拟就行第四题四元数坑了我,最后20分钟调出了样例交上去还是0分,这题我实在没法手出样例算了,有时间好好再学学四元数,再调吧,放一个没A的代码省的删了。// ...
2020-03-29 20:17:44 2516
原创 【开坑】图形学 & 引擎相关
图形学书1. Fundamental of Computer Graphic :图形学入门2. OpenGL Programming Guide : OpenGL红宝书3. Real-Time Rendering :渲染大全开发1. 光栅化渲染器 : 简单实现2. 简单渲染引擎开发 :结合渲染器 math相关 等C++书1. C++ P...
2020-03-01 01:33:40 310
原创 【Game Engine】第三节:Clock帧计时器 && DLL链接 && 键盘按键事件
Clock帧计时器目的使用Qtime循环调用myUpdate来刷新帧画面时,帧数非固定,若每两帧之间的计算量相差较大,会出现两帧之间卡顿,使得画面停滞,需要利用帧计时来优化计算原理统计连续两帧之间的时钟周期数量,除以当前的每秒时钟周期数,可获得相邻两帧的差时Clock类#include <Windows.h>namespace Time { cl...
2020-02-08 13:57:17 286
原创 【前端】【vue.js】【参考项目】vue-konva-project
概述目标制作在线ppt编辑排版网页,支持插入文本框,图片,添加操作逻辑人性的缩放移动功能项目地址CSDN博客GitHub项目项目介绍实现类似美图秀秀网页版的拼图工具项目框架vue.jsJavascript框架Konva.jsCanvas绘图框架iViewUI组件库目录结构assetslibsv...
2020-02-07 01:53:33 1407
原创 【Game Engine】第二节:配置googleTest & 初步开发Vector2D
配置GoogleTest采用TDD(Test-Driven-Development)方式开发引擎,使用GoogleTest进行程序测试,便于开发过程中发现错误。GoogleTest下载:Github环境搭建拷贝googletest目录中的src与include中gtest文件夹,放置于Middleware/gtest建立...
2020-02-05 20:43:21 220
原创 【Game Engine】第一节:搭建VS2019+QT5.14环境&&第一个openGL程序
序言参考youtube教程:Game Engine Development视频教程中为vs2012+qt4,本文改动将会注明准备环境下载QT5.14,安装MSVC2017,进入安装目录 \Qt5.14.1\5.14.1\msvc2017 (下称QT目录)安装Visual Studio 2019 (或2017)下载glew,安装目录 \glew-2.1.0 (下称GLEW目录)环境...
2020-02-04 21:55:11 2732
原创 c++大作业初步方案
3d国际象棋游戏I. 实现目标能够实现基本国际象棋的操作:利用键盘选择棋子移动(后期可尝试添加鼠标操作棋子)利用窗口判断棋局胜负,将军时能够提示。实现基本的3d视角操作:利用方向键以及鼠标移动摄像机角度利用按键或鼠标滚轮移动摄像机远近棋子棋盘场景的美化建模:实现天空盒背景进行棋子建模棋盘与棋子纹理II. 技术分析开发环境:API:openG...
2019-03-31 18:35:33 1984
原创 【各种算法】【AC自动机】复习
AC自动机:用于多模式串的匹配,也就是说求多个串在一个串中的关系。 思路:模仿kmp思维方式,如果匹配到某个串的某个位置失配了,就一定需要去别的串的某个位置继续匹配。 next指针:失配之后下一个匹配的位置。 next指针性质:next指向的点表示的串的前缀是当前点表示串的后缀。 是不是跟kmp很像。 根据性质显然next指针是向上连的。 考虑bfs建next指针。 对于当前的点的ne
2017-04-07 22:40:38 327
原创 【各种算法】【kmp】复习
kmp算法:一种字符串匹配算法,可以处理两个串得匹配问题,求一个串在另一个串中出现次数,判断a是b的字串等等。 算法来源:考虑对于a,b串暴力匹配,枚举b串出现的位置之后,将位置后面b串长度个位置挨个匹配,这种算法将会多次遍历b串,对于很多情况,出现位置只向后移动一次并不能与b串匹配。 考虑我们先求出b串的前i位串的最长公共前后缀(border)。 有这样的性质:对于a串和b串匹配到一点失配,
2017-04-07 22:17:17 499
原创 【斜率优化】【决策单调】xjb讲课
大佬们要让蒟蒻给他们讲斜率优化 …….(色色发抖斜率优化是什么呢,先看点没用的东西。 考虑一类动态规划,满足这样的性质: 状态数有nn个,一个状态的决策数有nn个 形似f[i]=♂i1f[j]f[i]=♂_1^i f[j]定义♂为乱七八糟的运算 这样的dp有什么好的性质呢???首先考虑这样一种 子类型 f[i]=mini−1j=1f[j]+w[j,i]f[i]=min_{j=1}^{i-1
2017-04-02 22:51:22 423
原创 【trie树】【bzoj1819】电子字典
题意 给一些模式串,一些编辑方式 一些待查询串,求该串是否不用编辑就是一个模式串 若不是,求编辑一次变为的模式串数量。题解 模式串建成trie树,询问1直接查询 询问2 dfs即可。代码#include <iostream>#include <cstdio>#include <cstring>#define MAXN 200001using namespace std;s
2017-03-25 21:53:34 374
原创 【kmp】【poj2406】Power Strings
题意 求给定串的最小循环节个数题解 最小循环节长度=len-border border:最长公共前后缀 kmp代码#include <iostream>#include <cstdio>#include <cstring>#define MAXN 1000001using namespace std;int nxt[MAXN];char s[MAXN];int main(
2017-03-25 21:47:25 228
原创 【KMP】【poj3167】【bzoj1729】Cow Patterns
题意 给定一个顺序序列表示奶牛的排列顺序,定义串a=b当且仅当a的每位的排名=b的每位的排名。题解 预处理出前i位中j出现的次数,由于编号很小,处理出类似前缀和,暴力查询排名即可。已知排名之后就直接kmp。代码#include <iostream>#include <cstdio>#include <cstring>#define MAXN 100001using namespac
2017-03-25 21:40:25 598
原创 【AC自动机】【bzoj3940】Censoring
题意:给一些模板串和一个长串,删除长串中所有模板串,输出剩下的串;做法: 对模式串维护AC自动机,对长串维护一个栈,边压栈边匹配,匹配到了就弹掉。代码:#include <iostream>#include <cstdio>#include <cstring>#include <queue>#define MAXN 100001using namespace std;names
2017-03-25 21:29:44 369
原创 【最小生成树】【LCT】【bzoj2594】水管局长数据加强版
题目大意: 给定无向图,动态进行删除边,查询两点路径最大边权值。题解: 1. 首先考虑离线操作倒序进行插入边操作。 2. 之后考虑新加进来的边一定会在原来的最小生成树上产生环,找到环上的最大权删去就可以更新最小生成树。 3. 就相当于加边时判断新加的边两端点在原最小生成树上路径最大值和此边边权关系,新加的小就断开原来的最大边,连接新边。 4. 3的过程可以用LCT维护。 5. LC
2017-01-01 20:51:35 715
原创 【bzoj2243】【树链剖分】【线段树】SDOI2011染色
题目大意: 给定一棵有N 个节点的无根树和 M 个操作,操作有2类: 将节点A 到节点B路径上所有点都染成颜色 C 询问节点A到节点B路径上的颜色段数量(连续相同颜色被认为是同一段),如”112221”由3段组成:”11”.”222”和”1”。 请你写一个程序依次完成这 M 个操作。 数据范围: 题解: 对树上的路径进行操作, 区间覆盖,区间查询,一瞅
2016-12-28 16:51:17 319
原创 【bzoj2002】【LCT】弹飞绵羊
题意:给一段序列和k[i]k[i]表示从ii能弹到i+k[i]i+k[i],要求支持动态修改k值,查询由i点几次能被弹出序列长度 数据范围:对于100%的数据n<=200000,m<=100000 题解:首先对于一个点,可以从这个点向i+k[i]i+k[i]连一条边,i+k[i]>ni+k[i]>n时连向n这个点,显然一个点只向后连一条边,就是一棵树,求得答案就是i节点在以n+1为根的树中的
2016-12-28 16:24:55 295
原创 【bzoj2049】【LCT】洞穴勘测
题意:维护森林支持动态插入一条边,删除一条边,查询两点连通性 数据范围:100%的数据满足n≤10000, m≤200000 题解:LCT模板题,注意link-cut时提根即可#include <iostream>#include <cstdio>#include <cstring>#define MAXN 21000using namespace std;struct nod
2016-12-28 16:07:30 467
原创 【bzoj1093】【tarjan+dp】最大半联通子图
题意 导出子图:对图(U,V)(U,V),有(U′,V′)(U',V')满足 U′∈UU' \in U V’是V中所有与U’相连的边 半连通子图:对图(U,V)(U,V),对任意u∈Uu \in U v∈Uv \in U满足uu到vv或 vv 到uu 有一条有向路径题解 首先考虑对于一个强连通分量一定是一个半连通导出子图,考虑缩点,对于缩点之后的DAG,在一条链上的强连通分量就为一个半联
2016-12-26 22:08:34 459 1
原创 【线段树】动态最值
题目描述 有一个包含n个元素的数组,要求实现以下操作: DELETE k:删除位置k上的数。右边的数往左移一个位置。 QUERY i j:查询位置i~j上所有数的最小值和最大值。 例如有10个元素: QUERY 2 8的结果为2 9。依次执行DELETE 3和DELETE 6(注意这时删除的是原始数组的元素7)后数组变为: 输入 输入文件mi
2016-06-05 16:22:03 1010 1
原创 【树分治】poj1741 tree
题目 Description Give a tree with n vertices,each edge has a length(positive integer less than 1001). Define dist(u,v)=The min distance between node u and v. Give an integer k,for every pair
2016-05-27 20:16:51 364
原创 【线段树】ZKW线段树(noip2012D2T2)(选教室)
ZKW线段树,非递归写法,据说常数很小,其实早就想写一篇了,但是还没发现他能派上用场的题目,比如什么卡线段树的,今天恰好有一个noip2012D2T2,就顺便一起写了。这里就不挂题目了,直接看大意吧。 题目大意:给定序列,支持区间减少操作,当序列中有负数时停止,输出次数。 数据范围:序列元素个数n<=106n<=10^6,修改次数m<=106m<=10^6这题正解是二分,这里先放下正解,
2016-05-26 23:04:19 634
原创 【树链剖分】树链剖分讲解
是什么? 将树的所有边剖分成重边和轻边从而便于维护边权信息和进行修改,应对一系列大数据书上修改查询问题。为什么? 如果不进行剖分代价会很大:对树上边(u,v)中的边权查询修改,必然要将边权建立成搜索树或查询树进行维护,对于所有边建立后对于(u,v)修改时只能将(u,v)中所有边进行遍历修改,最坏代价(退化成链)为n*查询修改代价。而如果把(u,v)中的边变成连续的一段区间,就会大大降低时间代价
2016-05-16 22:47:16 3468 1
原创 【平衡树】Treap
treap=tree+heap; 就是在一颗平衡树上维护一个fix域,使得这棵树如果以key值域看的话是一颗排序树,以fix域看是一个堆。这样利用平均分布的fix值使得这棵树相对平衡。 平衡树里相对好写的就是treap和SBT了,改天膜拜下sbt去。 今天先说treap。写法 顾名思义就是在平衡树的基础上加了一个堆得维护,(堆都会写吧) 插入删除时记得利用旋转来让孩子的fix值跟父节点的
2016-05-14 11:40:25 512
原创 【平衡树】平衡树教学
没事闲的学学平衡树吧,打代码炒鸡爽的(特别是机械键盘)(无视)。。。 (学习ing) - 平衡树到底是啥?先看看排序二叉树吧排序二叉树就是一棵树,啥树呢——就是这样一颗当前节点的左子树的权值都小于当前节点值,右子树的也一样。 这样经过左-中-右的遍历就是一个有序序列。这样一棵树有啥用呢——就是可以维护一个有序的东西,可以动态插入,删除,查询第k大,查询前驱后继(就是有序序列中跟他挨着的
2016-05-05 18:06:41 799
原创 【平衡树】splay
splay 平衡树,也叫伸展树,有很大的好处,同时也很哲学。。。伸展 它可以非常柔韧的变化,旋转伸展合并等等,并且是均摊时间代价,代价很可观。操作 伸展就是通过各种旋转,把查询删除更改的元素全转到根,查询频率越高代价约可观。旋转 通过双旋单旋来实现,在某一个节点旋转到根的过程中路上的所有节点的子树都会相应平衡,特别神奇,但神奇的同时也随之而来的就是写法的哲学。。。操作 通过三种旋转
2016-05-02 15:07:19 887 2
原创 【树】树的重量
题目描述 树可以用来表示物种之间的进化关系。一棵“进化树”是一个带边权的树, 其叶节点表示一个物种,两个叶节点之间的距离表示两个物种的差异。现在,一 个重要的问题是,根据物种之间的距离,重构相应的“进化树” 。 令 N={1..n},用一个 N 上的矩阵 M 来定义树 T。其中,矩阵 M 满足:对于 任意的 i,j,k,有 M[i,j]+M[j,k]>=M[i,k]。树 T 满足: 1.
2016-04-24 22:18:26 1578 2
原创 【线段树】登山climb
题目描述 有一座延绵不断、跌宕起伏的山,最低处海拔为0米,最高处海拔不超过8848米。从这座山的一端走到另一端的过程中,每走 1 米海拔高度就升高 1 米或者降低 1 米。有 Q 个登山队计划在这座山的不同区段登山,当他们攀到各自区段内的最高峰时,就会插上他们的队旗。请你写一个程序找出他们插旗的高度。 输入 第一行为 N(N≤10^6 ),表示山两端的跨度。接下来 N+1 行,每行一个非负整数
2016-04-24 21:56:45 428
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人