Koo叔说Shader—果冻效果
前言
之前新建了一个Shader项目,并实现了一个基本的Shader结构,这次基于顶点变化,实现一个小的里冻效果。
最终效果如下:
原理分析
这个效果只是对顶点位置的一个移动,并没有对显示做处理,所以只需要vertex Shader中实现就可以
这个效果是周期性变化,很容易想到使用正弦波和余弦波来处理,也是物理上所说的简谐运动。
正弦波的关键值sin{0=>0,90=&gt...
Koo叔说Shader—UV旋转
前言
本次依然是在顶点Shader中做一些操作,效果是旋转UV
最终效果如下:
原理分析,主要解决两个问题
如何旋转:通过构造旋转矩阵
旋转的中心点,如何定位:可以先将中心点移到中间,旋转完再移回去
旋转矩阵:
M(a) = [cosa -sina]
[sina cosa]
具体实现
Shader "Unlit/UV rotation"
{
...
Koo叔说Shader-描边效果
前言
描边效果,在游戏中比较常见,实现方式也有好多种,今天主要讲一下比较容易理解的一种,需要用到两个pass实现。
描边效果
先看效果:
这个描边效果比较简单,这个动的贴图是屏幕空间计算的,顺便也说说屏幕空间计算。
原理分析
利用两个pass,第一个pass先画比模型大一圈的填充,第二个pass正常画贴图
屏幕空间是取屏幕空间的点来实现一些特殊效果
具体实现
S...
Koo叔说Shader-调试Shader
前言
当写的Shader出现了一些不是预期的效果时,可能需要对Shader进行调试。但Shader不像其它语言能加断点debug,也不能打印输出。输出的只能是颜色值,所以可以将想要看的变量变换成颜色值,可视化的来查看问题,当然这需要一些小小的转换。
顶点数据从哪里来
一般对Shader调试,主要是调试顶点数据及变换,那么顶点数据是如何设置到Shader中的呢?在Unity中,是由Mesh...
Unity中MenuItem可以加的快捷键
前言
在Unity开发中,往往要加一些自定义的编辑器脚本或命令,在Unity菜单中执行,对于经常使用的自定义命令,每次用鼠标去选中比较麻烦,那可以加快捷键来提高效率
自定义菜单支持如下几种快捷键:
% - CTRL on Windows / CMD on OSX
‘# - Shift’
& -Alt
LEFT/RIGHT/UP/DOWN - Arrow keys
F1 … F2...
LeetCode之从排序数组中删除重复项
题目
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
示例 1:
给定数组 nums = [1,1,2],
函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
你不需要考虑数组中超出新长度后面的元素。
示例...
JavaWeb 过滤器
过滤器
1. 简介
定义:
一个可以截取用户端的请求与响应信息,并对这些信息过滤的服务器端的组件
2. 工作原理
3. 生命周期
4. 三个方法
init()
这是过滤器的初始化方法,Web 容器创建过滤器实例后将调用该方法,该方法可以读取 web.xml 文件中过滤器的参数
doFilter()
该方法完成实际的过滤操作,当用户请求访问与过滤器关联的 UR...
jsp + servlet 实现验证码
1. 验证码定义
2. 验证码作用
3. 成品
4. 流程
5. 具体类
6. 详细实现
前言:验证码是我们每天都在打交道的东西,你知道用 jsp + servlet 怎么实现吗?快来看看吧!
1. 验证码定义
是一种区分用户是计算机还是人的公共全自动程序
2. 验证码作用
可以防止恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序...
合数分解为质数的乘积模板
#include<iostream>
using namespace std;
#define ll long long
#define INF 1000
ll num[200], cnt; //num[]记录n的质数因子,cnt记录个数
int main()
{
ll n;
cin >> n;
for (ll i = 2; n != 1; ++i)
{
while (n%i == 0)
{
MySQL数据库8(四)数据表基本操作
数据表操作 创建数据表 数据库中数据表的名字通常有前缀:取数据库的前两个字母加下划线,易于区分。 普通创建表 基本语法:create table 表名(字段名 字段类型[字段属性],字段名 字段类型[字段属性]…)[表选项] 表必须放在对应的数据库下:有两种方式可以将表挂入到指定的数据库下 1、在数据表名字前面加上数据库名字,用“.”号连接即可。数据库.数据表 2、在创建数据表之前先进入到某个具体的数据库即可:use 数据库名字; 表选项:与数据库选项类似 engine:存储引擎,mysql提
【转】UGUI研究院之缓存策略让UI打开更快(三十)
UGUI研究院之缓存策略让UI打开更快(三十) [投稿]Unity3D游戏优化之头顶UI 注意里面提到了:SuperTextMesh:能渲染动态文字,富文本支持图文混排,缺点是支持atlas但很弱,资源管理、解析效率内存占用都算不上优秀。好在有源码可以改,就选这个了。
题解-新题1000-拉格朗日
Problem 在无穷大的水平面上有一个平面直角坐标系,\(N-1\)条垂直于\(x\)轴的直线将空间分为了\(N\)个区域 你被要求把\((0,0)\)处的箱子匀速推到\((x,y)\) 箱子受水平面的摩擦力与正压力正相关,所以在第\(i\)个区域的摩擦力可以表示为\(f_i\) 求把箱子推到目的地做的最小功是多少呢?(不考虑改变速度时的做功) \(N\leq 100\) Thoughts 这道题看题面是物理题,但一般来说这些题都是借着物理题的外表掩饰自己的数学本质 以为要从两块区域的简单情
2018年8月Top 10 Python开源项目
过去一个月,经过对 8 月新增项目多方比较,MyBridge 从 250 余个 Python 开源项目中选出了最好的 10 个。 这些项目在 GitHub 上平均获得 1333 个star 项目话题涵盖:游戏开发、爬虫、终端制图、人脸识别、量子计算、视频下载等。 No.1 Pyxel:一款用Python编写的复古风游戏开发环境。[GitHub上3625个star] 项目地址: https://github.com/kitao/pyxel No.2 Photon:一款速度极快的爬虫工具,可爬取U
学习笔记-Python基础5-函数作用域
变量的作用域: 变量有作用范围限制,其中按作用域分类:全局global(函数外部定义)、局部local(函数内部定义) LEGB原则:L指Local局部作用域、E指Enclosing function local外部嵌套函数作用域、G指Global module函数定义所在的模块作用域、B指Buildin,Python内置模块的作用域 提升局部变量为全局变量:使用global关键字,举例如下: globals、locals函数分别显示出所有全局变量和局部变量,举例如下:
今日推荐
周排行