需要一个编辑器工具actor(EditorUtilityActor)和一个蓝图接口。
蓝图接口函数需要勾选编辑器中调用
编辑器工具Actor中的设置
需要调用的蓝图中的设置
参考资料:
Unreal Engine | Editor Tick Tutorial using Blueprint
1.把uv的中线拉直对齐
2.选择一半的uv(要把它对称到另一边的uv)
3.选择uv toolkit 里的这个
4.然后点击uv的一根中线
5.然后就对称过去了
6.以后其它的uv可以直接用这个功能对称,不需要再选中线(跨象限对称可以拿一个其它的uv块来充当中线)
7.想要重新选择就要点下拉菜单里的off
渲染层概述:
渲染层将场景分为了scene(场景)、Layer(层级结构)、Collection(集合结构)和Override(覆盖)。
最上级的scene管理着整个场景,具有唯一性。在此并不做讨论。
层级结构可以用于场景的划分与分割,它们之间并不能互相包含,并且每一个层级结构都是互斥的,你在显示某一个渲染层的时候,其它所有的渲染层都会被隐藏掉。
Layer层下面可以新建多个Collection集合,每个集合下面又能新建新的集合。集合的用途是添加你所需要的对象(包括但不限于模型、材质、灯光等等)。
集合下可以新建Override覆盖,用以控制上一级集合中的对象的属性。每一个集合内可以建立多个覆盖,而覆盖下则不能新建任何东西。
整体覆盖材质:
1.打开渲染层。
2.新建渲染层。
3.在渲染层上点击右键,新建一个集合。
4.选中你要添加的物体,在渲染层设置的右侧菜单中点add(添加)。
5.在集合上单击右键,新建一个shader覆盖。
6.打开你的Hypershade编辑器。
7.找到你所需要替换的材质,并用中键将它拖到你的shader覆盖中的OverrideShader文字 ...
前言:本文中对很多概念做了简化处理,并隐去了一些专业知识,一些概念和解释更偏艺术家的习惯而非正确。一方面为了方便大家理解且防止文章变的又臭又长,一方面是因为作者知识面实在有限。如有错误,欢迎纠正。想要了解更为准确详细的知识的话,可以阅读相关的论文或者文中的参考资料。感谢。
0:色彩管理0-0.色彩管理色彩管理是CG渲染相关的最重要的内容之一,如果不解决色彩管理的内容,就没办法讨论渲染。在这里推荐chrisbrejon关于色彩管理相关的精彩文章:第 1 章:色彩管理 - 克里斯·布雷洪 (chrisbrejon.com)。一个良好的色彩管理(不仅仅包含软件管理,也有硬件管理)能够让流程上所有的环节(资产、特效、纹理、灯光、合成等等)在不同的软件中能够看到相同的东西(当然,还有观众 )。“一致性”是关键。
0-1.线性工作流线性工作流是一个很容易被搞乱的概念,而且本质上并不存在“线性空间”这种东西。简单来说线性工作流是将所有输入的数据校正为线性,再在工作空间中进行正确的数学计算、渲染。输出的图像经过光电传递函数进行编码,再经过显示设备(手机、显示器、电视等等)通过电光传递函数解码之后显示( ...
0.简介sp目前对python的支持力度还是蛮大的,基本上已经不存在js有但是py没有的api了。
前段时间因为工作原因开发了一个sp的python插件,把过程中的一些相对重要并且很难找到资料的部分记录下来当做备忘。
一些创建插件的基础部分可以在知乎搜索“sp插件”之类的关键词,有很多很好的文章。
1.窗体UI使用pyside2做UI即可。
substance_painter.ui下提供了一个获取主窗口的函数.get_main_window()。
1234567891011import substance_painterimport PySide2def createNewWindow(): #获取sp主窗口 mainWindow = substance_painter.ui.get_main_window() #PySide2.QDialog(mainWindow)替换成自己的模块的UI函数 newWindow = PySide2.QDialog(mainWindow) newWindow.show() #需要一个数组储存此窗口,以便于插件关 ...
Config管理1 Config类 继承自UObject,
UCLASS关键字,类和属性都要带config。
config=就是你的配置的名字。默认会存在项目Saved/Config/WindowEditor下
12345678910111213141516171819202122//.h#pragma once#include "CoreMinimal.h"#include "UObject/NoExportTypes.h"#include "ULSAssetToolConfig.generated.h"UCLASS(config=LSAssetsTool, Defaultconfig)class LSASSETSTOOL_API ULSAssetToolConfig : public UObject{ GENERATED_BODY()public: ULSAssetToolConfig (const FObjectInitializer& obj); U ...
潜在函数导致LooP失效 当Loop中存在潜在函数的时候,可能会导致整个循环失效,因为潜在函数只有当没有此函数存在的时候才能执行。
所以循环只能执行一遍。
解决办法是自行做一个递归函数。
参考资料:
Load Several Stream Levels at once
UE中实现计算贴图曲率第一步:get贴图的像素大小: 使用texture property节点
或者用custom节点输入如下代码:
12345float3 a = Texture2DSample(Tex, TexSampler, UV);uint width;uint height;Tex.GetDimensions(width,height);return float2(width,height);
用debug节点可以测试数值是否正确
第二步:对法线贴图用sobel算子进行卷积操作 sobel算子一般用于边缘检测,关于卷积和sobel,可以看这篇文章:
彻底理解数字图像处理中的卷积-以Sobel算子为例 - 自由布鲁斯 - 博客园
在UE中可以用连连看的方式来进行卷积操作
效果:
材质文件:
curvature_Sobel.uasset