unity shader入门精要
文章平均质量分 95
123
余光..
取法于上,仅得为中,取法于中,故为其下
展开
-
8.让画面动起来
动画效果往往都是把时间添加到一些变量的计算中,以便在时间变化的同时也可以随之变化。Unity shader提供了一系列关于时间的内置变量来允许我们方便地在Shader中访问运行时间,实现各种动画效果。原创 2024-06-09 23:58:44 · 373 阅读 · 0 评论 -
7.高级纹理
前面的基础纹理包括法线纹理、渐变纹理和遮罩纹理等。这些纹理都属于低纬(一维或二维)纹理。立方体纹理(Cubemap)实现环境映射渲染纹理(Render Texture)程序纹理(Procedure Texture)原创 2024-06-07 02:31:04 · 309 阅读 · 0 评论 -
6.更复杂的光照
一、Unity的渲染路径1.前向渲染路径2.顶点照明渲染路径3.延迟渲染路径4.选择哪种渲染路径二、Unity的光源类型1.光源类型有什么影响2.在前向渲染中处理不同的光源类型三、Unity的光照衰弱1.用于光照衰弱的纹理2.使用数学公式计算衰弱四、Unity的阴影1.阴影是如何实现的2.不透明物体的阴影3.使用帧调试器查看阴影绘制过程4.统一管理光照衰弱和阴影5.透明度物体的阴影五、本书使用的标准UnityShader原创 2024-06-04 22:20:48 · 215 阅读 · 0 评论 -
5.透明效果
一、为什么渲染顺序很重要二、Unity Shader的渲染顺序三、透明度测试四、透明度混合五、开启深度写入的半透明效果六、ShaderLab的混合命令1.混合等式和参数2.混合操作3.常见的混合类型七、双面渲染的透明效果1.透明度测试的双面渲染2.透明度混合的双面渲染原创 2024-06-04 02:42:51 · 204 阅读 · 0 评论 -
4.基础纹理
纹理类型中需要声明一个float4类型的变量_MainTex_ST,其中_MainTex_ST的名字不是任意起的,在unity中,需要使用纹理名_ST的方式来声明某个纹理的属性。Texture Type 纹理类型:选择合适的纹理类型,才能让unity知道我们的意图,传递正确的纹理,或对纹理进行优化。_MainTex_ST.xy存储的是缩放值,_MainTex_ST.zw存储的是偏移值。Clamp,如果纹理大于1,那么将会截取到1,如果小于0,那么就会截取到0。这些值可以在材质面板的纹理属性中调节。原创 2024-06-03 04:09:58 · 335 阅读 · 0 评论 -
3.基础光照
从宏观上讲渲染包含了两大部分:决定一个像素的可见性,决定一个像素的光照计算而光照模型就是用于决定在一个像素上决定怎样的渲染光照计算。原创 2024-06-02 03:40:57 · 617 阅读 · 0 评论 -
2.unity shader基础
ShaderLab是Unity结合CG和HLSL的一些语义,开发出来的可编程管线语言,主要优势是能基于Unity实现跨平台。//UNITY_MATRIX_MVP:unity提供的宏,代表模型空间到裁切空间的变换矩阵。//i.tangent.w在OpenGL中是+1,在DirectX中是-1。有时候,主要是在处理法线纹理跟光照模型的时候,会用到TNB坐标系,也就是所谓的切线空间。//POSITION:unity的变量类型。//预编译,顶点/片元着色器指定函数。//定义属性,可以通过外部的c#语言传值。原创 2024-05-29 02:39:09 · 150 阅读 · 0 评论 -
1.渲染流水线
编写着色器代码的高级着色器语言GLSL(OpenGL):跨平台性HLSL(DirectX):微软,平台有限CG(NVIDIA):真正意义跨平台unity中的着色器语言并非真正的着色器语言,尽管语法相同GPU流水线上的一些可高度编程的阶段,而由着色器编译出来的最终代码是会在GPU上运行的(对于固定管线来说,着色器有时等同于一些特定的渲染设置)有一些特定类型的着色器,如顶点着色器,片元着色器等。原创 2024-05-23 13:40:42 · 316 阅读 · 0 评论