参考的主要还是URP的代码,这里誊抄的主要目的是熟悉SRP的编写过程,最后完成一套框架。

参考地址:https://gitee.com/yichichunshui/srpframework.git
版本号:d72e84e19907b162a7519f5e46c68c107fc8dd4f

本节是SRPFramework的第3节。
具体完成如下的任务:
1、给物体加自发光

在URP的源码中,区分了两个重要的结构:

在博客:https://lantertronics.blogspot.com/2019/07/customizing-lit-shader-in-unitys.html

其实这两个属性,你可以在一个结构体中声明,只是为了逻辑上区分意义而已。

从逻辑上区分来说:
InputData,则是包含了一些计算出来的插值,如位置、法线、纹理坐标
SurfaceData,则是包含了从贴图采样而来的一些属性,比如金属性,自发光,透明度,等等。

其实在我们自己的shader中可以根据需要自行区分。
比如我们把用于光照计算的单独成一个结构体,还可以把材质的一些数据单独成一个结构体,都是可以的。
在catlike中的示例代码中,又有自己一套的结构体,如:



等等,所以没有什么严格的要求,根据个人喜好,定义struct即可。

本文还是参考urp中的结构体。

Shader "SRP/Emission"
{Properties{_MainTex("Texture", 2D) = "white" {}_EmissionColor("EmissionColor", Color) = (1,1,1,1)_EmissionMap("Emission", 2D) = "white" {}}SubShader{Tags { "Queue" = "Geometry" "LightMode" = "SRPRenderPipeline"}LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "Input.hlsl"#include "SurfaceInput.hlsl"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};sampler2D _MainTex;float4 _MainTex_ST;float4 _EmissionColor;v2f vert(appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}void InitializeStandardLitSurfaceData(float2 uv, out SurfaceData surfaceData){surfaceData.emission = SampleEmission(uv, _EmissionColor.rgb, TEXTURE2D_ARGS(_EmissionMap, sampler_EmissionMap));}fixed4 frag(v2f i) : SV_Target{SurfaceData surfaceData;InitializeStandardLitSurfaceData(i.uv, surfaceData);return fixed4(surfaceData.emission, 1);}ENDCG}}
}

头文件:

#ifndef SRP_SURFACE_INPUT_INCLUDED
#define SRP_SURFACE_INPUT_INCLUDED#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"TEXTURE2D(_EmissionMap);
SAMPLER(sampler_EmissionMap);struct SurfaceData
{float3 emission;
};float3 SampleEmission(float2 uv, float3 emissionColor, TEXTURE2D_PARAM(emissionTex, sampler_emissionTex))
{return SAMPLE_TEXTURE2D(emissionTex, sampler_emissionTex, uv).rgb * emissionColor;
}#endif

手把手教你抄写URP——3——自发光材质相关推荐

  1. 手把手教你选购电脑组件

    个人原创,版权所有,未经允许转载必究. 很多人都有一个想要组装一台属于自己的台式机的想法,尤其是理工男们,这是一件很cool的事,但是组装一个台式机要面对着繁杂的电脑零部件选材和机箱内密密麻麻的引线引 ...

  2. keyshot渲染图文教程_keyshot基础图文教程,手把手教你用keyshot制作动画效果

    keyshot基础图文教程,手把手教你用keyshot制作动画效果 你知道么?keyshot除了用来渲染产品,其实还可以制作动画效果的,它里面内置了好几种运动方式,利用keyshot的旋转,平移,缩小 ...

  3. 3Dmax专用快捷键大全(保姆式手把手教)

    大家好!小编是搬运工:基础建模 大家一定很苦恼!一些基础命令该按哪个键?挤出插入的快捷键又是什么? 到了脑海里,到了嘴边就是想不出来,就是说不出来,非常烦躁. 那么今天就帮你摆脱这个烦恼,保姆式手把手 ...

  4. 手把手教你成为Shader编程实战达人—GPU

    GPU编程市场应用 GPU全称是Graphics Processing Unit,中文成为图形处理器,所以GPU编程也叫图形学编程,它是针对的显卡中的芯片编程,游戏引擎的更新换代发展的一个重要阶段是显 ...

  5. Shopify成功案例,手把手教你玩转独立站

    Shopify成功案例,手把手教你玩转独立站 COVID-19的大流行对全球经济产生了较大的冲击,电子商务行业也不能幸免.我们的Shopify商店如何在这场全球灾难中生存?也许你可以在这些成功的Sho ...

  6. 手把手教您从建模到仿真计算优化改进新能源汽车电驱动系统转子冲片强度

    导读:新能源汽车电驱动系统的主驱电机,正在向高功率密度.高扭矩密度.高效率.低成本.低损耗.轻量化.小型化.集成化.系列化等方向发展.这给各大零部件供应商,提出了一个又一个的新问题和新挑战. 为了降低 ...

  7. Unity 动态修改URP自带材质参数

    Unity 动态修改URP自带材质参数 前言 代码 Emission 参考连接 前言 修改此处默认参数 代码 Emission 启用自发光效果的代码是 material.EnableKeyword(& ...

  8. 手把手教您搞定用户画像(战略解读|建模体系|维度分解|应用流程)

    备注:此博客为转载,链接地址请点击此处 手把手教您搞定用户画像 下面,我们就来手把手地教你,如何用敏捷可视化分析搞定用户画像. 什么是用户画像? 在互联网逐渐步入大数据时代后,不可避免的给企业及消费者 ...

  9. Cobo钱包v2公测版来了,手把手教你怎么玩

    之前有很多朋友问悦动智能,为什么Cobo钱包不需要导入私钥和助记词,很简单,考虑到个人保管私钥对于很多初入门的朋友来说操作繁琐,且很容易丢失.因此,Cobo首先做了一款对小白用户非常友好的托管钱包,由 ...

最新文章

  1. Oracle 导出表结构
  2. 支持html5浏览器速查
  3. 【系列5】使用Dockerfile创建带weblogic的Centos Docker镜像
  4. 为Qt Designer创建自定义Widgets小部件
  5. 计算机组装与维护 授课计划,计算机课程教学计划
  6. 微服务 第六章 springboot 通过Spring-data-jpa 配置Oracle数据源(简单步骤)
  7. EntityFramework Core上下文实例池原理
  8. iOS 国际化多语言设置 xcode7
  9. 计蒜客难题挑战:奇怪的国家
  10. mac remix导入本地项目
  11. 将Chrome浏览器默认保存离线网页为“多个文件”设置为“单个文件”即单个mhtml文件
  12. 个人网站设计需求分析
  13. 2022 年 前40道 ReactJS 面试问题和答案
  14. 新开发的微信小程序怎样推广引流?
  15. Codeforces Round #599 (Div. 2) B2. Character Swap (Hard Version)
  16. alios下载_AliOS Studio开源工具|AliOS Cloud App集成开发环境(AliOS Studio)下载 v1.2.1 官方Windows版 - 比克尔下载...
  17. 戴尔聚合网络适配器(Converged Network Adapter, CNA) 在RHEL 6 SP1环境下可开箱即用
  18. 凸函数的判断(上): 重要的基本性质
  19. 海南大学计算机学院唐朝胜,海南大学2011年12月新增博、硕导名单
  20. 购买《哈利波特》书方案

热门文章

  1. 【opencv】双目视觉下空间坐标计算/双目测距 6/13更新
  2. 7-4 输出两行短句 (10分)
  3. 华为RH2288H V3服务器 从拆箱开始安装系统
  4. 全国企业信用信息公示系统
  5. 中国科学院大学计算机非全日制,中国科学院大学能考非全日制研究生?
  6. 【ZYNQ开发系列】基于vitis(vivado2019以上版本)的程序固化~如何把程序烧录到QSPI?
  7. 45岁了社保交了25年不交了行吗?
  8. 加元预测:油价仍是关键驱动因素 - 加元/日元、美元/加元设置
  9. 互联网协议-简单理解和介绍
  10. visio付款流程图_职场人士常用的3款超好用流程图软件!