- 博客(9)
- 收藏
- 关注
原创 Unity Shader报错:undeclared identifier ‘_LightColor0‘ 解决方案
unityshader报错:undeclared identifier '_LightColor0'解决方案
2022-06-30 19:10:59
6448
1
原创 Unity Shader学习笔记4 Shader数学基础(1)
前言Shader所需要的数学基础和线性代数(矩阵)息息相关,因为在渲染管线中涉及到多个坐标空间之间的变换。不论是矢量还是坐标,在不同的坐标空间中变换时,需要借助矩阵来完成变换。一下是对矩阵基本概念以及一些基本运算的复习(就当复习线性代数了哈哈)一、笛卡尔坐标系在复习矩阵之前,一个非常重要的东西是坐标系的表示。坐标系是点和向量的基础,毕竟是在坐标系中进行各种各样的变换。一个最基本的坐标系是笛卡尔坐标系,包括二维笛卡尔坐标系和三位笛卡尔坐标系,这里着重记录三维笛卡尔坐标系在三维笛卡尔坐标系中,我们需
2022-05-09 22:20:34
800
原创 Unity Shader学习笔记3 Unity Shader的形式
前言unity shader能做的事情有很多,但其最主要的任务还是指定各种shader所需的代码,例如表面着色器,顶点着色器,片元着色器等一、表面着色器表面着色器是Unity自己创造的一种着色器代码类型,其本质上仍然是顶点/片元着色器,Unity只是将其做成了更高级的对象Shader "Custom/Simple Surface Shader"{ SubShader{ Tags{"RenderType" = "Opaque"} CDPROGRAM #progma surface sur
2022-05-06 20:31:26
682
原创 Unity shader学习笔记2 逐片元操作与Unity Shader基本概述
前言前面写到了逐片元操作的大概流程,下面是对其步骤的细化与unity shader的整体概述一、逐片元操作逐片元操作是一个OpenGL当中的词汇,在DirectX中把它叫做输出合并阶段这个阶段的任务如图所示模板测试可以将模板测试理解为蒙版测试,也即指定一片区域,这个区域将用模板缓冲来表示,如下图,值为1的地方被保留,为0的地方被丢弃深度测试当场景中有一个片元被另个片元盖住而不可见的时候,就要使用深度测试来决定显示前面的片元还是显示后面的片元,我们使用的是深度缓冲区的方法来实现这一环节。在决
2022-05-04 07:55:06
458
原创 表面细分与平滑着色
前言最近发现了之前自己鼓捣的blender的平滑着色和平直着色以及表面细分和最近刚学的渲染管线之间的联系,在此记录一下一、平直着色与平滑着色从字面意思就可以理解,一个是能直接分辨网格面的着色方式,一个是无法直接分辨网格面的着色方式平直着色直接选取三角面上任意一个点,计算这个点的法向量和朝光源向量,将结果直接映射到这一三角面上的所有点(三角面任意法向量都相同)平滑着色则是将平直着色计算得到的结果进行线性插值得到了一连串均匀变化的结果,反应在网格上就是一个光滑的面结果非常直观有一个很有意思的现象是,
2022-05-02 11:55:59
5216
原创 Unity shader学习笔记1 渲染管线
文章目录前言渲染管线1.渲染管线的整体流程a.应用阶段b.几何阶段c.光栅化阶段2.cpu和gpu之间的通信(Draw Call)a.数据传递b.设置渲染状态c.调用draw call3.GPU流水线顶点着色器裁剪屏幕映射三角形设置三角形遍历片元着色器逐片元操作总结前言第一篇博客,总感觉还是得把学过的东西都给记录下来,就当写着玩玩了这几天看了Unity shader入门精要的前几章,总感觉还是有点不懂,先把几个点给写一下吧渲染管线Render Pipeline 书里面叫做渲染流水线,大概意思就是
2022-05-01 23:41:36
1977
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人