Shader
文章平均质量分 81
木匠沙
这个作者很懒,什么都没留下…
展开
-
9、无须光照的模型假阴影实现 URP
模型阴影我们在实际项目中,经常会有模型影子的需求。这个时候如果使用光照的话,在移动端性能消耗太大。如果使用一个假的阴影片,效果又不太好。我们希望有能够有和灯光系统一样的阴影效果。我们通过模拟灯光的方式来实现之前我们写的shader都是对顶点颜色的控制,也就是fragment shader的编写。这次我们需要产生阴影,那么就要用到vector shader的编写。我们首先写一个简单模型渲染shader这次还是一个双pass的shader实现。Shader "Unlit/ModelShad原创 2022-05-25 22:13:48 · 1430 阅读 · 2 评论 -
8、2D建筑与3D模型的遮挡问题 URP Shader
在我们的实际项目中根据实际情况,我们的建筑采用了2D面片的方式,但因为我们的英雄是3D模型,同时策划有需求,英雄可以在主城里面走动。这个时候就给我们提出了一个比较麻烦的问题,我们知道正常情况下渲染是谁的渲染队列高谁渲染在上面,我们这里英雄的Render Queue是2900,建筑面片的Render Queue是2800.渲染结果就会是下图的样子。我们希望的是2D的建筑能正确的遮挡3D模型。模型在建筑前面时又可以正常显示也就是在部分区域可以遮挡模型,其它区域不遮挡模型。但是这样的需求,单Pass原创 2022-05-15 09:21:19 · 776 阅读 · 0 评论 -
7、万国觉醒建筑白天黑夜效果(Shader Graph)
建筑白天黑夜效果实现,包含Shader Graph实现、HLSL代码实现。原创 2022-05-13 19:33:44 · 1461 阅读 · 0 评论 -
6、Shader 如何支持半透
如何增加半透支持我们在实际项目中,很多情况下渲染都是需要支持半透材质的。我们之前的shader大家如果尝试过,可能会发现是不支持半透材质的。我们继续修改之前的示例shader首先将Tags 中的RenderType 和Queue的值都改为transparent,也就是默认支持半透渲染。加入Blend指令,用来指明半透物体之间如何混合。Shader "Mark/Unlit" { //名字 Properties { _MainTex ("Base (RGB)", 2D) = "white"原创 2022-05-10 22:38:06 · 1009 阅读 · 0 评论 -
5、Shader如何启用SPR Batcher支持
如果查看Shader是否支持SPR Batcher我们可以在Unity里面看一下我们之前写的示例Shader红框位置是直接回显示是否适配SPR Batcher,我们的示例Shader是不适配的。白色叹号后面是具体的说明。下面我们来改一下示例Shader,在pass的自定义属性加上CBUFFER_START、CUBFFER_END。Shader "Mark/Unlit" { //名字 Properties { _MainTex ("Base (RGB)", 2D) = "white" {}原创 2022-05-09 22:05:32 · 867 阅读 · 0 评论 -
4、Shader示例分析
先来看一下之前介绍Shader基本结构的shaser 示例代码。关键位置都已经加了注释、了解一下就可以,后面我们会用示例的方式一点点的去了解、学习。Shader "Mark/Unlit" { //名字 Properties { _MainTex ("Base (RGB)", 2D) = "white" {} //定义贴图属性 _Color("Main Color", Color) = (1,1,1,1) //定义一个主颜色 } SubShader { Tags {"R原创 2022-05-09 21:08:43 · 160 阅读 · 0 评论 -
3、shader的基本结构
shader的基本结构Shader "ShaderName"{ Properties{ ... } SubShader{ ... } Fallback "VertexLit"}ShaderName是自己定义的shader名字,可以类似“Custom/MyShader”这样来定义目录结构,不需要和文件名相同。Properties是用来自定义属性SubS原创 2022-05-08 22:24:55 · 324 阅读 · 0 评论 -
2、为什么选择URP
为什么选择URP现在所在项目为SLG类项目,有同屏200+英雄的需求。Unity传统渲染管线的动态批处理有个限制是Skined Mesh Renderer不能进行动态批处理。英雄如果不采用Skined Mesh Renderer又不能满足美术的需求。URP 的 SRP Batcher的功能恰好可以完美解决这个问题。UPR在灯光处理上可以极大的降低消耗,在高模英雄展示上我们可以增加一些辅助光源来提高展示质量。SRP BatcherSRP Batcher 是一个渲染循环,可通过许多使用同一着色器变原创 2022-05-08 22:19:09 · 2208 阅读 · 0 评论 -
1、什么是Shader
什么是ShaderShader,中文名为着色器。Shader其实就是专门用来渲染图形的一种技术,通过shader,我们可以自定义显卡渲染画面的算法,使画面达到我们想要的效果。小到每一个像素点,大到整个屏幕。原创 2022-05-08 22:15:41 · 8993 阅读 · 0 评论