Bob Blog

If you want knowledge,you must toil for it.

数据结构与算法

哈希表、字符串

以下题目均来自leetcode、poj 最长回文串 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小写。比如 ”Aa” 不能当做一个回文字符串。 注意: 假设字符串的长度不会超过 1010。 示例 1: 输入: “abccccdd” 输出: 7 解释: 我们可以构造的最长的回文串是”dccaccd”, 它的长度是 7...

数据结构与算法

动态规划

以下题目均来自leetcode、poj 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 ...

数据结构与算法

二叉树、图

以下题目均来自leetcode、poj 树的定义 树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。 树具有的特点有: (1)每个结点有零个或多个子结点 (2)没有父节点的结点称为根节点 (3)每一个非根结点有且只有一个父节点 (4)除了根结点外,每个子结点可以分为多个不相交的子树。 二叉树的定义 二叉树是每个结点最多有两个子树的树结构。它有...

数据结构与算法

二分查找、二叉排序树

以下题目均来自leetcode、poj 二分查找 首先,假设表中元素是按升序排列(也可是降序),将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。 /...

投影

Shadow Maps & Shadow Volume

Shadow Mapping(阴影映射) 来自CgTutorial的Shadow Mapping实现的基本流程 : 1、首先将整个场景的深度值预先渲染到以光源位置为原点、光线发射方向为观察方向的投影坐标系中,形成深度纹理。 2、再次渲染场景的过程中,将每个片断(像素)变换到前述眼坐标系(观察空间)中,并缩放到[0,1]的范围内以便查询纹理。绘制每个片元时,根据深度纹理距离(ZA)和片元距光...

公告板

公告板Shader

公告板,英文名Billboarding,是一项让着色四边形根据视角方向来旋转的技术,这样看起来似乎物体总是面向观察者。 unity shader 内置变量 name Value UNITY_MATRIX_MVP   从object space转到 projection space(投影)...

水的几种制作方式

ShaderGraph制作UV动画水 需要配置Lightweight Render Pipeline,使用ShaderGraph制作 水效果: 属性: 节点图如下: 节点函数用途: // Shared Graph Node Functions void Unity_FresnelEffect_float(float3 Normal, float3 Vie...

四叉树和八叉树

结构和原理

二叉空间分割树BSP 四叉树Quad Tree 八叉树Octree 参考资料: Binary_space_partitioning Quadtree QuadTree-Implementation QuadTree-Collision-Detection quadtree

新手引导

挖洞、点击穿透、毛玻璃

新手引导需要处理的几种效果 shader处理挖洞 挖矩形洞 挖圆形洞 Shader "Unlit/MaskShader" { Properties { _CropColor("CropColor",Color) = (0,0,0,0) _Fade("Fade",float) = 2 //crop circle (centerx,cente...

CG标准库函数

Cg Standard Library Functions

数学函数 Mathematical Functions 函数 功能描述 abs(x) 返回输入参数的绝对值 acos(x) 反余切函数,输入参数x范围为[-1,1], 返回[0,π]区间的角度值 all(x) ...