屏幕后处理效果(screen post-processing effects)是游戏中实现屏幕特效的常见方法。
建立一个基本的屏幕后处理脚本系统
渲染完得到屏幕图像后对图像进行一系列的操作,抓取屏幕可以使用OnRenderImage函数
MonoBehaviour.OnRende...
Mavis
3年前 (2020-11-09) 57℃ 0评论
0喜欢
unity shader内置变量(时间)
纹理动画——序列帧动画
可以将序列的纹理按顺序选中后ctrl+6可以自动生成序列帧动画。
也可以通过shader:提供一张包含了关键帧的图像,重点在于需要在每个时刻计算该时刻下应该播放的关键帧的位置,并对该关键帧进行纹理采样。
Sha...
Mavis
3年前 (2020-11-08) 43℃ 0评论
1喜欢
立方体纹理
对立方体纹理采样需要一个三维的纹理坐标。尽量对凸面体使用立方体纹理(凹面体会反射自身,但是立方体纹理不能模拟多次反射的结果)。
立方体纹理的两大应用:天空盒子+环境映射
天空盒子
创建一个skybox材质即可,然后赋值给天空盒子:
步骤:创建材质,shader选择内置...
Mavis
3年前 (2020-11-08) 30℃ 0评论
0喜欢
Unity的渲染路径
渲染路径rendering path 决定了光照是如何应用的,大多数情况下一个项目使用一种渲染路径,但是如果希望使用多个渲染路径,例如相机A使用前向渲染,相机B使用延迟渲染,可以在每个相机的渲染路径中设置以覆盖全局的设置
全局设置:
相机单独设置:
设置Pa...
Mavis
3年前 (2020-11-07) 52℃ 0评论
0喜欢
两种方法实现透明效果:透明度测试、透明度混合
透明度测试
不需要关闭深度写入,不满足条件舍弃片元,满足条件按照不透明物体处理(深度测试,深度写入)。
Shader "Custom/透明度测试"
{
Properties {
_Color ("Color Tint...
Mavis
3年前 (2020-11-06) 28℃ 0评论
0喜欢
使用纹理映射(texture mapping),逐纹素(texel)地控制模型地颜色,unity使用地纹理空间是符合OpenGL传统地,原点位于纹理左下角。
单张纹理
通常使用纹理来代替物体地漫反射颜色,依旧使用Blinn-Phong光照模型进行计算:
Shader "Unit...
Mavis
3年前 (2020-11-05) 67℃ 0评论
0喜欢
基础知识
光源:实时渲染中,通常把光源当作一个没有体积的点,用l来表示它的方向。使用辐照度(irradiance)来量化光。
吸收和散射:光源与物体相交的结果:散射(scattering)/吸收(absorption)。
散射改变光线方向,但不改变光线密度和颜色:有两种方向,一...
Mavis
3年前 (2020-11-04) 28℃ 0评论
0喜欢
创建一个最简单的顶点/片元着色器
使用unity版本如下:
第一步:去掉初始的天空盒子,只是为了得到更加原始的效果:
第二步:创建Shader文件和材质(前面提到过材质是shader 的载体),并将shader赋给材质(路径可以点开shader查看,也可以自己修改好路径后再赋...
Mavis
3年前 (2020-11-04) 25℃ 0评论
0喜欢
二维笛卡尔坐标系
二维笛卡尔坐标系:原点+过原点且互相垂直的两矢量即x轴和y轴。所有二维笛卡尔坐标系都是等价的,可以通过旋转互相得到。
三维笛卡尔坐标系
三维笛卡尔坐标系:原点+三个坐标轴。
基矢量(Basis Vector):该坐标系的三个坐标轴。
正交基(Orthogona...
Mavis
3年前 (2020-11-02) 116℃ 0评论
1喜欢
Unity Shader 概述
材质是Unity Shader的载体,再将材质赋给相应模型即可查看最终的效果。
Unity中的材质
材质需要结合GameObject的Mesh/Partical Systems组件来工作,新建材质默认使用内置的Standard Shader,可以在...
Mavis
3年前 (2020-11-01) 107℃ 0评论
1喜欢