![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UnityShader
文章平均质量分 81
楼下桑桑桑
这个作者很懒,什么都没留下…
展开
-
Unity shader入门精要学习笔记-中级篇(阴影和光照衰减/高级纹理/纹理动画)
前向渲染路径、延迟渲染路径、顶点渲染路径(5.0后顶点已经抛弃)可以在摄像机的渲染路径中设置渲染路径。1.前向渲染路径:原理:每进行一次完整的前向渲染,渲染该对象的渲染图元,计算两个缓冲区的信息:一个是颜色缓冲区一个是深度缓冲区。利用深度来决定一个片元是否可见如果可见就更新颜色缓冲区的颜色值。unity中的前向渲染:三种处理光照的方式:逐顶点处理、逐像素处理、球谐函数SH处理。由类型和渲染模式(是否重要)来决定一个光源使用哪种处理。 判断规则:最亮的平行光按逐像素处理/...原创 2021-03-22 15:04:39 · 512 阅读 · 0 评论 -
Unity shader入门精要学习笔记-代码篇6(序列帧动画/滚动背景/流动河流/广告牌/顶点动画的阴影)
一、序列帧动画建立一个四边形对着摄像机。我们需要一张序列帧图像,这里用到8x8的爆炸图。给四边形上材质和shader,代码如下:Shader "Custom/NewSurfaceShader"{ Properties { _Color ("Color Tint", Color) = (1, 1, 1, 1) _MainTex ("Image Sequence", 2D) = "white" {} _HorizontalAmount ("Horizontal Amo原创 2021-03-22 15:04:09 · 545 阅读 · 0 评论 -
Unity shader入门精要学习笔记-代码篇5(环境映射的立方体纹理/反射/菲涅尔反射/镜子效果/玻璃效果/程序纹理)
一、环境映射的立方体纹理1.挂脚本:我们使用一个RenderCubemapWizard.cs脚本,放到Assets的Editor下面,这样我们在菜单栏就可以看到有一个新的选项2.创建一个空的gameobject,新建一个立方体纹理!这里的cubemap在创建-旧版-立方体贴图里面!!勾选readable3.打开render into cubemap,把第二步创建的gameobject和立方体纹理拖拽到打开窗口4.点击render!渲染调整下渲染出来的立方体纹理分辨率越大效果越原创 2021-03-20 15:44:29 · 407 阅读 · 0 评论 -
Unity shader入门精要学习笔记-代码篇4(在前向渲染中处理不同的光源类型/不透明物体的阴影/统一管理光照衰减和阴影/透明物体的投影)
1.在前向渲染中处理不同的光源类型原创 2021-03-18 00:13:26 · 203 阅读 · 0 评论 -
Unity shader入门精要学习笔记-初级篇(unityshader简单制作/unity基础光照/基础纹理/透明效果)
一、unityshader简单制作1.顶点/片元着色器基本结构shader ”MyShader“ {//命名Properties{ Name{"display name",PropertyType}=DefaultValue//属性名字:Name 显示名字:display name 类型:PropertyType 默认值:DefaultValue}6SubShader{ [Tags]//可选的标签,仅可在subshadeer中声明 ...原创 2021-03-12 18:33:50 · 868 阅读 · 0 评论 -
Unity shader入门精要学习笔记-代码篇3(透明度测试/透明度混合/开启深度写入的半透明效果/双面渲染的透明效果)
一、透明度测试其实只是在片元着色器中增加了对透明度判断并裁剪片元的代码。片元着色器使用clip函数来进行透明度测试,给定参数任何一个分量是负数就会舍弃当前像素的输出颜色。半透明纹理来实现透明度测试。关键在于:1. Tags {"Queue"="AlphaTest" "IgnoreProjector"="True" "RenderType"="TransparentCutout"} //IgnoreProjector不会受到投影器的影响 RenderType用...原创 2021-03-12 16:44:10 · 310 阅读 · 0 评论 -
Unity shader入门精要学习笔记-代码篇2(纹理贴图/凹凸映射/渐变纹理/遮罩纹理)
一、纹理贴图1.我们在properties中添加纹理属性代替漫反射颜色,添加color属性控制整体色调。2.与其他属性不同我们还需要为纹理属性声明一个float4类型的变量格式是纹理名_ST,_MainTex_ST.xy存储缩放值,_MainTeX_ST.zw存储的是偏移值3.修改顶点着色器的输入输出结构体4.顶点着色器主要是添加了这一句o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;Shader "Custom/Sing.原创 2021-03-10 17:30:07 · 543 阅读 · 1 评论 -
Unity shader入门精要学习笔记-代码篇1(漫反射光照模型/高光反射光照模型/内置函数实现)
一.漫反射光照模型首先计算公式:兰伯特模型 Cdiffuse=(Clight•mdiffuse)max(0,n•I) n表面法线,I指向光源的单位矢量,mdiffuse材质漫反射颜色,Clight光源颜色unity操作步骤(通用就写一遍吧):1.Unity新建场景,window-lighting-skybox去掉天空盒子2.新建材质3.新建unity shader ,赋给第二步的材质4.创建胶囊体,将第二步材质赋给物体5.保存场景那么接下来就是代码啦!...原创 2021-03-08 16:55:01 · 322 阅读 · 0 评论 -
Unity shader入门精要学习笔记-基础篇(渲染流水线/unityshader基础/数学基础)
什么是shader:着色器性能的瓶颈:(bottleneck)流水线中决定最后生产速度的是最慢的工序所需要的时间渲染流水线: 输入:一个虚拟摄像机、一些光源、一些shader以及纹理 最终目的:生成(渲染)一张二维纹理工作任务:一个三维场景--生成(渲染)-->一张二维纹理 or 一系列的顶点数据、纹理-->图像渲染流程3阶段:应用阶段、几何阶段、光栅化阶段应用阶段(CPU): 1.摄像机的位置、视锥体、场景中包含模型、使用光源 ...原创 2021-02-24 00:46:04 · 400 阅读 · 0 评论