先说事实,我是个UE的菜鸡,至少现在是,有关这个话题我是参考网上资料自学实践。可以这么说资料是好资料,就是对步骤不太全,所以我本着“有手就行”的态度亲测,给大家提供一个可以实操的版本——step by step!

1.新建自己的ush文件

相当的简单,像创建一个txt文件一样,只是修改后缀ush。这里要注意的是不要把ush写成了usf,我亲测过在private文件夹下是没有办法添加usf文件的,具体为什么我不清楚,只是一个实验(其实就是我做错了)。

然后在自定义的ush文件中写自己的代码,这里就要注意ush的语法了,当然随便打开一个ush一看便知:

a).如果你要应用其他文件,那么就#include ...,使用之后就能拿到其他文件中定义的变量,函数等等,但是可以直接写一些可调用的函数:

half3 CalcMyColor_red()
{return half3(1,0,0);
}half3 CalcMyColor_green()
{return half3(0,1,0);
}half3 CalcMyColor_blue()
{return half3(0,0,1);
}

如此就写好了自己的ush文件,并定义了三个函数,凡是包含了该ush的文件就可以使用这几个函数了。

2.使用自定义的ush文件(里边的东西)

一个基本的概念,材质编辑器是将节点表以为一个一个可视化节点的HLSL代码压入ShaderTemplate,这个Template就是一个代码框架,在材质编辑器对应的代码中,这个框架叫做:MaterialTemplate.ush

那么在源代码引擎中找到这个ush,包含我们自己写的ush:

#include "..."//包含我们自己的ush文件
//其实还有一个Shader的文件夹,但是很多资料解释会进行隐式转换
#include "/Engine/Private/MyShaderFile.ush"#include "..."

当然,还需要在源代码解决方案资源管理器中,右键->添加现有项...浏览到我们自己的ush文件进行添加。即可得到一个包含了自己ush的引擎。

如何使用呢?既然是材质编辑器,我们不妨创建一个材质Test_Mat,使用Custom节点:​​​​​​​

注意,我们使用Custom这个可视化节点(会被编译为HLSH塞入Template中),并设置值类型为Float3(主要是这个3),然后这代码部分使用我们自动以的函数CalcMyColor_XXX,这就是来自我们自定义ush的函数。可以看到运作的非常好。

换言之,如果我们写好了更为复杂的shader逻辑,其实也可以使用这种方式来调用,非常的简单。

我的入门第一课,完结!

UE材质编辑器使用自定义ush及函数相关推荐

  1. R语言常用基础函数:使用edit函数调用数据编辑器手动自定义编辑数据对象不改变原始数据对象内容、使用fix函数调用数据编辑器手动自定义编辑数据对象并直接覆盖原数据内容

    R语言常用基础函数:使用edit函数调用数据编辑器手动自定义编辑数据对象不改变原始数据对象内容.使用fix函数调用数据编辑器手动自定义编辑数据对象并直接覆盖原数据内容 目录

  2. 【UE4】材质编辑器教程笔记整理

    点我进入原教程链接 节点介绍 基本材质节点 材质的基本属性,可以通过更改着色模式切换可用的接口 节点名称 意义 Base Color 纹理 Metallic 金属度,范围0-1 Speculator ...

  3. 3dmax2022材质编辑器如何找标准类型

    1.选择工具栏中"自定义" - 自定义默认设置切换器 2.默认设置选择"Max.Legacy" 用户界面方案选择"DefaultUI",点击 ...

  4. 有关UnrealEngine材质编辑器中的Custom节点的一些小贴士

    转自:湛蓝玫瑰 PS:本文写于2017.2.1日,使用版本为4.13.第二次更新时间为2017.3.15增加了四.一些材质编辑器中的奇怪的技巧: 一.前言 在Unreal中材质编辑器提供了Custom ...

  5. summernote富文本编辑器的自定义附件上传:不限于图片类型

    summernote富文本编辑器的自定义附件上传 前言 一.自定义上传附件按钮和弹窗 二.结合PHP上传文件进行后端处理 三.用jq模拟点击添加链接方式去处理上传附件 前言 summernote的上传 ...

  6. R语言编写自定义描述统计计算函数、使用doBy包的summaryBy函数计算不同分组(group)的描述性统计值(Descriptive statistics by group、样本个数、均值、标准)

    R语言编写自定义描述统计计算函数.使用doBy包的summaryBy函数计算不同分组(group)的描述性统计值(Descriptive statistics by group using summa ...

  7. mysql 自定义哈希函数_C++ STL无序容器自定义哈希函数和比较规则(超级详细)...

    前面在讲解 unordered_map.unordered_multimap.unordered_set 以及 unordered_multiset 这 4 种无序关联式容器(哈希容器)时,遗留过一个 ...

  8. GRDB自定义的纯函数

    GRDB自定义的纯函数 在GRDB中,用户可以自定义SQlite函数.这样,在SQL语句中,可以直接调用这些函数.但是在定义的时候,用户需要指定函数的pure属性,表示该函数是否为纯函数.纯函数是编程 ...

  9. 抽取样本java实验报告_一个自定义classloader的函数抽取壳样本

    原标题:一个自定义classloader的函数抽取壳样本 本文为看雪论坛文章 看雪论坛作者ID:lemn 本文为 看雪安卓高研2w班(7月班)优秀学员作品. 下面先让我们来看看学员的学习心得吧! 学员 ...

最新文章

  1. JMH和Arthas定位问题的案例分享
  2. idea搭建简单spring-boot项目
  3. rmg超声波流量计算机价格,超声波流量计
  4. 利用Python实现gif动图倒放
  5. acquisition calculation
  6. 工作之后,顶会还重要嘛?
  7. python asyncio tcp server_asyncio异步IO——Streams详解
  8. Java IO(File类)
  9. oracle关于时间的处理,如计算间隔天数、获取本年第一天、上月第一天、上月最后一天
  10. lua中table函数库
  11. 进阶07 Set接口、HashSet、LinkedHashSet
  12. ukey网络连接异常_连接UKEY设备失败如何解?电子支付OCX – 手机爱问
  13. discuz论坛引入iframe
  14. 白帽子讲web安全读后感2
  15. linux命令清理磁盘空间,Unix/Linux中常用的清理磁盘空间的命令
  16. python壁纸4k_Python爬虫练习:爬取高清4K桌面壁纸
  17. PL330 DMAC笔记(4) -- 安全,使用约束和限制,编程限制
  18. HDU1870 愚人节的礼物【堆栈+输入输出】
  19. Hadoop集群搭建(所需软件安装包已上传发布)
  20. git pull时提示错误:warning: ignoring broken ref refs/remotes/origin/HEAD的解决办法

热门文章

  1. 前端性能优化——概述(概括前端性能优化入手点)
  2. 【物联网学习笔记——人人学IoT系列】三、窄带无线,海量物联
  3. matlab画调度甘特图
  4. DWDM的原理及应用
  5. ionic+Angular 手机二维码扫描
  6. 比树莓派强 mysql 性能_树莓派Raspberry Pi下MicroSD卡(TF卡)性能跑分对比测评|SanDisk vs 三星...
  7. VR线上虚拟展厅,为企业带来的优势:
  8. python 关联矩阵,基于关联矩阵的Python网络x图形生成
  9. 计算机基本组成及工作原理,计算机的基本组成及工作原理.ppt
  10. Web3.js API 中文文档