当前位置: 首页 > news >正文

shader——SetGlobalTexture

在使用SetGlobalTexture设置全局变量的时候,其shader中,不能有Property同名属性。

如下:

 private int m_sourceID = Shader.PropertyToID("sourceTex");
 private void CopyToCameraTarget(RenderTargetIdentifier source, RenderTargetIdentifier dest)
 {
     m_commandBuffer.SetGlobalTexture(m_sourceID, source);
     m_commandBuffer.SetRenderTarget(dest, RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store);
     m_commandBuffer.DrawProcedural(Matrix4x4.identity, m_copyMaterial, 0, MeshTopology.Triangles, 3);
     m_context.ExecuteCommandBuffer(m_commandBuffer);
     m_commandBuffer.Clear();
 }

这样就不能在shader中的Properties中加同名的属性了,否则设置全局变量使用的是unity属性中的默认值。
这个有点类似unity中C#的public变量,优先使用inspector面板中变量的值。

Shader "Unlit/CopyScreen"
{
   /* Properties
    {
		sourceTex("Texture", 2D) = "white" {}
    }*/
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

			struct v2f
			{
				float4 positionCS: SV_POSITION;
				float2 uv: TEXCOORD0;
			};

            v2f vert (uint vertexID:SV_VertexID)
            {
				v2f output;
				output.positionCS = float4(
					vertexID <= 1 ? -1.0 : 3.0,
					vertexID == 1 ? 3.0 : -1.0,
					0.0, 1.0
					);
				output.uv = float2(
					vertexID <= 1 ? 0.0 : 2.0,
					vertexID == 1 ? 2.0 : 0.0
					);

				return output;
            }
			
			sampler2D sourceTex;

            fixed4 frag (v2f i) : SV_Target
            {
				return tex2D(sourceTex, i.uv);
            }
            ENDCG
        }
    }
}

相关文章:

  • 【随笔】新浪微博分析
  • 弧微分公式推导
  • C算法--入门篇(1)查找元素
  • uv的反转
  • (转)四层和七层负载均衡的区别
  • HDR Scattering and Tone Mapping
  • RenderTexutre在FrameDebugger中查看
  • 第一篇blog来啦 - 君子坦荡荡
  • Blend模式混合公式
  • 一周的收获
  • 分布式Java应用:基础与实践
  • 鱼竿弯曲曲线
  • 一次rman恢复的实验
  • Particles Color and Depth Textures
  • Android下的SQLite数据库的相关操作及AndroidTestCase测试
  • ----------
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • GraphQL学习过程应该是这样的
  • Java 内存分配及垃圾回收机制初探
  • java中的hashCode
  • npx命令介绍
  • python 学习笔记 - Queue Pipes,进程间通讯
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 使用parted解决大于2T的磁盘分区
  • 我的业余项目总结
  • 无服务器化是企业 IT 架构的未来吗?
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • #微信小程序:微信小程序常见的配置传旨
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • ${ }的特别功能
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (4)(4.6) Triducer
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (译)计算距离、方位和更多经纬度之间的点
  • .Net 6.0 处理跨域的方式
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .Net的C#语言取月份数值对应的MonthName值
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • @Repository 注解
  • [2016.7 day.5] T2
  • [52PJ] Java面向对象笔记(转自52 1510988116)
  • [Android Pro] Notification的使用
  • [android] 天气app布局练习
  • [C++]类和对象【上篇】
  • [C++随笔录] 红黑树
  • [CISCN2019 华东南赛区]Web4
  • [Electron] 将应用打包成供Ubuntu、Debian平台下安装的deb包
  • [GXYCTF2019]禁止套娃