自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MaxLykoS的博客

放弃幻想,准备打仗,天道酬勤

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

原创 升级版GPUInstancing

1. 痛点昨天在CS的博客笔记里我琢磨了下DrawMeshInstancing,有提到他一次draw最多支持1023个,在多就要加drawcall,此外如果是动态数据还要每帧向GPU索要数据并在CPU端更新网格坐标,因此有如下两个痛点:多于1023个坐标就要切分数组,加drawcall,1023*1024个物体就是1024个drawcallGPU和CPU数据每帧传递浪费时间下面就有一个新的方法来解决以上痛点,u1s1,百度出来的资料真的是不行,还是要科学冲浪。api:Graphics.Draw

2021-05-19 14:06:16 1175 4

原创 unity计算着色器入门

做实验需要使用高性能计算,因此翻出来学习一下用法。计算着色器(Compute Shader简称CS)的用途就是并行计算,适用于算法简单但数量庞大的算法应用场景:液体模拟,布料解算,聚落模拟等。下面尝试做一个CS的demo之前在yt上看到一个CS的应用,效果非常帅使用类似于体素的方法来渲染一张“假”屏幕,相当于一个三维的屏幕,很有全息投影的既视感。原理不难想,生成X*Y个Quad组成一张假屏幕方阵,使用两个摄像机,一个主摄像机用于正常观察,另一个摄像机用来渲染深度图,最后将深度图信息映射到假屏幕

2021-05-18 16:53:08 1334

原创 shaderlab 屏幕后处理

来自Unity Shader入门精要一.调整屏幕亮度、饱和度和对比度unity屏幕后处理的原理是将渲染好的场景作为一张屏幕大小Quad的Texture,贴在屏幕上,然后允许用户自定义该Quad的Shader,将Shader依托给该Quad的Material来实现后处理效果。创建该Material的方法 protected Material CreateMaterial(Shader shader, Material material) { if (shader == n

2021-03-18 15:13:40 529

原创 Shaderlab 玻璃效果

Shader "Custom/MyGlassShader"{ Properties { _MainTex ("Main Tex", 2D) = "white" {} _BumpTex ("Bump Tex", 2D) = "bump" {} _Cubemap ("Environment Cubemap", Cube) = "_Skybox" {} _Distortion ("Distortion", Range(0, 100.

2021-03-11 15:38:36 562

原创 shaderlab Billboard公告牌

去年疫情+部分私人原因搞的我人都要自闭了还是得好好学习,别想那有的没的,希望现在止损还来得及代码看的unity shader入门精要代码// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Custom/BillboardShader"{ Properties { _Color ("Color", Color) = (1,1,1,1)

2021-03-02 22:17:41 281

原创 C++对象与内存的探索

一. 内存的存储C/C++编译的程序占用的内存分为:栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。比如Class a(),这个a就是在栈里的,超出变量的生存周期会自动释放。堆区(heap):由程序员new,new出来的内存需要手动或编程delete掉,否则反复new会发生内存泄漏。进程结束后,系统会全部释放。全局区(static):全局变量和静态变量的存储是放在一块的。文字常量区:常量字符串就是放在这里的,程序结束后由系统释放。程序代码区:存放函数体的二进制代

2020-11-19 19:48:35 306 1

原创 用四叉树加速碰撞检测

长话短说一.Define Quad Tree四叉树的作用就是从原点开始根据一定的范围画出周围的四个象限,然后每个子象限继续划分为四个孙子象限,以此类推,到达递归深度最大值时停止。二.在碰撞检测中的作用如果场景里有1万个障碍物和1个子弹,那么子弹需要和每个障碍物进行一次碰撞检测。而我们进行了空间划分之后,只需要将子弹与其所在的区域内的障碍物进行检测即可。相当于将碰撞检测分成了两部分,第一部分(粗测)尽可能将不会碰到的物体扔掉,从所有的物体中筛选出与子弹最接近最可能碰到的物体,第二部分(精测)使用尽

2020-10-04 21:25:53 2233 1

原创 DirectX11学习笔记十三 进阶的程序框架

其实就是Chili Framework一 从最底层说起1. Bindable&Codex模式对于渲染一个最基本的立方体来说,一般最简单的步骤是这样的(忽略掉WindowsSDK那些东西):void Init(){ DXGI_SWAP_CHAIN_DESC sd = {}; sd.BufferDesc.Width = 0; sd.BufferDesc.Height = 0; sd.BufferDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; sd.

2020-08-20 21:47:56 1016 2

原创 DirectX11学习笔记十二 高斯模糊描边

感谢Chili的教程这一节属于PostProcessing,需要用到RenderToTexture的知识。复习一下渲染物体可能需要绑定的Com组件:组件名称用途ID3D11InputLayout定义VertexBuffer的输入格式,比如Pos,TexCoordID3D11Buffer(as VertexBuffer)存储要输入的顶点数据结构...

2020-05-27 23:12:26 1019

原创 DirectX11学习笔记十一 法线映射

回顾光照公式前面学的局部光照里用到了与法线有关的计算公式,也就是漫反射,以点光源为例回顾一下:其中 漫反射光D = 漫反射材质系数 点乘 (入射光反方向 点乘 法向量) 点乘 入射光颜色,如下图所示镜面高光S = 镜面高光材质系数 点乘 (出射光向量 点乘 顶点或像素到摄像机向量)^高光系数 点乘 入射光颜色,如下图所示:之前计算光照用到的法线都是网格上根据三角形两条边叉乘得到的,但...

2020-05-03 17:09:48 502

原创 DirectX11学习笔记十 imGUI入坑

下载地址  Immediate Mode Graphical User interface,Immediate模式,不保存UI对象,用静态方法创建,Unity里的GUI就是这种模式,适合小游戏或快速开发,如果要做动画或者保存状态,可能需要自己额外封装一层,好处就是好写,虽然我还是喜欢UGUI的那种。入坑方法:  进入github官网下载源码,将这些文件拖入自己的项目,比如单独弄一个imGUI...

2020-03-25 20:27:28 3979

原创 DirectX11学习笔记九 平面阴影 简易代码框架

本来说这节打算自己搞一个D3D框架的,但是跟了外网的教程走了半个月后发现Chili的框架对于我这种初学者而言太过于事无巨细,如果只想学习d3d api以及用其要达到什么效果的话,有些“重量级”,所以我打算两手抓了,相比沉浸在c++新特性和指针、泛型里,我相信龙书的教程更有指向性。拿龙书与Chili的教程相互比较学习,还是不错的,有了Chili的基础,再看龙书的代码感觉就快多了。...

2020-03-20 18:32:48 298

原创 DirectX11学习笔记八 平面镜 模版测试

一开始看到平面镜效果我以为要在着色器里写光反射blablabla(我是菜鸟),后来发现,教程中实现平面镜的方法是把场景渲染两次,一次正常渲染,一次镜像渲染,然后设置一个模版将平面镜表面以外的镜像部分剔除掉,只显示镜子中的部分,就像unity里的LayerMask一样。要做到上面的工作,需要弄明白两个问题如何剔除平面镜以外的镜像部分如何渲染镜像的部分对于问题1,这里就需要用到深度/模版测...

2020-03-02 21:02:37 425

原创 DirectX11学习笔记七 雾化

雾化这一节本应该放在局部光照那里的后面。不过鉴于博客更新断了两个月,我觉得有必要跟着书动动手复习一下,雾化在原博客中没有提到,不过代码也非常简单,赶紧水一篇笔记。代码承接Blending的工程雾化我们可以将雾化计算简化成两个半圆,分为内径和外径,内径为雾开始距离,外径为雾结束距离,两者之差为雾范围,只有在fogRange内才会计算雾的效果。因此再定义一个float4:雾的颜色,只需要再...

2020-02-09 22:26:23 292 2

原创 DirectX11学习笔记六 Blending混合

阿萨德

2020-02-09 15:18:03 1555

原创 DirectX11学习笔记五 摄像机类

这一节跟渲染好像关系不大,但是值得看一看,以前用unity都是直接调的标准资源包里的摄像机类,很少从底层原理来考虑摄像机的实现方法。本节的demo里一共介绍了3种摄像机第一人称第三人称自由视角其中自由视角和第一人称差距不大。摄像机基类先放一个以前用过的unity的非官方的第一人称幽灵视角摄像机类。using System.Collections;using System.Co...

2019-11-28 19:09:04 1461

原创 DirectX11学习笔记四 纹理入门

unity中能创建的基本几何体有圆柱、正方体、球体、和胶囊体而在dx11学习源码中有球、立方体、圆柱体、圆锥体和平面,由Geometry.h定义,创建相应的顶点属性集合,并提交给DirectX渲染的API。因为我对创建几何体的算法原理更感兴趣,所以不打算去细挖语法细节。...

2019-11-20 20:59:22 1414

原创 DirectX11学习笔记三 局部光照入门

  直接跳到第四了,因为鼠标键盘输入我暂时还没打算看,RawInput,DirectInput,XInput和Windows消息可以用的办法太多,技术又发展的太快,等后面学会了DX12时代的键盘输入再覆盖回来就好了。反正键鼠的控制万年不变,玩不出什么花样,所以不打算钻进去。  光照!感觉这是图形学里最难的地方之一了o(︶︿︶)o !看来这篇学习笔记要写很久,希望我能多搞清楚一些原理。...

2019-11-13 22:53:08 608

原创 DirectX11学习笔记二 渲染一个立方体

上一节画三角形只有三个顶点,所以直接按照三个顶点顺序画即可。不过那里漏过了一个细节,那就是你的三角形的顶点顺序,这里要引入一个叫“背面消除(backface culling)”的概念。因为三角形有两个面,假如你的正面是背对着摄像机,那摄像机就不会渲染你三角形的正面的图像(被剔除掉),复习一下上节所传入的三角形顶点。 // 设置三角形顶点 VertexPosColor vertices[] =...

2019-10-31 19:42:52 2139

原创 DirectX11学习笔记一 渲染一个三角形

  这两个月我看了看数据可视化,又看了看OpenCV,草稿箱里的东西阅存越多,最后还是决定入坑计算机图形学了。因为本科的时候学过一点OpenGLES和计算机图形学原理,再加上自己对游戏开发感兴趣,所以不打算再继续跟老师的方向走了。本来选现在的老师是打算学学游戏服务器的,奈何失算了,o(︶︿︶)o 唉。  本学习笔记的原始素材来自龙书DirectX11,代码来自GitHub。  不打算照抄别人博...

2019-10-27 12:36:44 2662 2

原创 LeetCode 1160 了解C++的I/O输入输出流加速

其实本文还是比较水,主要是理解一下做Leetcode时遇到的这种奇怪的加速方法。同样的代码,直接执行是176ms,加速后是68ms只需把代码加在开头 ios::sync_with_stdio(0); cin.tie(0);或者static auto speedup = [](){ ios::sync_with_stdio(false); cin.tie(nullptr); retur...

2019-10-14 21:22:03 874

原创 MasteringOpenCV实战源码学习笔记 章节一

第一部分:简单的摄像头视频读取流程//ver 4.1.1#include <opencv2/opencv.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/core/core.hpp>#incl...

2019-10-13 18:46:16 1098 1

原创 杀戮间插件入坑指南(UT2004)

本博文目的在于帮助对Killing Floor 1&2 插件制作感兴趣的玩家/程序员快速的了解插件的运作机制和编写方法。这里只介绍一代版本,二代版本的编写只会比一代更简单,原理相通。琢磨插件用了小半个月,踩了不少坑,特此来这里记录和分享一下,顺便试试markdown编辑器。学习插件编写的好处:1.认识更多的人2.装饰你的Steam个人资料3.对虚幻引擎(旧版本)有一个初步的认识...

2019-09-09 21:53:09 1746 1

原创 unity界面和代码分离解决方案

新手或者小规模的游戏喜欢使用SetActive或者Instantiate prefab来切换界面,这样可以,但是不灵活,也不规范,碰到大量代码的时候就会力不从心。所谓界面与代码分离也就是将界面用代码封装起来,再通过一个管理器来控制,方便其他程序的调用和控制介绍一下大体设计方法,让大家有一个宏观的观念界面一共分为两种 1.Panel 面板 比如登陆面板,注册面板,进入游...

2019-06-10 21:10:12 3409

原创 unity战棋类游戏移动范围搜索算法设计(未优化)

SLG战棋类游戏有很多细分类,本次博文讲解的是军事型的,类似高级战争2,有很多军事单位,建筑,同时还有多种地形,例如坦克不能爬山,步兵不能下海,树林的移动力消耗要远大于平原,公路最快.....等等一系列复杂设定。这里我们设,平原移动力消耗为2,建筑为1,公路为1,基础步兵的移动力为5(不考虑油量,每回合移动力都是5)基础的二维坐标类为Point大约需要三个类 ...

2019-06-10 21:09:32 6588 4

原创 Leetcode 3 无重复字符的最长子串

题目本身不难,思路很清晰,重点是记录下自己代码优化的思考过程我一开始用的双重循环版,提交后提示栈缓冲区溢出,原因不明int lengthOfLongestSubstring(string s) { int maxLength = 1, len; set<char> se; for (int i = 0;i < s.length()-1;i++) {...

2019-04-05 01:14:37 496

原创 消消乐游戏原理(附部分代码)

在vs里看见一些方法上次修改是501天以前,乖乖,为了复试我也算是把陈谷子烂芝麻都翻出来读了。一.存储格子+格子哈希表[id],格子的属性:x,y,id,type其中id=x*10+yx=id/10y=id%10type代表格子属于什么类型,相同的3个相连可以消除比如一个9*9的棋盘,x横轴,y是纵轴8 18 28 38 48 58 ...

2019-03-17 22:46:12 18644 6

原创 工业仿真教学演示类游戏的抽象工厂框架设计(附部分代码)

马上复试了,拿出一年前写的项目们出来看看,整理下思路,因为都快忘干净了,而且我很菜。时间有限,不知道自己还能总结成什么样子。当时写框架的时候需求还不确定,来回变,我写完后就加入考研大军了,没怎么再修改,所以现在回头来看会觉得框架非常繁琐,辛苦接手的兄弟了,让我写了3个星期就白捞了2000大洋....这个东西说白了就是一种电器动作实验模拟,你需要在一堆按钮扳手中移动摄像机(固定的 )找到先按...

2019-03-15 21:55:20 851 1

原创 重邮2019计算机复试准备工作相关

4月5号修改说下复试经验重邮计算机学科评估B+,算是普通一本里非常好的王牌专业了,所以我打着不想看太多数学的口号报了这个学校。没想到考重邮正在变热,而且热的很快。而且杭电6月份把数二改成了数一,逼的部分人也来重邮了。我初试360往下一点,初试分数排名140,复试排名40,总排名60,算是靠着复试逆袭了80人。共招生238人,去年是 100人去的计院,剩下的去AI院,好像AI院出了些变故...

2019-03-12 21:07:07 6633 18

原创 蓝桥杯 错误票据 (字符转数字技巧)

标题:错误票据某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。要求程序首先输入一个整数N(N&lt;100)表示后面数据行数。接着读入N行数据。每...

2018-03-31 17:39:35 291

原创 蓝桥杯 蚂蚁感冒 (模拟)

长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。     每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。    当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。    这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。    请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。【数据格式】    第一行输入一个整数n (1 &lt; n &...

2018-03-30 19:20:27 388

原创 蓝桥杯 剪邮票 (DFS+BFS)

剪邮票如【图1.jpg】, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。请你计算,一共有多少种不同的剪取方法。请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

2018-03-28 21:36:01 626

原创 蓝桥 凑算式

【题目】   B   DEF A + —- + ——– = 10   C   GHI这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。(比赛时,题目有改动)比如: 6+8/3+952/714 就是一种解法, 5+3/1+972/486 是另一种解法。这个算式一共有多少种解法? 注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。别忘了double#include &lt;ios...

2018-03-20 21:03:28 279

原创 蓝桥 猜算式

【题目】 看下面的算式: □□ x □□ = □□ x □□□ 它表示:两个两位数相乘等于一个两位数乘以一个三位数。 如果没有限定条件,这样的例子很多。 但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。 该算式中1至9的每个数字出现且只出现一次! 比如: 46 x 79 = 23 x 158 54 x 69 = 27 x 138 54 x 93 = 27 x 186 ….. 请编程,输...

2018-03-20 20:49:34 308

原创 整数划分并输出(DFS)

问题描述:将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,其中n1≥n2≥…≥nk≥1,k≥1。正整数n的这种表示称为正整数n的划分。问题1:输出整数n的所有可能的划分,如:输入:6输出: 5+1      4+2           4+1+1        3+3           3+2+1           3+1+1+1      2+2+2           2+2+...

2018-03-20 12:08:15 2745 2

原创 蓝桥基础练习 回形取数

问题描述  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式  输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式  输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。样例输入3 31 2 34 5 67 8 9样例输出1 ...

2018-03-15 14:24:13 405

原创 蓝桥杯基础练习 2n皇后问题

问题描述  给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。输入格式  输入的第一行为一个整数n,表示棋盘的大小。  接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0...

2018-03-15 12:49:57 750

原创 蓝桥基础练习 Huffuman树

问题描述  Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。  给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下:  1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。  2. 重复步骤1,直到{pi}中只剩下一个数。...

2018-03-12 14:48:48 276

原创 蓝桥杯基础练习 高精度加法

问题描述  输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。算法描述  由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。  定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。  计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数...

2018-03-12 13:46:00 996

原创 基础练习 阶乘计算

锦囊1:数组锦囊2:使用数组来保存一个整数,按手算的方法处理。问题描述  输入一个正整数n,输出n!的值。  其中n!=1*2*3*…*n。算法描述  n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。  将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。  首先将a...

2018-03-09 21:31:56 337 1

空空如也

空空如也

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

TA关注的人

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