问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

UE4学习笔记 使用插件添加一个ShadingModel

发布网友 发布时间:2024-10-04 11:01

我来回答

1个回答

热心网友 时间:2024-10-06 00:27

此文章借鉴了以下三篇文章,在此对分享者表示感谢。

1. [UE4]插件添加ShadingModel

2. Ue4 使用MaterialCustomOutput自定义ShadingModel

3. UE4(虚幻)学习笔记--虚幻4.26自定义shadermodel

在学习UE4渲染管线过程中,发现添加ShadingModel时,通常需要修改源码版引擎的源码。本文介绍一种无需修改引擎源码的方式,添加自定义ShadingModel,并定制延迟渲染的光照计算。

第一篇文章已详细介绍了修改思路,本文重点记录插件创建与添加模块的步骤。

以4.26.2版本为例,首先新建一个插件,模板选择Blank。新建完成后,打开plugins所在位置,进入source文件夹。

将ToonShader文件夹复制一份,改名为ToonShaderBootstarp,并将ToonShaderBootstarp文件夹中的ToonShader全部改成ToonShaderBootstarp(包括文件名与其中变量名)。

注意:在ToonShaderBootstrap.Build.cs文件中,需要在PrivateDependencyModuleNames.AddRange中加入"Projects","DeveloperSettings",否则在之后的修改和编译中会产生错误。

之后在插件根目录中的ToonShader.uplugin中添加该模块,然后重新生成sln,该模块就添加完成了。

编译成功后,将ToonShader.uplugin中ToonShaderBootstarp模块的Type改为"UncookedOnly",LoadingPhase改为"EarliestPossible",否则会报关联不上插件源码的错误。

编译成功后,进入引擎,新建C++ Class,选择MaterialExpressionCustomOutput类,再新建一个Class,选择developerSettings类。

接下来修改ToonShaderOutput.h与ToonShaderOutput.cpp,编译通过后,继续修改ToonShaderBootstarp.cpp。

修改ToonShaderBootstrapSettings.h,增加插件的启动和关闭参数,然后修改配置文件的方法和正常修改源码添加ShadingModel的方法相似。

插件成功加载后,可以在Material里面看见ToonShader节点。

自定义ShadingModel添加完成。

总结:

1. ToonShader模块实现了UMaterialExpressionCustomOutput的子类,为运行时模块。

2. ToonShaderBootstrap模块在引擎启动Shader编译前加载,用以向虚幻引擎Shader文件夹中替换默认Shader文件。

ShadersOverride文件夹下存放了shader文件,Default文件用来恢复,Override用来做替换,新增的Shader文件都需要存放在Toon目录下。

本文记录了在UE4中踩的坑,希望对大家有所帮助。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电视般有哪些尺寸 电视有哪些尺寸 寓意生命力顽强的男孩名字 美国产生金融危机了,铁矿石回降价吗? 铁矿石什么情况下会跌 从生物学的角度看,随地吐痰的主要危害是什么 随地吐痰会给我们带来什么样的危害? 痰是怎样形成的,随地吐痰有哪些危害 得力挂钟为什么不走了 人民大学、外交学院、中国政法、北京大学、复旦、华东政法等大学法学... 杭州汽车南站怎么坐车去萧山坎山凤凰山庄加油站。急急急 杭州到呼伦贝尔凤凰山庄走哪条路 杭州凤凰山庄有限公司怎么样? 青岛城阳火车站的一切。 从聊城上高速到青岛城阳区高速费是多少钱 日产楼兰混动旗舰版版质量如何值得买吗? 日产楼兰口碑如何? 在标榜学盘发好 还是毛戈平学发型好,请知道的告我一声 word下划线太长怎么办缩短word下划线太长怎么办缩短一点 儿童基本功考级发式 佛山禅城区哪有工行24h无介质机 广东省佛山市禅城区哪里有工商银行我找了半天都没找到全是邮政的_百... 佛山工商银行 哪间有自动存款机? 佛山有24小时营业的工商银行吗? (❌)是什么成语 为此急计耳是什么意思 成语什么耳什么什么 灌精儿的成语灌精儿的成语是什么 Win7系统网页报错"无法解析服务器的DNS地址"怎么办? 佛山南庄龙津路口到祖庙距离多少 FixUE4:修复Mobile管线ReflectionIBL和SkyLightIBL互斥Bug(二)_百度... UE4.27 PSO Caching 演播室需要哪些 演播室需要哪些设备 演播厅(关于演播厅的基本详情介绍) ...由于系统注册表文件丢失或损坏,因此Windows无法加载, 中国农业科学院农业信息研究所其他业务 中国农业科学院农业信息研究所历史沿革 为什么飞行模式开了手机还是会提示关闭呢? 我的手机飞行模式关闭不了怎么回事,, 手机在飞行模式怎么也关闭不了,用了很多方法 比如关机,更换其他模式... “PRE”指代“埃斯帕诺拉酒店”的英文全称是什么? 毛骗贰第8集最后的诗到底是什么意思? 毛骗最近增么不更新? 华硕X550C 机械硬盘装到光驱位充当数据盘,不用的时候会自动休眠吗?_百 ... 如何DIY组装六代i5-6500和GTX1060的电脑? 5000元预算如何组装一台能畅玩《使命召唤13:无限战争》的电脑? 坐久了腰酸怎么缓解 女人腰酸该怎么缓解 先锋Pioneer DDJ-ERGO-V DJ 控制器 打碟机能和苹果电脑连接么?_百度...