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

网站建设亿金手指科杰东莞横沥电子厂

网站建设亿金手指科杰,东莞横沥电子厂,wordpress会员权限插件,阿里云搭建网站多少钱在上一节中#xff0c;我们添加了外轮廓线#xff0c;但这个外轮廓线在所有使用该Shader的网格上是始终存在的。 如果我们想做一个开关#xff0c;决定是否打开外轮廓线时#xff0c;我们可以使用一个新的Uniform bool值#xff0c;然后判断bool是否为true来开启外轮廓线…在上一节中我们添加了外轮廓线但这个外轮廓线在所有使用该Shader的网格上是始终存在的。 如果我们想做一个开关决定是否打开外轮廓线时我们可以使用一个新的Uniform bool值然后判断bool是否为true来开启外轮廓线。 但是这样会造成性能的浪费因为就算我们没有开启这个功能Shader还是会遍历每一个if条件。这与GPU的运行原理有关。 故我们使用Unity的多编译功能将Shader多次编译成多个子Shader。 Shader中添加开关 定义开关名称 // 自定义关键字 [Toggle(_ENABLE_OUTLINE_ON)] _EnableOutline(Enable OutLine, Float) 0.0 // 默认关键字默认为 名称大写_ON [Toggle] _EnableOutline(Enable OutLine, Float) 0.0 // 默认关键字为_ENABLEOUTLINE_ON在Input中声明变量 1. half _EnableInline;2. #ifdef UNITY_DOTS_INSTANCING_ENABLED UNITY_DOTS_INSTANCING_START(MaterialPropertyMetadata)...UNITY_DOTS_INSTANCED_PROP(float , _EnableInline) UNITY_DOTS_INSTANCING_END(MaterialPropertyMetadata)3. #define _EnableInline UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__EnableInline)定义关键字 //pass中定义 #progma shader_feature _ENABLE_OUTLINE_ON//自定义关键字 #progma shader_feature _ENABLEOUTLINE_ON//默认关键字使用关键字 #if defined(_ENABLE_OUTLINE_ON)#else#endif在GUI中设置开关来控制该关键字 在子GUI面板中添加按钮设置Shader中变量值 public static class Styles {public static readonly GUIContent InlineEnable new GUIContent(开启内勾边,); }public struct LitProperties {public MaterialProperty InlineEnabled;public LitProperties(MaterialProperty[] properties){InlineEnabled BaseShaderGUI.FindProperty(_EnableInline, properties, false);} }/// summary /// 当滚轮滑动材质Inspector面板时该函数调用4次 /// 当修改参数或点击按钮时该函数也会调用约8-12次 /// 因此可将该函数看作多次遍历的函数 /// /summary public static void DoDetailArea(LitProperties properties, MaterialEditor materialEditor) {materialEditor.ColorProperty(properties.OutLineColor, Styles.OutLineColorContent.text);materialEditor.FloatProperty(properties.OutLineSize, Styles.OutLineSizeContent.text);// 显示按钮设置GUI按钮的值,返回开关选中的状态bool inlineEnabled EditorGUILayout.Toggle(Styles.InlineEnable, properties.InlineEnabled.floatValue 0.5f);// 根据按钮的选中状态修改Shader值properties.InlineEnabled.floatValue inlineEnabled ? 1f : 0f;// BeginDisabledGroup参数填True则为禁用Begin至End直接的功能。在untiy面板上置灰。EditorGUI.BeginDisabledGroup(!inlineEnabled);{materialEditor.FloatProperty(properties.InlineSize, Styles.InlineSizeContent.text);materialEditor.FloatProperty(properties.Inlineluminance, Styles.InlineluminanceContent.text);materialEditor.FloatProperty(properties.HightLightTransition, Styles.HightLightTransitionContent.text);}EditorGUI.EndDisabledGroup(); }此时便可以通过按钮设置properties.InlineEnabled.floatValue的值了。 根据Shader中变量值设置宏的值 根据Shader中变量值_EnableInline设置宏_ENABLE_INLINE_ON的值 public static void SetMaterialKeywords(Material material) {if (material.HasProperty(_EnableInline)){bool isSnowEnabled material.GetFloat(_EnableInline) 0.5f;CoreUtils.SetKeyword(material, _ENABLE_INLINE_ON, isSnowEnabled);} }当用户使用这个ShaderGUI将材质加载到内存中或者改变Inspector中的值时编辑器调用下面这个方法。我们在这个方法中调用SetMaterialKeywords函数 public override void ValidateMaterial(Material material) {CP_DragonOutLineGUI.SetMaterialKeywords(material); }该方法可用于设置材质中的各个宏定义。
http://www.hkea.cn/news/14313571/

相关文章:

  • 保险网站哪家好长沙公司网站费用
  • 郑州做网站zzmshl网店网络营销策划方案
  • wordpress 查询 插件seo sem 做网站
  • 郑州免费建站怎么用微信官方网站做二维码
  • 重庆哪个网站建设比较好响应式网站建设公司
  • 一朋友做网站网站被抓了h5游戏搭建
  • 集团网站建设方案书手机网站建设林肖
  • 简述网站建设在作用WordPress的FTP登录凭据
  • 网站网页设计html公司网站建设吧个好
  • 遵义做百度网站一年多少钱下列关于网站开发中网页上传
  • 柳州住房和城乡建设局网站深圳哪个区的房子最值得投资
  • 网站开发费用摊销年限免费的微网站制作
  • 求职网站的建设方案中国品牌网官网查询
  • 制作网站注册页面WordPress默认头像修改方法
  • 怎样把有用网站做图标放在桌面怎么做网站广告卖钱
  • 成都金铭 网站建设建设什么网站好
  • 潮汕学院网站开发高校校园网站建设项目的要求
  • 做彩妆网站的公司住房与城乡建设网上办事大厅
  • 山东省住房与建设厅网站首页个人简历制作
  • 建设厅网站怎么查询安全员c考试成绩seo的概念是什么
  • 昌吉州住房和城乡建设局网站系统做网站的地方
  • 做酷炫网站能卖钱吗烟台做网站的价格
  • 无锡网站建设系统宣汉网站建设
  • 网站小图标 免费wordpress网页图片加载很慢
  • 网站制作的预算除了91还有什么关键词
  • 有经验的永州网站建设最火的网络推广平台
  • 有专门教做家具的网站2022年中国企业500强名单
  • 本墨陈黑做网站有版权怎么自己做网站赚钱
  • 厦门专业建站系统制作公司南通哪里有做网站的
  • ppt模板下载的网站有哪些品牌软文案例