【Unity Shader 入门精要】笔记整理
文章平均质量分 93
各章笔记、代码整理
qq_43363200
这个作者很懒,什么都没留下…
展开
-
【unity shader 入门精要】CH9 更复杂的光照
文章目录Unity的渲染路径前向渲染路径前向渲染路径的原理Unity的渲染路径在Unity里,渲染路径(Rendering Path)决定了光照是如何应用到UnityShader中的。如果要和光源打交道,我们需要为每个Pass指定它使用的渲染路径。大多数情况下,一个项目只使用一种渲染路径,因此我们可以为整个项目设置渲染时的渲染路径。我们可以通过在Unity的Edit → Project Settings →Player → Other Settings → Rendering Path中选择项目所需原创 2021-05-07 15:47:40 · 396 阅读 · 4 评论 -
【unity shader 入门精要】CH8 透明效果
文章目录基本概念渲染顺序透明度测试透明度混合渲染顺序为什么透明度混合要关闭深度写入关闭深度写入导致渲染顺序将变得非常重要Unity Shader的渲染顺序透明度测试透明度混合开启深度写入的半透明效果ShaderLab的混合命令混合的实现混合等式和参数双面渲染的透明效果透明度测试的双面渲染透明度混合的双面渲染基本概念透明是游戏中经常要使用的一种效果。在实时渲染中要实现透明效果,通常会在渲染模型时控制它的透明通道(Alpha Channel)。当开启透明混合后,当一个物体被渲染到屏幕上时,每个片元除了颜原创 2021-05-03 15:06:47 · 297 阅读 · 2 评论 -
【unity shader 入门精要】CH2 渲染流水线
文章目录渲染流程应用阶段(CPU)把数据加载到显存中设置渲染状态调用 Draw Call几何阶段(GPU)顶点着色器(Vertex Shader)曲面细分着色器(Tessellation Shader)几何着色器(Geometry Shader)裁剪(Clipping)屏幕映射(Screen Mapping)光栅化阶段(GPU)三角形设置三角形遍历片元着色器逐片元操作底层CPU 与 GPU 并行工作——命令缓冲区减少 Draw Call —— 批处理固定管线渲染渲染流程应用阶段(CPU)把数据加载到显原创 2021-04-28 23:08:24 · 298 阅读 · 1 评论 -
【unity shader 入门精要】CH3 Unity Shader 基础结构
文章目录UnityLabUnity Shader 的基础结构Properties 语义块SubShaderUnityLabShaderLab 是Unity提供的编写 Unity Shader 的一种说明性语言。Unity Shader 的基础结构Shader "ShaderName" { // Shader 的名字 Properties { // 属性 } SubShader { // 显卡 A 使用的子着色器 } SubShader { // 显卡 B 使用的子着色器原创 2021-04-29 00:00:45 · 195 阅读 · 0 评论 -
【unity shader 入门精要】CH4 数学基础
文章目录在模型空间和世界空间,unity 使用的坐标系:左手系但对于观察空间,unity使用的是右手系原创 2021-04-29 13:51:20 · 309 阅读 · 1 评论 -
【unity shader 入门精要】CH5-1 顶点 / 片元 着色器
文章目录顶点 / 片元 着色器顶点 / 片元 着色器Shader "MyShaderName" { Properties { // 属性 } SubShader { // 针对显卡 A 的 SubShader Pass { // 设置渲染状态和标签 // 开始CG代码 CGPROGRAM // 该代码片段的编译指令,如: #pragma vertex vert #pragma fragment frag ENDCG } } S原创 2021-04-30 22:14:24 · 397 阅读 · 1 评论 -
【unity shader 入门精要】CH5-2 语义
文章目录Unity提供的CG/HLSL语义SV语义Unity 支持的语义Unity提供的CG/HLSL语义语义是一个赋给Shader输入或输出的字符串,这个字符串表达了这个参数的含义。这些语义可以让Shader知道从哪里读取数据,并把数据输出到哪里。Unity并没有支持所有的语义。相关文档 供查阅通常情况下,这些输入输出变量并不需要有特别的意义,我们可以自行决定这些变量的用途。SV语义在DirectX 10以后,有了一种新的语义类型,以SV开头,就是系统数值语义(system-value s原创 2021-04-30 22:47:07 · 143 阅读 · 1 评论 -
【unity shader 入门精要】CH6-1 Unity中的基础光照-理论部分
文章目录基础概念光源吸收和散射着色BRDF光照模型标准光照模型自发光高光反射漫反射环境光逐像素 / 逐顶点Unity中的环境光和自发光渲染包含了两大部分:决定一个像素的可见性,决定这个像素上的光照计算。光照模型就用于决定在一个像素上进行怎样的光照计算。基础概念光源在实时渲染中,我们通常把光源当成一个没有体积的点,用l来表示它的方向。在光学里,我们使用**辐照度(irradiance)**来量化光。对于平行光来说,它的辐照度可通过计算在垂直于 l 的单位面积上单位时间内穿过的能量来得到。在计算原创 2021-05-02 12:17:03 · 251 阅读 · 3 评论 -
【unity shader 入门精要】CH6-2 Unity中的基础光照-实践部分
文章目录在Unity Shader中实现漫反射光照模型逐顶点的漫反射光照逐像素光照半兰伯特模型在Unity Shader中实现高光反射光照模型逐顶点光照逐像素光照Blinn-Phong光照模型使用Unity内置的函数使用内置函数改写Unity Shader在Unity Shader中实现漫反射光照模型基本光照模型中漫反射部分的计算:clightc_{light}clight:入射光线的颜色和强度mdiffusem_{diffuse}mdiffuse:材质的漫反射系数n\boldsymbol{原创 2021-05-02 14:24:20 · 402 阅读 · 0 评论 -
【unity shader 入门精要】CH7 基础纹理
文章目录纹理单张纹理纹理纹理就是使用一张图片来控制模型的外观。使用纹理映射(texture mapping)技术,我们可以把一张图“黏”在模型表面,逐纹素(texel)(纹素的名字是为了和像素进行区分)地控制模型的颜色。在美术人员建模的时候,通常会在建模软件中利用纹理展开技术把纹理映射坐标(texture-mapping coordinates)存储在每个顶点上。纹理映射坐标定义了该顶点在纹理中对应的2D坐标。通常,这些坐标使用一个**二维变量(u, v)**来表示,其中u是横向坐标,而v是纵向坐标原创 2021-05-02 18:35:40 · 356 阅读 · 0 评论