shader与图形学
永恒星
这个作者很懒,什么都没留下…
展开
-
Unity 实现贴花/投影效果
三是在一个物体上渲染想投影的贴图,让这个物体最后绘制,且只绘制那些被遮挡的部分,二是对被投影的物体的Shader加上关键字,开启关键字的时候用想投影的贴图。一是对处理渲染到相机的最终画面,将想投影的贴图修改上去。本文采用第三种实现方式。原创 2023-02-19 18:52:14 · 2429 阅读 · 0 评论 -
URP Lit Shader解析(2)—LitInput.hlsl
#ifndef UNIVERSAL_LIT_INPUT_INCLUDED //使用#ifndef 指令判断该文件是否已经引入,防止在编写Shader过程中重复引入该文件,作用类同C++中的头文件定义方式#define UNIVERSAL_LIT_INPUT_INCLUDED//如果没有则引入该文件,#define与#endif之间为文件代码//引入这五个文件,后面会用到这些文件中定义的结构体和函数#include "Packages/com.unity.render-pipelines.unive.原创 2022-05-12 13:31:27 · 1298 阅读 · 0 评论 -
URP Lit Shader解析(1)
Shader "Universal Render Pipeline/Lit"//文件位于Packages/Universal RP/Shaders/Lit{ Properties//属性定义 { // Specular vs Metallic workflow 高光和金属工作流 //HideInInspector为使该属性在Inspector中隐藏,WorkflowMode之所以没隐藏是因为ShaderEditorGUI的让其显示,默认为金属工作流 .原创 2022-03-02 11:15:22 · 2775 阅读 · 0 评论 -
模型膨胀效果
【核心思路】让顶点坐标沿着顶点法线方向移动【效果】【Shader实现】Shader "Custom/Swell"//采用表面着色器{ Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) _Metallic ("Metallic", 2D) = "white"{.原创 2022-02-24 11:40:53 · 3611 阅读 · 0 评论 -
对Gamma校正的理解
【Gamma的由来】首先,要区分照度和亮度,照度是一个客观的量,亮度是一个主观的量,不同的人看相同照度的物体所感受到的亮度是不一样的。对于照度线性变化的物体,人眼感受到的亮度不是线性的。人眼对于低照度的物体更敏感,这意味着对于照度为2、3、4的三个物体,人眼能够区分,而对于照度为222、223、224的三个物体,人眼不能区分。其次,我们存储颜色的空间是有限的,常用的RGBA32格式,每个颜色通道只有8位,最多能表示256种照度,而现实世界中的照度远超256。基于人眼对照度的感知特点,我们不能线性的去原创 2022-02-17 14:03:59 · 8767 阅读 · 1 评论 -
对lambert diffuse(兰伯特漫反射)模型的理解
【兰伯特漫反射公式】【理解】同样一束平行光照射到一个物体表面上,物体朝向和光线有不同的夹角时,得到的明暗程度不同。在单位光强度情况下,夹角决定了物体单位表面得到多少能量。光线垂直照射物体表面时,获得的能量最大。与光线垂直的单位面积才能获得全部能量,即单位能量E。物体单位表面沿着与光线垂直的面的投影面积为cosɵ,所获得的能量为Ecosɵ=cosɵ,在数值上cosɵ=n●I 。...原创 2020-08-19 17:02:04 · 2063 阅读 · 0 评论 -
证明旋转矩阵的逆是它的转置(即正交矩阵)
原创 2020-08-19 16:51:27 · 3780 阅读 · 0 评论 -
Unity半透明物体+投射阴影+接受阴影
【前置】水流动效果+透明物体实现半透明有透明度测试和透明度混合两种方式,不同方式接受和投射阴影的方式有所差别。【透明度测试阴影效果图】正方体的阴影一部分打在了水平面上,一部分在白色平面上。由于透明度测试使得水平面的右半部分为完全透明,所以白色平面会接收到正方体的阴影。 水平面用的纹理贴图本身是完全不透明的物体,为了避免在透明度测试中完全透明和完全不透明的情况,用了下面的一张透明度纹理来代替水平面的透明通道 【透明度测试阴影代码】Shader "Custom/WaterFlow原创 2020-07-31 18:03:19 · 8036 阅读 · 0 评论 -
水流动效果+透明
【前置】水流动效果+光照【效果】【shader代码详解】Shader "Custom/WaterFlow"{ Properties{ _MainTex("MainTex",2D) = "white"{}//存放贴图 _Color("Color Tint",Color) = (1,1,1,1)//控制整体颜色 _Specular("Specular",Color) =(1,1,1,1)//控制高光反射颜色 _Gloss("Gloss",Range(1,100))=1原创 2020-07-18 18:15:32 · 793 阅读 · 0 评论 -
水流动效果+光照
【前置】水流动效果Shader【效果】【Shader代码详解】Shader "Custom/WaterFlow"{ Properties{ _MainTex("MainTex",2D) = "white"{}//存放贴图 _Color("Color Tint",Color) = (1,1,1,1)//控制整体颜色 _Specular("Specular",Color) =(1,1,1,1)//控制高光反射颜色 _Gloss("Gloss",Range(1,100.原创 2020-07-18 17:49:09 · 447 阅读 · 0 评论 -
水流动效果Shader
【效果图】【参考】《shader入门精要》原创 2020-07-18 13:51:41 · 1661 阅读 · 0 评论