关于UE4物体描边(outline)的一些实现方法
前言本文中所讲述的描边方法基本基于后处理所实现,是本人学习过程中的一些总结,各位前辈大佬若有更好的方法,还望指点。本文若有论述错误,还望斧正。
一直以来对卡通渲染(Cel Shading)有着非常浓厚的兴趣,而卡通渲染中描边是非常重要的一环,描边质量的高低一定程度上决定了卡通渲染在视觉效果上是否出彩。卡通渲染属于非真实感渲染(Non-photorealistic rendering,简称NPR)。与之相对应的则是真实感渲染(Photorealistic rendering),卡通渲染更多的在追求风格化的表现,所以或出现不符合物理规则的现象,而真实感渲染则严格按照物理规则渲染(Physicallly-Based Rendering,简称PBR)。回归正题,本文基于后处理的描边相对不容易进行定制,这里展示一些思路。
方法一:使用翻转后的模型进行描边效果如下这种描边通过复制一次模型并将复制的模型进行法线反转并开启背面剔除(UE4默认开启背面剔除),然后将反转后的模型放大一点并与原模型重合得到轮廓形成描边效果。
创建Outline材质需要将材质改为Mask并且改为无光照(Unit),同时将双面 ...
使用Unity制作MMD
准备工作1、准备软件首先你需要获取unity从unity官网下载unity,注册账号安装请自行百度其次你需要获取mikumikudance即MMD提取码:mkuu
2、准备模型、动作与相机模型获取途径模型格式为.pmx国内一般为:模之屋或b站up的的配布,请自行根据借物表搜索国外一般为:b碗、booth购买亦或是n站或油管大佬配布,请善用搜索功能动作与相机获取途径动作格式为.vmd动作一般分为三类、舞蹈动作、面部表情动作以及手部动作,还有相机动作一般在模之屋或b碗获取
我在这里准备的是崩坏三月轮的模型,动作和镜头分别来自闲羽与幼月。
3、检查模型与动作我们将获取到的模型与动作导入到MMD中查看是否正常,我这里经过检查是没有问题,若你套用的模型与动作出现严重穿模,请手动修正,方法自行b站搜索(我不会修、逃
导入Unity1、模型的导入我们通过MMD4Mecanim这个插件导入unity,获取插件MMD4Mecanim,红色框住的就是我们需要下载的。接下来解压将package包导入unity,同样是红色框住的导入之后我们直接将模型的整个文件夹导入并找到这样一个文件,这是插件自动帮我们生成 ...
Pyside2 入门篇:二
前言在上一篇文章中介绍了Pyside在Maya中的基本使用方式,但对于Pyside来说还有 布局管理 信号与槽 等重要概念没有介绍到,这篇文章会逐一介绍并带大家写一个相对复用性高的界面模板。
什么是布局管理像PySide这样的GUI编程要做的就是布局管理,布局管理就是widget如何在窗口上排列,管理方式有两种,一种是绝对定位,一种是布局类。
绝对定位以像素为单位指定每个小部件的位置和大小。使用绝对定位时有几点需要了解
应用程序在不同平台上看起来可能不同
调整窗口大小并不会改变小部件的大小和位置
更改应用程序字体会破坏布局
使用不同分辨率的显示器(2k/4k)时,布局可能会折叠
先看一段代码:
12345678910111213141516171819202122232425from PySide2 import QtWidgetsfrom PySide2 import QtGuiclass Example(QtWidgets.QMainWindow): def __init__(self, parent=None): super(Example, s ...
原神卡通渲染复现
贴图分析LightMap.r :⾼光类型Layer,根据值域选择不同的⾼光类型(eg:BlinPhong 裁边视⾓光)LightMap.g :阴影AO ShadowAOMaskLightMap.b :BlinPhong⾼光强度Mask SpecularIntensityMaskLightMap.a :Ramp类型Layer,根据值域选择不同的RampVertexColor.g :Ramp偏移值,值越⼤的区域 越容易”感光”(在⼀个特定的⾓度,偏移光照明暗)VertexColor.a :描边粗细,这里的信息丢失了
角色shader还原漫反射ramp原理漫反射分层,对ramp的使用。Ramp原理,在卡通渲染里面Ramp是很常用的,原理其实也非常简单,先算一个半兰伯特,然后把Ramp的某一行(uv.x) 映射到半兰伯特上。而这张Ramp可以做一个从最软到最硬的一个渐变,如果效果需要我们甚至可以再用顶点色或者贴图上去控制(uv.y)阴影在不同区域的软硬变化。我们不单只可以映射到半兰伯特上,还可以映射到phong,GGX, kajiya-kay, Fresnel, 等等等的光照模型。只要 ...
战双卡通渲染复现
贴图分析LightMap.r :Ramp偏移值,值越⼤的区域 越容易”感光”(在⼀个特定的⾓度,偏移光照明暗)LightMap.g :固有阴影AO ShadowAOMaskLightMap.b :SpecularMask决定是否使用PBRVertexColor.b :控制面部与头发描边VertexColor.a :控制面部与头发描边粗细PBRmask.r:Metallic 金属度PBRmask.g:Smoothness 光滑度 (1.0 - 粗糙度)PBRmask.b:AO 用于遮蔽高光PBRmask.a:用于高光判断PBR倾向 lerp进行混合Ramp:模拟皮肤SSSNormal:做PBR的光影表现
角色shader还原漫反射学到知乎上的一个方法“窗函数”相较于**step(_Threshold, Halflamber)**的过渡时硬边缘,可以在过渡时产生软边缘。如下图
1234567891011121314//S型曲线用于漫反射截断https://zhuanlan.zhihu.com/p/95986273float sigmoid(float x, float center, ...
碧蓝幻想卡通渲染复现
因为非常喜欢Arc System Works的角色渲染,在学习shader一段时间后尝试进行还原。本文还原的效果仅作参考,是学习过程中一些踩坑的总结和经验,如果有写的不对的地方请指出.
贴图分析还原任何角色渲染效果最重要的一步就是进行贴图分析,因为碧蓝幻想是用UE4引擎开发的游戏,所以我们可以简单的用umodel-/**&……%*&获得一些资源。下面我们来看一下它的贴图。一共有5张,分别是头发加身体加脸部的basecolor,一张ssscolor(暗一点的basecolor),一张细节描线图,一张用于叠加的deacl以及ILM的四个通道还有几个贴图的alpha通道需要操作,我们后面说:
BaseColor就是基本色,basecolor的A通道用于区分皮肤区域和头发区域,如下图
ssscolor颜色深一点的basecolor用于表现阴影部分颜色,命名sss还蛮奇怪的
ILMR通道:金属光泽度 用于高光强度与高光maskG通道:和罪恶装备里一样作为阴影倾向权重B通道:控制高光形状A通道:内描线细节4.detail 更多的细节描线
角色shader还原直接光漫反射我 ...
Pyside2 入门篇:一
前言这篇文章是写给初学者的PySide指南,同时也是学习过程中的一些总结,基本是面向maya用户。PySide2和PySide没有特别大的区别,所以后续我就统称为PySide。文章中我会在Maya中使用Pyside,但是对于不是Maya用户的的人,如果你读了这个文章,也希望对从未接触过 PySide 编程的人也有所帮助。
基本概念什么是PysidePySide是跨平台的图形使用界面框架Qt的Python版本。提供和PyQt类似的功能,并兼容API。但与PyQt不同处为使用LGPL许可。他是一个专门用于创建GUI的库,可以在Python中使用,也可以在不同的操作系统上使用(linux&windows)。此外大多数的DCC软件都使用它,比如Maya、houdini和Blender等。Pyside基于QT的C++框架。
Pyside学起来简单Pyside的写法相对简单,官方文档也有大量案例,善用谷歌与Chatgpt可以极大的提高学习效率。
使用Pyside的好处
可以在其他软件或平台上使用
可以创建模板便于重复使用
构建好看的图形界面优化用户体验
Pyside与PyQt的区别P ...