unity shader学习
文章平均质量分 53
shader编写以及基本知识
Break The Sky
这个作者很懒,什么都没留下…
展开
-
Unity顶点动画的阴影实现
Unityshader入门精要中的顶点动画广告牌部分阴影实现原创 2022-06-10 22:57:05 · 709 阅读 · 1 评论 -
Unity-Shader创建用于环境映射的立方体纹理
一般来说,在yunity5中有三种创建用于环境映射的立方体纹理的办法通过特殊纹理直接生成手动创建Cubemap资源,再准备六张纹理图,依此赋值通过脚本生成第一种,需要准本一张特殊布局的纹理,比如立方体的立体展开图第二种,这种方法是unity5之前的版本中使用的方法,需要再项目中创建一个Cubemap,然后六张纹理拖进去即可第三种:前面两种是直接准备好立方体的纹理图像,但是符合我们需求的是通过物体在场景中的位置自动生成对应的不同立方体纹理,代码如下:using UnityEngine;usin原创 2022-05-27 16:10:19 · 673 阅读 · 0 评论 -
unity shader——渲染流水线
文章目录1:什么是流水线:2:什么是渲染流水线:应用阶段:应用阶段有三个主要任务 (在CPU上运行)几何阶段(在GPU上执行)光栅化阶段(在GPU上执行)CPU和GPU之间的通讯1. 将所需数据加载到显存中2. 设置渲染状态3. 调用Draw Call(图像编程接口)GPU流水线(千万要把渲染流水线和GPU流水线分开呀)几何阶段顶点着色器(完全可以编程)曲面细分着色器几何着色器剪裁屏幕映射光栅化阶段三角形设置三角形遍历片元着色器逐片元操作问题CPU和GPU如何并行工作的为什么DrawCall多了会影响效原创 2021-05-04 19:58:59 · 287 阅读 · 0 评论 -
unity-shader之截图(抓屏)功能、常用的cginc、multi_complie多条件、移动平台的基本优化
GrabPass使用抓屏通道GrabPass[]或者GrabPass{“纹理名称”};如果不指定纹理名称,将会默认的将纹理生成到_GrabTexture中,后面的Pass通道使用这个变量来获得抓屏纹理场景:代码Shader "Custom/Grab_Shader"{ Properties { _MainTex ("Texture", 2D) = "w...原创 2020-02-01 14:11:21 · 875 阅读 · 0 评论 -
unity-shader之混合模式、面剔除、Alpha测试、深度测试、通道遮罩
混合模式我们着色完成之后,需要把颜色的混合输出到帧缓冲区里面,这个时候就可能涉及到源与目标,比如说半透明,原来是一个颜色Alpha通道的意思是我这个目标能够透过多少,也就是说我们本来的颜色只有RGB是没有Alpha通道的,Alpha类似于描述叠加颜色的时候要怎么叠加过去,所以Alpha通道又叫做透明度,一旦有了透明度,就涉及到了原颜色与目标颜色的混合下图是混合命令。注意:混合命令要放置在...原创 2020-01-31 15:39:34 · 1213 阅读 · 0 评论 -
unity shader之LOD以及渲染队列
LOD设置LOD全称Level of Detail作用:unity引擎会根据不同的LOD值在不同的平台上使用不同的SubShader注意:在上几篇博客中已经说过在一个着色器中会有一到多个SubShader,但是系统每次只会执行一个子着色器,选择子着色器的标准就是根据子着色器所设置的LOD的值来进行选择,每一次使用着色器,都会选择第一个小于等于LOD值的子着色器。如何设置Shader的LOD...原创 2020-01-30 20:03:27 · 1812 阅读 · 0 评论 -
unity-表面shader需要具备的基本知识
表面着色器包含四个函数入口(1)顶点变换函数(2)表面着色函数(3)光照模型(4)最终颜色修改函数(1)(3)(4)这三个函数可选如何定义入口函数格式:#pragma surface 入口函数名称 光照模型[Options](1)Options代表的是可选的参数Suface后面跟着的是表面着色器的入口函数,例如:surf(Input IN,inout SurfaceOutpu...原创 2020-01-29 18:21:18 · 215 阅读 · 0 评论 -
unity-shader水中波光照射动物身上的效果
首先要知道,如果想要制作阳光照射到水中动物的效果,我们需要的贴图纹理要有两张,一张是动物的皮肤纹理,另一张是波光的纹理,我是用的是下面的两张贴图纹理解释一下为什么要是用背景为黑色的波光纹理,因为黑色的RGB值是(0.0,0.0,0.0),这样在两种贴图相叠加的时候不会因为背景颜色的RGB值而发生我们不愿看到的变化,在上一篇博客的基础上https://blog.csdn.net/lfany...原创 2020-01-28 15:26:46 · 659 阅读 · 1 评论 -
unity-关于shader海平面制作
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Custom/sin_shader"{ Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader...原创 2020-01-28 13:59:23 · 850 阅读 · 0 评论 -
unity-修改shader的默认值,纹理
在子着色器中的通道里面命名一个相同变量名的对应类型,然后如果修改的是坐标等顶点着色器中的属性,就在顶点着色器的编程中返回,如果是颜色等像素着色器中的属性就在片元着色器中返回相应的值。例如Shader "Custom/My_shader2"{ Properties { _Color ("Color", Color) = (1,1,1,1) _Ma...原创 2020-01-26 15:30:41 · 2258 阅读 · 1 评论 -
unity—shader简单编程(2)
https://blog.csdn.net/lfanyize/article/details/104087184上一篇编写shader需要具备的知识储备,在这篇博客中如果有迷茫的可以去这里看一看// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'// Upgrade NOTE: ...原创 2020-01-26 15:06:51 · 142 阅读 · 0 评论 -
unity-shader编写需要储备的知识(1)
首先是说一些关于着色器的一些基本知识1.着色器类型类型,分别是固定管线着色器(将会淘汰)、顶点片元着色器、表面着色器。顶点片元着色器:干预模型形态的着色器,例如带有波浪的水面,修改的就是波浪表面上每一个顶点的值。表面着色器:干预像素的着色器,比如乌龟上面添加一个光照的纹理,使其有一种在水中游泳的感觉。2.着色器与显卡的关系显卡也就是GPU是图形运算处理中心两者的关系为图形->添加...原创 2020-01-26 14:52:47 · 679 阅读 · 1 评论