自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

papalqi

papalqi

  • 博客(56)
  • 资源 (4)
  • 收藏
  • 关注

原创 毛发渲染总结

毛发的渲染技法有很多。我们主要讨论模型和着色的方案。一.毛发模型方案1.1 Shell Based Fur这类毛发可以参考GFur Pro插件。https://www.unrealengine.com/marketplace/zh-CN/product/gfur-pro这类毛发技术使用的是多层渲染。如下图所示,只要这些面片距离足够的近,我们就有一种是单根头发的错觉。这类技术的问题是如果我们需要长的毛发,那么我们就需要非常多的截面,性能受到的影响就越大。当然我们并不是一个面片一个面片进行绘制

2021-06-04 20:42:06 1298

原创 UE4 从UProperty到FProperty

UE4 在4.25中,进行了一些非常重要的改进。 其中就有FProperty。一.老旧的结构体系UE4中带有前缀U的类是UObject派生类。每个UObject都有一个与之对应的UClass,这个UClass保存了所有的反射系统相关的信息,描述了各个Property之间的内存布局和关系;通过UClass可以遍历所有的序列化属性;通过Object对象的实例化地址就可以将相应的Property的值取出来,进行读写操作。UClass保留了这个对象的结构信息。它在内部拥有成员的元素列表,例如UFuncti

2021-05-25 09:38:22 3178

原创 UE4 Actor Palete插件使用

UE4 .26或悄悄添加了曾经是“演员面板(Actor Palete)”插件的东西。顾名思义,这个actor调色板是一个插件,它可以让您加载其他level的角色从它们拖动到当前level。一旦激活了Actor Palette插件,请从顶部菜单的“窗口”->“ Actor Palette”中打开一个Actor Palette。当打开一个新窗口时,它将如下所示。您可以在Actor Palette中打开一个关卡,方法是从Actor Palette窗口中选择“打开关卡”,然后选择您实际要打开的关卡

2021-04-10 15:04:20 782

原创 关闭双击蓝图跳转VistualStudio

在UE4中,当您双击BP节点时,Visual Studio(或Xcode)将自动启动并打开实现该BP节点的代码。当您想详细了解如何使用节点和处理内容时,这很方便,但是说实话,有时在不使用BP的情况下意外双击就可能导致Visual Studio在未经许可的情况下启动.在这种情况下Navigate to Native Functions from Blueprint Call Nodes,让我们禁用编辑器设置!即使双击该节点,Visual Studio也不会在未经许可的情况下启动!...

2021-04-10 14:29:29 383

原创 UE4 一些实践建议

Interfaces优先于Cast。通常,我们将Actor或组件强制转换为能够访问其方法所需的Class类型,但是强制转换不仅在性能方面比Interfaces昂贵,而且实现起来也很烦人。尝试一下Interfaces。使用组件共享行为。很多时候我们过多地依赖继承,以便在参与者之间共享行为。继承不一定全是错误的,但是比如游戏有两种类型的施加伤害的Actor:炮塔和角色。在这种情况下,您可以创建一个名为Damager的组件,并将其添加到两个Actor中。两个Actor都能够施加伤害,而不必担心他们是谁继承的.

2021-04-10 14:25:42 365

原创 UE4 100个使用技巧

1.Paste Here(复制到这个位置)我们打开编辑器的设置,然后可以设置这个快捷键,例如我们可以设置为左括号之后我们在场景中复制的时候,就可以直接使用这个快捷键,将之前你Ctrl C的东西复制到你鼠标的位置。2. 快速对齐——按住V键拖动物体顶点对齐我们在拖动一个物体的时候,按住V键,可以显示它周围的物体的顶点并且在移动的时候吸附上去。场景摆放的时候利器!。3. 鼠标中键移动物体中心我们知道所有的物体中心是制作模型的时候决定的,但是我们在编辑器摆放物体的时候,希望能够边缘点对齐,我们就

2021-03-19 09:41:18 3211 2

原创 快捷给UE4项目改名

很多时候我们对一个工程随意地起了一个随意的名字,这很常见,如果我们想要后面修改整个项目的名字,似乎应该是一件简单的事情,但是这个过程充满了陷阱。如果做错了,您可能会无意间破坏您的项目。手动的做当然是一件非常困难的事情,尤其是对于C++的项目,其模块的命名其实并不容易进行修改,在这里介绍一个工具帮助我们自动的修改抿成。在进行这样的大更改之前,最好备份您的项目。当然,请确保重命名时未在编辑器中打开您的项目。使用流程我们打开二进制文件。输入对应的目录:E:\UE4\1需要注意的是,现在他没办法支持中文名

2021-03-19 09:39:54 2428

原创 UE4 大世界场景制作与性能优化

一.使用工具1.1使用 HLOD由于HLOD是减少DrawCall的方案,所以其实他会对渲染性能的提高能够起到一定的帮助作用。因为它是将场景中互相独立的静态Mesh通过顶点和材质合并的方式聚合在一起,本来由于材质和顶点Buffer的不同而没有办法形成一个统一的Drawcall,现在可以迎刃而解。很显然那些被合并的顶点和索引buffer再也不能被复用了,而且pack到一起的纹理也是一样,它们都变成了场景中独一无二的资源,所以理论上讲HLOD是一种用空间来换取时间的方法。所以HLOD是会增加内存使用的,如

2021-02-08 09:45:21 6668

原创 UE4 物理系统实现

虚幻引擎4使用 PhysX 3.3 物理引擎来模拟物理效果。所有物理运动(坠落或受力的物理形体)以及碰撞(物理形体的相互作用)都由 PhysX 管理。一.Physx1.1Physx简介UE4.21前的版本采用的是NVIDIA的PhysX做为其默认的物理引擎,用于计算3D世界的碰撞查询与物理模拟。自4.21版本开始重构了代码调用,兼容使用Chaos物理系统,4.26才会实装,如要使用的话是需要自己构建的。由于Epic 和NVIDIA的PY交易。Epic为UE4开发者们提供PhysX 3.3.3的基于C

2021-01-11 21:31:04 2683

原创 UE4 Chaos代码结构剖析

一.代码结构Chaos的核心代码存储在Source/Runtime/Experimental中而一些之外的代码都是以插件的形式存在于引擎之中。InteractiveToolsFramework并不属于Chaos的模块。ChaosCore封装了一些基本的数据结构,有Array,Vector,Matrix,其考虑到了没有Unreal基本数据结构支持时应当如何处理。Voronoi是计算几何术语,在二维空间中的一种空间划分的方案,对于离散点的空间划分中,其具有每条边到点的距离是相等的特点。Geomet

2021-01-11 21:28:59 1644

原创 UE4 材质变体研究

在编辑器打开时,会从资源包中LoadPackage,我们这里只关心的是材质问题。每一个Obj,都会调用自己的Obj->ConditionalPostLoad()这里已经是在加载的后端了,在这里面会调用子类的PostLoad()for (int32 i = 0; i < ObjLoaded.Num(); i++){UObject* Obj = ObjLoaded[i];check(Obj);#if WITH_EDITOR//一顿操作#end...

2020-10-16 00:31:02 611

原创 UE4 动画系统 源码及原理剖析

UE4 动画系统 动画基础概念 3D模型动画的基本原理是让模型中各顶点的位置随时间变化。主要种类有Morph(变形)动画,关节动画和骨骼蒙皮动画(SkinnedMesh)。从动画数据的角度来说,三者一般都采用关键帧技术,即只给出关键帧的数据,其他帧的数据使用插值得到。但由于这三种技术的不同,关键帧的数据是不一样的。Morph(渐变,变形)动画是直接指定动画每一帧的顶点位置,其动画关键中存储的是Mesh所有顶点在关键帧对应时刻的位置。 关节动画的模型不是一个整体的Mesh,而是分成很多部分(

2020-10-15 23:54:53 14284 7

原创 曲线曲面综述

对于简单的mesh来说,我们当然不需要如此兴师动众的进行讨论。但是对于大多数的mesh来说,由于其表面是曲面,所以才需要我们进行讨论。可能遇到的问题最简单的,分段线性逼近需要很多块才能看起来good(逼真、光滑等)。单个曲面点的集合将占用大量的内存存储。解决方案使用曲面坐标的高阶公式上面的不行,那将曲面细分为可由简单公式表示的小块问题是很明显的,首先是不够精确,第二是比...

2020-02-18 10:46:24 510

原创 探究软阴影实现方式1

目前主流的软阴影的实现方式主要有以下几种,我们来分别的探究一下他们的实现方式并且对他们进行简单的分析。通过过滤阴影贴图(PCF、PCSS)预处理阴影贴图(VSM、ESM)屏幕空间模糊(SSSS)1.PCF(Percentage-Closer Filtering)百分比渐近过滤(PCF)是一个简单,常见的进行阴影边缘反走的技术。它通过在片段周围进行采样,然后计算样本比片段的更接近光源的...

2020-02-18 10:44:35 984

原创 Bézier 曲线曲面

Bézier 方法是法国雷工程师 Bézier 首次提出的下面简单介绍 Bézier 曲线、曲面。该曲线是于 1962年提出的一种以逼近为基础的曲线,通过Bernstein 多项式得到。随着曲线和曲面研究的发展和深入,人们又提出了许多类似于Bézier 曲线的曲线。Bézier 曲线的定义一条 n 次 Bézier 曲线可以表示成下面的形式C(u)=∑i=0nBi,n(u)Pi,0≤u≤1...

2020-02-18 10:43:45 1084

原创 UE4 材质教程2

正弦函数是我们最常用的功能之一。因此,现在我们将要了解如何操纵正弦波,如何在引擎中做到这一点?首先,我们将使用Sine在两种颜色之间Lerp(过渡)。得到以下结果那么实际发生了什么?Lerp是“线性插值”的缩写,这意味着Lerp节点将基于Alpha在A和B之间转换;当Alpha = 0时,A的100%,当Alpha = 1时,B的100%。我们知道,正弦曲线在1到-1之间移动,所以会...

2020-02-18 10:41:35 2288

原创 UE4 材质教程1

纹理的加减乘除我们将“圆形”纹理插入到A输入中,将“线”型纹理插入到B输入中,然后将输出直接插入到basecolor中。单色纹理相同颜色的纹理在两个纹理上使用相同的颜色不同的颜色纹理两个纹理上使用不同的颜色...

2020-02-18 10:39:29 1174

原创 UE4 材质 生成随机数

参考之前的文章中关于随机数和noize的https://papalqi.cn/201707/cid=558.html

2020-02-18 10:37:23 5989

原创 UE4材质 阶梯式渐变

UE4材质 阶梯式渐变LinearGradient节点。当我们要创建一个从上到下的阶梯式渐变时,选择VGradient(V表示垂直,U代表横向)。从那里添加一个“乘”节点,然后是“floor”,然后是“除”。将一维参数(在单击时按住键盘上的1,然后右键单击并转换为参数)到“乘和除” –这将控制渐变中的步数。我将我的设置为10,它给出了从黑色到白色的10个波段。可以从此处进行多种不同的选择。...

2020-02-18 10:34:57 10444

原创 UE4 材质 溶解材质

本文将介绍如何创建一种“溶入”和溶出的材质。首先,创建一个新的材质并将“材质混合模式”更改为“蒙版”。要创建材质使用的溶解的图案,请在“basecolor”中添加“noise”节点,进行左下方的调节,直到对结果满意为止在我们的“噪声”图案中添加一个正弦波,这样它将在全白(完全不透明)到全黑(完全被遮盖)之间移动,您可以通过使用自己的自定义纹理替换噪声纹理来进一步实现这个功能。我发现...

2020-02-18 10:33:41 5070

转载 UE4 材质 制作噪声图

UE4 推出基于材质的程序式噪声已经有一段时间了,但是大多数用户因其高昂的性能成本而不得不限制对其的使用。因此,许多用户采用的方法是在其他程序中编写平铺噪声纹理,然后将其放进 UE4 中使用。很多人都希望能在 UE4 中执行这个步骤,但是找不到足够方便的方法来实现。我们已经在虚幻引擎 4.13 中满足了这些需求。这些改进可以分为几个类别:平铺噪声选项新增加的沃罗诺伊噪声性能优化和其他改进...

2020-02-18 10:31:43 2898

原创 UE4材质 制作UV贴图

我们想要制作一张uv贴图,是一个什么意思呢?我们知道一般来说,我们都是根据uv来采样贴图,一般来说这个事情都是美术同学来制作的,所以我们想要进行的是在UE4中,动态或者根据自己的实际情况来生成一张贴图,并且我们要存储的内容也可以自己定。你可以自己生成法线贴图,或者是世界坐标的贴图,等等,并不拘泥于只存储颜色信息。那么,我们如何进行相关的操作呢。渲染目标首先我们要做的就是生成一张RT,也就是r...

2020-02-18 10:28:25 10355 1

原创 ZunGarden水和相关材质逻辑分析

ZunGarden水和相关材质分析整体概况我们对这个模块的主要研究的内容有:静态水面其反射是如何实现的静态水面其流动效果和波纹感是如何实现的静态水面如何实现的鼠标点击下的波纹荡漾。静态水面浮光掠影,主要控制透明度,最后并没有使用静态水面如何实现的折射效果6 . 动态水面的制作鱼的材质制作1.1水面相关所有组件我们找到水面材质的actor...

2020-02-17 14:07:45 172

原创 UE4 ZenGarden Rake 材质分析

ZenGarden Rake 材质分析今天要讨论的问题就是这个随着鼠标的拖动,能够形成痕迹的效果是怎么实现的逻辑控制主要的逻辑控制实在这个actor里面,和之前的讨论一样,如果它被点击的花,会触发它的interactioninterface 事件。它会做如下的事情:将点击点信息存储到LastHitResult中,并将HasLearned打开。重置SplinePoint数组,...

2020-02-17 14:04:53 271

原创 UE4 基于屏幕空间的描边材质

首先,看需求是什么,是否要透视,是内描边还是外描边。根据不同的需求都会有不同的思路。为什么是在屏幕空间呢,据法线做当然是可以的,但是如果需求上不能这么做,例如法线很乱,什么光滑组什么破玩意的,那就只能只用基于屏幕空间来做了,而为什么在其他空间没有办法做呢,目前认为是因为没办法做边缘检测,只能知道自身的信息,所以才只能在最后做,现在不太清楚虚幻的渲染流程是什么样的,所以不敢妄加推断。在UE4中,...

2020-02-17 14:03:44 1305 2

原创 UE4 ZenGarden 窗户的反射和岩石的贴合

窗户的反射和岩石的贴合窗户的反射这里的反射和水的反射如出一辙,仍然是使用CUV0,CUV1记录顶点的在CubeMap中的坐标值,和存储菲尼尔值。没什么好说的,今天我们就来看看之前说的这个函数把。说实话,看了半天,完全不知所云,用纸写公式也不知道它想做什么,最后我只能自己想,如果我要做的话该怎么做…,就是先算出反射向量,然后在球体中算出坐标值,就这么简单,归根到底就两个公式,一个是反射公...

2020-02-17 14:02:34 410

原创 UE4 Element 火山材质分析

滚动膨胀效果可这效果就是让我们的烟能够拥有规律性的膨胀的效果我们有连个尺度的贴图,一个是大尺度的贴图,粒度比较的大,另一个是小尺度的,比较的零碎。其中两张贴图其实是一样的,不过小的贴图是缩小了36倍。根据时间,对大尺度的斜方向平移贴图,然后锐化贴图,对小尺度的上移材质,然后进行锐化,各自增加自己的参数值。之后两者进行叠加合成一张贴图。之后衰减上部的数值后,根据顶点的法线进行变换。也就是...

2020-02-17 14:01:38 694

原创 UE4 灯光的移动性

UE4的光源的移动性上主要分为:Static(静态) 、 Stationary(固定) 和 Mobile(移动)**,不同的设置在光照效果上有着显著的区别,以及性能上也各有差异(现在应该是基本不谈这个了,没什么卵用)。光源:静态, 固定, 动态物体:静态, 固定, 动态9种对应关系,并且还有特例Static光源**(静态):**在运行时不会以任何方式改变或移动光的位置 — 不...

2020-02-17 13:58:45 2855

原创 UE4 使用datasmith工作流

DataSmith的作用一比一的还原场景,以厘米为单位能为所有实例化对象建立单一的虚幻资源能保持位置和朝向支持图层查看能将Vray材质变为PBR,自动转换贴图能导入如强度颜色和IES文件自动生成光照贴图UVDataSmith下载[https://www.unrealengine.com/zh-CN/studio]{.underline}进入网站,...

2020-02-17 13:55:23 8785

原创 UE4 制作材质和打光前的准备——lookdev

为什么我们需要LookDev我们在工作中多数情况都是分工合作,把比较大的资源拆分开来给不同的人员进行制作,最后每个人对资源进行提交审核并组合到一起。因为资源要求统一,所以正常来说每个人提交的资源表现效果应该基本一致,但是因为制作环境的不同,可能会导致单独渲染出来的图差异不大,但是将两个资源放在同一个光照环境下却效果差异很大的情况。那我们该怎么杜绝这种情况的发生呢?这就是lookdev环节存在...

2020-02-17 13:53:58 5961

原创 unreal Lightmass可能遇到的问题

光照贴图的UV问题是造成lightmass的最大的问题。注意事项是,不能重叠,每个之间要留有空隙从而避免泄露可扩散。最好的方法当然是在max里自己来展开每个UV。光照UV重叠如果我们发现例如,角落边缘透光,重叠,接缝瑕疵等问题,那么需要返回3D工具。手动的使用第一种方法自己建立光照贴图UV.对于UV重叠。只需要进行构建,然后看日志信息,大概率会出现UV重叠的信息,这个时候我们可以手动去创建。...

2020-02-17 13:52:30 1602

原创 UE4 Lightmass的设置

LightmassLightmap为HDR,存有灯光方向信息。UE4使用Lightmass对光照进行预计算,以节省动态光照计算的成本。Stationary light build完灯光后还有Shadowmap,如果有Stationary天光会有sky occlusion map(Bent normal信息)。材质,物体,灯光,后期都可以控制Lightmass。Static Light...

2020-02-17 13:49:48 5735

原创 Unreal 光照单位与基于物理的灯光

丑话说在前面,基于物理的灯光参数有没有用呢?看如何对待,如果我只要效果,你如何进行灯光的调节只要最后好看,就没有问题;但是如果我们想要一个能够复用的灯光资源库,这就是一个非常好的一种方法。现在来说等白嫖(别人把理论研究清楚,因为现在还没有基于这种做法而商业成功的项目)而不是自己去研究是一个非常务实的想法。在unreal中如果我们把灯光值调到和现实中一致的单位,默认情况下一定是曝光过度。这是因为我...

2020-02-17 13:46:30 1571

原创 UE4的Light Propagation Volume

目前刚接触UE4,想要得到最后更优质的图像,简单的研究了一下Light Propagation Volume。## Light Propagation Volume:CryEngine的开发者发明了Light Propagation Volume (LPV) ,主张不使用预计算,在运行时直接计算动态间接光照。通过对LPV进行marching,可以产生半光泽材质的反射:它的做法简单总结是先生成一...

2020-02-17 13:45:14 1491

原创 层次包围盒和均匀网格

虽然之前的简单的包围盒技术能够减少计算开销,但是对于整个光线跟踪算法来讲算法的效率还是没有显著地提高,究其原因主要在于,每一根被跟踪的光线都需要与场景的包围盒进行计算,算法的效率还是受到限制,其算法的复杂度为 O(N),其中 N 为场景中物体的个数,即三角形数目。为了提高包围盒技术的效率,通过将包围盒组织成层次结构来改进简单的包诶和技术。其基本的思想为将整个场景按照场景的包围盒进行组织,根据物体在...

2020-02-17 13:44:24 1973

原创 KD-Tree

Bentley 于 1975 年在 中提出一种多维二叉查找树,即 k d-tree,其中k代表查找空间的维度。k d-tree 可将一个给定的空间根据其存储的记录进行多级分割,每一级轮换使用各个维度并抽取一个记录在该维度上的值将空间或子空间一分为二。比如 2d-tree,第一级抽取一个记录的 x 值按 x 维度分割,得到两个子空间,接着对两个子空间分别抽取其它记录的 y 值按 y 维度分割,再...

2020-02-17 13:43:57 397

原创 3blue1brown的manim使用分析

什么是manim之前看线性代数的时候,一直在思考这种视频是通过什么制作的,毕竟自己是做游戏的……并且还接触过视频剪辑的PR,和制作特效的AE,所以感觉要是真的是靠自己手动的抠工作量几乎是天文数字,所以这几天配置了一下它的软件。本来按照以往的思维,接下来我就应该去看他的源码实现,可是python已经很久没使用了,所以这次还是先尝试分析一下如何使用吧。我们从他给的示例一一的看过去。第一个函数S...

2020-02-17 13:40:43 1860

原创 UE4 Rendering Dependency Graph

什么是RDG渲染依赖性图表(Rendering Dependency Graph)也被称为RDG或渲染图表,是一个基于图表的调度系统,用于执行渲染管线的整帧优化。它利用DirectX12这样的现代API,使用自动异步计算调度以及更高效的内存管理和屏障管理来提高性能。RDG的概念如下:在GPU上并非立即执行通道,而是延迟到整个帧已记录到依赖性图表数据结构之中后再执行。当完成了对所有通道的收集之...

2020-02-17 12:02:51 4774 1

原创 UE4 渲染数据传输

Unreal Mesh Drawing 内存中的mesh是如何进行渲染的,主要涉及几个重要的数据结构UPrimitiveComponentPrimitiveSceneProxyFMeshBatchFMeshDrawCommand存在于Game Thread内的数据UPrimitiveComponent UPrimitiveComponent 继承自USceneCompo...

2020-02-17 11:36:22 2260 1

原创 多边形裁剪算法

多边形裁剪算法刚参加工作就跟多边形刚上了,对于多边形的裁剪做一些简单的总结。多边形裁剪主要有四种算法Greiner-Hormann裁剪算法Sutherland-Hodgman算法Vatti裁剪算法Weiler-Atherton裁剪算法作为一名想要成为优秀算法工程师的程序员,我们不能只会使用,而不知道其原理,倘若如此,我们无法做到应用于本身业务上的定制化的修改。Greiner–H...

2020-02-17 10:28:00 5882 1

Real-Time Rendering 4th Edition 非扫描完美版Part5

Real-Time Rendering 4th Edition 非扫描完美版Part5,共5卷,共900M+,完整目录

2019-02-14

Real-Time Rendering 4th Edition非扫描完美版 Part1

Real-Time Rendering 4th Edition 非扫描完美版Part1,共5卷,共900M+,完整目录

2019-02-14

snipaste截图工具

截图工具 ……

2018-12-20

无注册无限速网盘下载

不需要注册的下载工具,可以下载百度网盘的资料,只需要得到公开分享的连接就可以

2018-10-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除