- 博客(10)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 Unity三角形全屏着色的方式
看到HDRP源码中通过DrawProcedural绘制一个三角形来实现全屏绘制,代码是这样的:m_CommandBuffer.DrawProcedural(Matrix4x4.identity, m_SharedMaterial, 1, MeshTopology.Triangles, 3, 1, null);v2f vert(appdata v){ v2f o; o.vertex = GetFullScreenTriangleVertexPosition(v.vertexID);
2021-11-06 11:34:33
3444
1
原创 Shader小技巧-翻转uv
普通的Repeat采样默认是这样的:但是想让它的上下左右能和自己衔接,那么就翻转一下,像这样:代码比较简单:Shader "Unlit/NewUnlitShader"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Size ("_size", float) = 1 } SubShader { Tags { "RenderType"="Opaqu..
2021-10-16 14:16:56
1010
原创 Instancing+材质属性块
Instancing+材质属性块适应一个材质去实现一些参数不同的效果,占用一个drawcall,这种性价比特别高的方案,可以用在很多地方。C#部分:using UnityEngine;[ExecuteInEditMode]public class MiniMapProperties : MonoBehaviour{ public int m_Index = 1; ...
2020-04-10 16:58:20
432
原创 Camera
在URP中有两种类型的相机。1.一个基本相机,最普通的渲染屏幕或者RT。(通用相机,必须要有,可用于后期效果)2.一种是叠加式相机,可以在一个基本型相机上叠加多个覆盖式相机。(不能单独使用,必须在正向渲染中,不能单独用于后期效果)叠加相机只能使用如下属性(其他信息也能在代码中操作,但是不会有效果):Projection FOV Axis Field of View Physi...
2020-03-27 17:29:49
621
原创 GPU Instancing
// 1.渲染相同材质,仅使用少量drawCalls,适用于重复的建筑,植被,石头等// 2.每个实例,可以有不同的参数,如位置,缩放,颜色等等// 3.需勾选材质上的EnableInstancing,并且使用相关的宏,此时内部会自动执行instancing// 4.可以使用SetPropertyBlock设置相关属性,达到同材质不同的效果// 5.可以使用Graphics.DrawMe...
2020-03-02 12:54:11
353
原创 ASE实例1-熔岩效果
一个入门级的UV移动+材质叠加+Sin时间,形成的熔岩明暗交替流动效果要点:1.TextureCoordinates,纹理坐标,代码为UV=UV *缩放+偏移,控制UV的缩放和偏移2.Panner节点,UV控制器,代码为UV=UV+Speed.xy*Time,常用于UV随着时间发生变化生成代码:Shader "ASESampleShaders/AnimatedFire...
2020-01-01 11:25:18
1695
原创 屏幕后期效果-卷积实现边缘检测
所需知识点:卷积进行边缘检测的的基本原理:https://blog.youkuaiyun.com/u013555719/article/details/81121005Shader "Unity Shaders Book/Chapter 12/Edge Detection" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _...
2019-07-31 18:09:28
275
原创 ShadowMap基本原理
unity的阴影实现方式是采用Shdowmap技术,但是一直不知道其中的原理。它的原理并不复杂,假设有一个摄像机在灯光的位置,从灯光的位置往物体看,这时候会有一张光源空间的深度信息图,这就是Shadow Map。凡是物体的深度值大于Shadow Map上的深度值的都是被遮挡的部分,表示处于阴影中。所需知识点:1.模型空间到屏幕空间的变换过程http://www.idivecat.co...
2019-07-23 22:33:02
1095
原创 UGUI(2)摄像机渲染纹理
以前在项目中弄过摄像机渲染纹理,现在再来整理下思路。渲染纹理在游戏中的运用非常常见,比如任务对话框上的3DNPC模型显示,角色装备栏中玩家的3D模型显示等。先上图再来分析思路:在Unity中实现这个功能非常容易1.创建一个临时纹理RenderTexture2.新建一个单独的摄像机(可称为photo摄像机),将目标纹理设置为临时创建的纹理3.将临时创建的纹
2015-10-30 22:35:31
851
转载 (C#)使用Task创建任务
.NET 4 中 包含了新名称空间System.Threading.Task。它包含的类抽象出了线程的功能。使用Task类创建的任务是后台线程,所以在前台线程全部终止的时候,如果任务还没有全部执行万,就会被被动终止。启动任务 怎样启动一个任务?代码中我们首先要添加using System.Threading.Tasks;引用。我们可以使用TaskFactory类或Task类的构造函数和S
2013-08-07 10:29:35
1169
C/C++常用算法手册(带详细目录)
2019-01-19
shader顶点程序中,UV信息不来自纹理坐标集,而来自输出pos的换算,求分析原因!
2014-12-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人