自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FREEstriker的博客

有空就写两笔的懒散博客

  • 博客(49)
  • 收藏
  • 关注

原创 Vulkan PBR与IBL实践

基于Vulkan与QT实现的PBR与IBL

2023-01-04 17:39:09 587

原创 Vulkan Cascade Shadow Map的故事

Vulkan-AirEngine内实现的的CSM与CascadeEVSM,在Forward+渲染器中增加3*3PCF的CSM实现,在阴影可视化渲染器中另增加Cascade-EVSM实现

2022-10-01 15:04:56 858

原创 那些天,我写过的Vulkan环境光遮蔽

Vulkan实现的SSAO、HBAO与GTAO

2022-09-22 23:52:40 268

原创 属于年轻人的第一个Vulkan Forward+与OIT

自己封装的Vulkan渲染引擎,最近加入了Forward+与OIT渲染

2022-07-24 23:11:05 572

原创 究极摸鱼挂科王终于击败了无敌可怕Vulkan大魔王

带有对象管理和异步加载的接口像Unity的Vulkan渲染器

2022-06-10 16:27:10 738

原创 因为我是科研废物所以每天翘课摸鱼准备去打工这件事

C++实现的带有模拟着色器、对象管理、异步加载的软渲染器

2022-06-10 16:23:31 197

原创 关于在寒假用两周从零手写包含模拟着色器的软渲染器这件事

当你重新踏上旅途之后,一定要记得旅途本身的意义。——巴巴托斯轮子哥说过,编译原理,操作系统,图形学是程序员的三大浪漫,既然以后想从事游戏方面的工作,造这个轮子是不可避免的。其实早在本科的时候我就有写个软渲染器的想法,不过已是大三,变得佛系了起来,最终也没有实现。不过今年自我感觉状态良好,哈哈哈哈,应该有能力完成这个轮子了。先贴上代码链接:GitHub - FREEstriker/AirRendererhttps://github.com/FREEstriker/AirRenderer因.

2022-02-15 03:02:17 738 1

原创 在URP中正确写入Sprite深度以使用DOF

我准备在文字冒险中加入景深的效果,但是因为unity内置shader的缘故,sprite是不会写入深度的,而如果要使用PostProcessing的DOF效果的话,是必须要将半透明物体的深度正确写入Depth Buffer的,这篇消耗了我大量精力的文章就是要介绍正确写入的方法。其实,如果只是要在2D游戏中实现类似于景深的效果,不写入深度其实也是可以的,我找到的有两种方案:一种是实时对Sprite进行模糊计算;二是直接使用离线预模糊的图片,根据强度进行混合。离线预模糊虽然这两种方法都可以比较简

2021-10-19 23:26:52 2208 1

原创 URP中实现的Custom2D光照系统的代码分析

虽然urp中是自带2D光照系统的,但是并不能和前向渲染同时使用,只能使用2D工作流了,所以在网上研究了一下怎样实现一个unity内的2D光照系统。代码是来源于https://github.com/SardineFish/Unity2DLighting​github.com/SardineFish/Unity2DLighting这个项目是由一位知乎er写的,也有对应的文章SardineFish:Unity中实现2D光照系统244 赞同 · 17 评论文章正在上传…重新上传取消​阴影产生的.

2021-09-27 01:30:47 726

原创 操作系统考研复习指导-某分页式虚拟存储系统,用于页面交换的磁盘的平均访问及传输时间是20ms-王道

某分页式虚拟存储系统,用于页面交换的磁盘的平均访问及传输时间是20ms。页表保存在主存,访问时间为1μs,即每引用一次指令或数据,需要访问两次内存。为改善性能,可以增设一个关联寄存器,如果页表项在关联寄存器里,则只要访问一次内存就可以。假设80%的访问其页表项在关联寄存器中,剩下的20%中,10%的访问(即总数的2%)会产生缺页。请计算有效访问时间。今天又看到了这道题,有人在考研群里问,我又仔细想了一下,感觉答案应该是23。主要的问题集中在是20+2还是20+3。显然,访问页表需要1,最后实际读

2020-09-02 20:19:10 6843 5

原创 MiniPascal编译器-西工大编译原理实验

连续搞了三天的编译原理实验,从最开始啥都不会,到现在熟练地加文法、改bug,也算是小有心得,分享一下我实现的这个相比要求的多了几个功能,比如:消除注释、FOR循环、多维数组、自动类型转换、类型检查、数组维数检查、还有一些错误提示之类的,画抽象语法树使用graphaz来画。有几个关键点需要说一下:环境环境我用的codeblocks,网上下了个flex和bison的包,首先肯定是添加这两个的path路径,之后随便打开一个cmd,敲一个win_bison --help就会有下面这样的,当然具体时间

2020-06-04 01:19:38 3832 7

原创 30天自制操作系统-DAY2

1.fat12格式代码后的re后的resb 18 根据fat12的格式,完全不需要这一句,可以注释掉2.org 7c00 在网上找了一篇讲的很好的http://www.ruanyifeng.com/blog/2015/09/0x7c00.html 是为了兼容8086后的机器,org是设定默认偏移量...

2019-10-31 00:12:50 217

原创 30天自制操作系统笔记-DAY1

操作系统课上的level3决定做这个了,下午马原大概看了一下第一章,是关于扇区启动的,晚上试了一下,遇到几个问题,总结一下。1.现在没有软盘了 使用了u盘作为启动器,使用usbbit或win32diskManager来将img装载到u盘上,现在u盘变为1.35m,模拟为了fat12的软盘2.开机无法引导,usb启动后依然引导了win10 bios里的引导模式是uefi,...

2019-10-30 22:49:01 215

原创 Unity3D-利用Playable和Timeline实现对话框

因为自己想做一个甜品级的galgame,上学期曾经用java写过一个json的对话流程配置工具,但是gui实在是太难写了,而且写出来的对话树有bug,所以也就作罢了。偶然看到unity的timeline工具,感觉可以使用它做出效率比较高的对啊流程配置,并且不只是对话,连人物的动画,音乐等都可以很好的显示出来。这几天了解了一下timeline中的playablebehaviour和playa...

2019-07-25 00:46:20 4003 2

原创 LeetCode-整数反转-ReverseInteger

看起来很简单的样子,难点是判断是否溢出。但是c#丽是直接利用int.TryParse()来判断,所以直接把数字转为字符串,进行反转,在判断即可。public int Reverse(int x) { string s1 = x.ToString(); string s2 = null; if(x &l...

2019-07-22 12:41:51 131

原创 LeetCode-Z字形变换-ZigZagConversion

这道题看着很简单,只要把原串分到几个行中,在拼接起来就可以了,相当于把字符串分到容器中。 public string Convert(string s, int numRows) { if(s.Length == 0 || numRows == 1)//直接返回 { return...

2019-07-22 12:21:48 139

原创 LeetCode-最长回文子串-LongestPalindromicSubstring

回文字串的问题,学算法的时候曾经见过,使用动态规划就可以解决,初始化单个和双字符就可以,之后通过判断新串两端的字符是否相等和内部是否为回文串就可以判断新串是否为回文串。public string LongestPalindrome(string s) { if(s.Length == 0) { ...

2019-07-22 00:45:14 179

原创 LeetCode-寻找两个有序数组的中位数-MedianOfTwoSortedArrays

比较简单的一道寻找中位数的题,只要不断取两个队列中头较小的一个,直到取到计算中位数所需的一位或两位即可。public double FindMedianSortedArrays(int[] nums1, int[] nums2) { int len = nums1.Length + nums2.Length; int mid...

2019-07-20 23:18:59 120

原创 LeetCode-无重复字符的最长子串-LongestSubstringWithoutRepeatingCharacters

首先想到的是固定一位,再从这一位向前寻找相同的字符计算长度,再找出最大长度。但是可以使用滑动窗口法来解决,窗口不断向右延长,遇到重复的字符则左边缩短,在字典里记录每个字符的下个位置即可实现左边界的缩短。 public int LengthOfLongestSubstring(string s) { int len = s.Leng...

2019-07-20 22:20:52 116

原创 LeetCode-两数相加-AddTwoNumbers

一道很普通的链表题,只要注意长短不同和进位的问题就可以了,遍历一遍就可以得出结果。 public ListNode AddTwoNumbers(ListNode l1, ListNode l2) { ListNode prevListNode = null;//初始化参数 int sum = 0; ...

2019-07-20 11:42:46 136

原创 LeetCode-两数之和-TwoSum

这学期一直,没更新博客,一是因为这学期的java课太水了,根本没有写的必要,二是这学期写的最多的代码是verilog,因为我选的计组老师是安建峰,他每次留的大作业我都尽力完成了,确实对充分理解mips处理器有很大帮助,可能过几天我就会把计组的东西发上来,也算留个念吧。这转眼都该大三了,其实还是有些彷徨的,并不知道自己到底要干些什么,舍友校内获了一堆奖,而我却一个都没有,虽然以后想从事游戏方面的...

2019-07-20 10:18:25 198

原创 NOJ-1596:最少修建多长的公路能把所有村庄连起来(一)-西工大算法

#include <stdio.h>#include <stdlib.h>struct e{ int i; int j; int len;};struct e edge[100005];int map[10000];int n, m;void qs (int l, int r, struct e A[]);int fin...

2018-09-27 20:44:57 305

原创 NOJ-1593:并查集(一)-西工大算法

#include <stdio.h>#include <stdlib.h>int n, m;int p[1005];int find(int i);int main(){ int i; int a, b; scanf("%d%d", &n, &m); for(i = 0; i < n; i++)...

2018-09-27 20:42:37 338

原创 NOJ-1005:装载问题-西工大算法

#include <stdio.h>#include <stdlib.h>int n, c1, c2;int weight[150];int flag[150];int maxWeight, curWeight, weightSum;void inPut();void dfs(int i);int main(){ int i; ...

2018-09-27 20:40:14 675

原创 NOJ-1004:01背包问题-西工大算法

#include <stdio.h>#include <stdlib.h>int n, c;int value[150], weight[150];int flag[150];int maxValue, curValue, curWeight;void inPut();void dfs(int i);int main(){ int i;...

2018-09-27 20:38:11 744

原创 王岐9.25-贪心:Prim;匈牙利算法-西工大算法

  他讲的这个prim是根据迪杰特斯拉算法改的,上学期数据结构我忘了自己写没写过prim了,他这种似乎更条理一些,我就写了个主要的函数:void update(){ for(i = 1; i <= lenA; i++) { if(A[i] != -1 && min > A[i]) { min...

2018-09-25 17:24:18 443

原创 王岐9.13-回溯:N皇后;着色问题-西工大算法

N皇后:#include <stdio.h>#include <stdlib.h>#include <math.h>void findQueenPosition (int head);int isInTheRightPosition (int layer, int j);void exchange (int a, int b);void ou...

2018-09-13 21:31:02 573

原创 王岐9.11-分治:快排;循环赛日程表-西工大算法

快排:#include <stdio.h>#include <stdlib.h>void qs (int l, int r);int A[10] = {0, 2, 5, 7, 5, 9, 3, 0, 8, 4};int main(){ qs (1, 9); int i; for (i = 1; i <= 9; i++) ...

2018-09-13 17:11:07 358

原创 王岐9.6-递归:求最大公因数;N皇后-多米诺矩阵-西工大算法

  感觉王岐上课讲的还行。  求最大公因数:#include <stdio.h>#include <stdlib.h>void GCD (int a, int b);int main(){ int a, b; scanf ("%d%d", &a, &b); GCD (a, b); return 0;}...

2018-09-07 12:34:47 521

原创 NOJ-二叉排序树的归并-西工大数据结构

    题目如下:    我就随便写了写,还用的上次的函数就可以。    以下是我的实现:#include <stdio.h>#include <stdlib.h>struct binaryTreeNode{ int num; struct binaryTreeNode *left; struct binaryTreeNode *right;...

2018-05-25 10:02:14 827 1

原创 NOJ-二叉排序树的插入和删除-西工大数据结构

    周二就写完了,找bug找了很长时间,今天有空了,发出来。题目如下:    构建二叉排序树,找后继线索链表,插入都还可以,基本操作,就是这个删除比较麻烦,好多种情况,而且他居然每次都是对原二叉树进行插入删除,输出之后还得删除和插入回去,真的是闲的。    找后继采用栈的方法就可以了,插入就和查找差不多,只不过插入是找到上一节点,查找是找到查找节点,我把这两个功能集合成一个函数了,而且我觉得只...

2018-05-25 09:51:37 1192

原创 NOJ-构造哈希表-西工大数据结构

    今天上课讲了哈希表,回来写了一下。题目如下:    看一下题,他说用最简单的方法建一个最简单的哈希表,然后输出平均查找长度,毫无难度。。。    我哈希表用了一个struct指针,如果要存东西,就申请一个节点并把节点地址塞里面,否则就是NULL,可以节省一点空间(虽然毫无必要。。。)。    我步数在建表的时候就算完了,最后算个和就行,当然也可以单纯建表,然后查找并记录步数,再求和,其实都...

2018-05-21 16:57:51 1709

原创 NOJ- 逆波兰表达式-西工大数据结构

    这题想了挺长时间,刚开始用了3个栈,很复杂,最后也过了,想了想改成了两个栈,简单了许多。题目如下:    逆波兰表达式,就是抽成又向无环图的后续遍历,其中符号的优先级比较难处理,情况很多。    我的实现如下:#include <stdio.h>#include <stdlib.h>struct charStack{ union { ...

2018-05-20 00:55:38 3262

原创 NOJ-用迪杰特斯拉算法求赋权图中的最短路径-西工大数据结构

    边看锤子的发布会边改出来的,他那发布会的演示真是尴尬死了,所以我写了个烂代码(我实在不想重写了)。。。题目如下:    还是dj算法,我就把其中的dj相关函数改了一下,记录一下stepN中到终点的距离,如果改变了,说明min就是要走的结点,如果终点被更新掉了,说明已经找到到终点的最短走法,直接跳出结束就行了。    其中改变了这几个函数,就是遍历时改为从头开始,判断输出一下就可以了:voi...

2018-05-16 22:16:24 1283

原创 NOJ-用弗洛伊德算法求赋权图的两点间的最短路径的长度-西工大数据结构

    一周多没写了,今天上完课回来清两个。题目如下:    存储结构和以前的都一样,就是换成floyd算法了,其实时间复杂度和dj是一样的,用dj也差不太多。        (偷一下老师的图。。。)他就是一个起始点一列一列从上到下遍历,中点随起始点的遍历更新终点步数,终点就是起点和中点在矩阵中的交叉点,最后按需输出就可以。    以下是我的实现:#include <stdio.h>...

2018-05-16 18:33:45 1904

原创 NOJ-求赋权图中一个结点到所有结点最短路径的长度-西工大数据结构

    昨天实验课写了一下,报告也已经写完交了,今天写出来。题目如下:    无非就是换了种存储结构,输出改成按节点顺序输出了,我就把上一次的代码改了一下,就通过了。    以下是我的实现:#include <stdio.h>#include <stdlib.h>struct graphList{ int vexNum; int graph[120]...

2018-05-05 18:47:31 1736

原创 NOJ-Dijkstra算法-西工大数据结构

    前几天就讲了,考电路的前一天晚上写了一下,但是因为54的活动,今天才有空写下来。题目如下:    看一下题,就是用邻接表存一个图,然后用dj算法来求出0节点到其他节点的最短路径,最后的输出格式要求从短到长,最后输出不可到达,所以最后要排一下序。    首先创建3  3      1  2  1       1  3  4       2  3  2的邻接表如下图:    dj算法其实是贪心...

2018-05-05 17:33:55 4634 2

原创 NOJ-基于图的广度优先搜索策略-西工大数据结构

    放假前课上讲了广度搜索,这两天一直在复习电路基础,今天晚上才把这道题给写了,题目如下:    这个题就是把上一道题的深度变成广度了,输入构建图都没有变,所以我就稍微改了一下上次的代码,加了几个队列函数。    先把3 3    1 2 3    1 2     1 3     2 1构建为下面的图:    广度搜索其实是一种队列的操作,每次取队列头,把队列头边表的所有节点入队,然后把队列头...

2018-04-30 22:39:36 1392

原创 NOJ-基于图的深度优先搜索策略-西工大数据结构

    昨天讲了图,睡着了,今天运动会学了一下,回来写了一道。题目如下:    看一下题目,就是用领接表构建一个图,再寻找是否有特定的路径。    邻接表也没什么好说的,每个顶点节点存储相连接的边的信息。那么3 3    1 2 3    1 2     1 3     2 1可以构建下面的图:    深度搜索中,我使用了回溯和递归,记录下已走过的顶点,避免走进死循环,若找到路径,直接返回1,否则...

2018-04-24 17:56:31 1813

原创 RPGmaker MV插件源码解析-Sasuke KANNAZUKI's WeaponSkill.js

终于有时间看看RPGmaker MV了,这次看了一个比较短的:Sasuke KANNAZUKI编写的WeaponSkill.js。    先来看一下帮助界面:    这个插件没有提供命令和参数,只需要在注释框里写上技能编号,就可以实现类似于武器的附魔效果(即使用该武器会发动魔法效果)。    源码中,首先是注释://=============================

2018-04-20 20:33:45 2298

空空如也

空空如也

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

TA关注的人

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