自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(365)
  • 收藏
  • 关注

原创 UE5 体积云

写好的体积材质放这里面。

2024-04-29 17:10:44 706

原创 UE5 材质通过WPO进行旋转

【代码】UE5 材质通过WPO进行旋转。

2024-04-26 14:29:53 500

原创 UE5 噪点(vector noise)

瓷砖状Noise方块状噪点。

2024-04-22 11:21:17 328

原创 C++ 协程 学习笔记

写成的返回值需要实现promise_type结构体以及内部这几个函数,第一个是初始化时即会调用该函数,第二个结束时调用该函数,第三个是异常处理函数,第四个是CoRet被作为返回值抛出的返回值函数。如果c++函数里有co_await、co_return、co_yield就会自动判定为协程。协程的优势就是比线程切换的时间少很多,协程的切换时间是纳秒,而进行切换的时间是微秒。co_yield和co_await可以将协程暂停下来。单线程用协程可以轻松的处理并发任务。协程若不写函数返回值,它会自动返回。

2024-04-20 21:38:26 231

原创 UE5 HLSL 详细学习笔记

这里的POSITION是变量Position的语义,告诉寄存器,此变量的保存位置,通常语义用于着色器的输入和输出,以冒号“:”的方式进一步说明此变量,COLOR也类似。

2024-04-14 16:30:43 428

原创 编译原理 学习笔记

先Current_Node是根节点乘号,乘号,是中缀运算符,找左子节点,是加号,加号是中缀表达式,再去找加号的左子节点,是1,右子节点是2,OK,1+2=3,由此可知乘号的左子结点是3,右子节点也是3,那么3*3=9,完成语法树递归下降求值。

2024-04-11 22:26:49 243

原创 Games104 听后笔记

因为传统的STL库中,例如:vector,它一般采用的是双倍扩容法,加入1000个数据装满了,现在需要又加一个,那么就开辟了2000个数据的空间,那么当前就又999的数据空间暂时浪费掉了,这是实时渲染不希望看见的,这样会非常消耗性能,从而偏离实时的要求。这个和UE5的世界分区有点像,UE5世界分区是先将世界分成多个正方形,然后根据调整的距离Distance进行剔除,超过这个距离的正方形的物体就进行剔除,看不见的也剔除。它是模块逐级处理,而不是处理一个物体的所有行为,然后再处理其它物体的所有行为。

2024-03-28 19:04:25 334

原创 C++ Thread 源码 观后 自我感悟 整理

Thread的主要数据成员为_Thr里面存储的是线程句柄和线程ID先看看赋值运算符的移动构造最开始判断线程的ID是否不为0_STD就是使用std的域如果线程ID不为0,那么就抛出异常这里_New_val使用了完美转发,交换_Val和_New_val的值这里应该是把_Other._Thr的值赋值给_Thr,然后将_Other._Thr的值置空最后返回线程本身第一个判断我们已经看了,就是判断_Thr_Id!= 0如果_Thr_Id == 0了,则抛出异常。

2024-03-23 21:24:51 508

原创 UE5 GameMode C++函数 学习

类描述符加了noplaceable过后即使是Actor也不能放到场景中了,关卡蓝图,GameMode,GameState这些就不能放场景中了。已经尝试,确实能重启游戏。

2024-03-22 14:36:32 473

原创 图形学 总结 - 老是忘

通过近似的算法直接算出来对应的数值SDF(p)就是P1P2或者P2P3,p-o就是oP1 oP2 oP3这样的值,这样的比例去做近似表达角度大小的数值,角度越大,值越大,阴影越柔软,K值是为了让更多位置大于1,更多位置为硬阴影,k值越大,阴影外轮廓柔度越低,1为最黑的阴影,0~1根据值的大小,线性决定阴影强弱。在摄像机看到的像素对周围做N * N的卷积,在最外侧的阴影则会和没有阴影的一起做平均,则产生了软阴影,N值越大,性能消耗越高,软阴影效果越明显。上面实现的事硬阴影,如何实现软阴影?

2024-03-18 14:41:11 524

原创 UE5 获取各个信息的像素

这里使用Windows的HDC来获取屏幕中所有像素,这个不适合获取屏幕上所有像素,速度很慢,适合做取色器来获取其中鼠标中的一个像素。获取场景捕获器中,捕获的RT中所有的像素。二是UMediaTexture的像素。一个是UTexture2D的像素。这里有两个类型的像素。

2024-03-12 13:18:42 414

原创 Houdini学习笔记

按住Alt再点击Translation的任意,修改任意数值,它将变绿,帧也会变绿,这代表该帧已经被K好了。Alt + G跳出Houdini自带的材质,选择需要的材质,往右边空白处拖。调整这些参数,让Translation的操作具有噪点的性质,就更随机一些。这里有对应的层级关系,类似于树形结构,可以一层包一层往里面塞东西。点了这个锁定,在你所在的Camera会跟着你的视角动,否则不会。空格 + G键,可以跳转到合适的观察位置,类似于UE的F键。这里可以调整对应的动画曲线,可以调整整体变动的速率。

2024-03-01 13:28:19 397

原创 Shadow Map

Shader Map学习笔记

2024-02-28 11:35:00 145

原创 UE5 Chaos系统 学习笔记

chaos破裂后的模拟物理在绿色范围内禁止模拟物理。破裂效果的力,但是由中心向外,力的大小逐渐衰弱。在锚点场范围内的物体静止且不被其他力场损坏。

2024-01-25 17:38:15 789

原创 UE5 动画 学习笔记

把右下角的资产拖出去就会播放一次该动画,如果想循环播放,在细节面板上把循环动画选为true,则循环播放动画。把它拖到动画蓝图里面,这里就有一个引脚为Speed,可以通过动画蓝图传入到混合空间,对对应姿势进行混合。在混合空间中,这里有一个水平轴的名字,自己取的Speed。在混合空间的这里,速度越快,越偏向于右边的动画。在动画蓝图里面计算速度和方向。把混合空间连到动画空间内。

2024-01-09 11:08:00 493

原创 UE5 如何只捕获人物

2024-01-03 14:00:18 407

原创 UE5 水材质注意要点

勾为false,即可有非常真实的材质上的反射效果。1、两个法线反向交替流动,可以去观感假的现象。折射要整体质量至少在High才有效果。改为半透明材质没有法线信息?2、水面延边的透明度低。3、增加水面延边的浪花。

2023-12-19 16:49:35 825

原创 UE4 实用材质图形

渐变圆光晕效果:

2023-12-16 18:27:56 530

原创 UE Niagara - Bean 制作闪电

Jitter Position可以使得Bean弯曲,但是是有曲线的弯曲,没有硬度。开启Beam的四个前提条件。Mode改为Custom。

2023-12-14 15:02:53 480

原创 UE4 去除重复纹理

将同一个纹理,用不同的Tilling,将Noise进行Lerp两者之间,为什么要这么做呢?因为用一个做清晰纹理,一个做模糊纹理,就可以使得每个地方都不一样,且使得近距离不至于纹理不清晰。将距离加入进去,如果远距离,我就采取tilling更小的观看,就不会看到重复的了。远处就可以看出还是重复,这是需要做一个距离的操作。就存在很多重复的纹理,如何解决这个问题呢?效果如上,但是这时还存在一个问题。改了个颜色,便于区别。

2023-12-13 10:55:27 545

原创 UE4 Niagara学习笔记

这里Move to Nearest Distance Field Subface GPU,可以将生成的Niagara附着到最近的物体上。需要在其他发射器的同一个粒子位置发射其他粒子就用Spawn Particles from other Emitter。使用场景就是做的火苗附着到物体上。把发射器名字填上去即可。

2023-12-13 10:06:25 520

原创 UE4 .ini文件使用

在项目的Config下,新建一个Default+类的UCLASS中config等于的名字,这里结合上面截图就是DefaultTest。在需要给配置文件的类中加上config标签,当然变量也要加。[/Script/项目名/类名]然后写变量以及对应的值即可。

2023-12-09 12:24:12 612

原创 UE4 在编辑器下进行打印 学习笔记

在WidgetComponent里面使用Tick调用才创建的接口。创建Blueprint Interface。创建WidgetComponent。在这里就可以做对应的操作。把组件加到Actor上面。把这个Actor放入场景。随便创建一个Actor。在BP里面使用这个接口。

2023-12-08 16:19:43 543

原创 UE 在蓝图中绘制渲染管线 学习笔记

图一深度和宽度很容易求出来,FOV角度也有,投影时将场景内容缩放到-1到1的一个正方体内,最后再算出屏幕分辨率,将正方体内X和Y轴进行平铺到电脑屏幕上,然后进行Z-Buffer处理,这里可以计算场景深度进行Z轴上的处理,解决遮挡关系的问题。做点乘就是算这个位置距离X、Y、Z分别的投影值时多少,再乘以轴的单位向量,清除掉其余轴不必要的数值,然后将X和Y轴相加,就拿到对应XY轴的数值。因为透视投影,会将场景内的物体压缩到-1到1的范围,而UV的取值范围在0~1,所以先乘以0.5,再平移到UV的坐标系上。

2023-12-08 13:43:49 544

原创 UE5 树叶飘落 学习笔记

将Sprite Renderer的FaceMode改成Custom,不然一直朝向相机效果就不对,按照道理是有一个3D视觉,朝向相机基本就是2D效果了。这里的Sprite Facing,是根据速度来做的,如果速度在Yaw值越快,那么就越垂直于Yaw的0值,其余同理,因为横截面积越大的那个方向速度越慢。再次叉乘,方向变成Velocity向反的向量,这两步是防止为0的情况,然后就不飘动了。这里用粒子的A值来做树叶折叠的程度,当然你也可以用Dynamic Param。速度和朝向求叉乘,叉乘结果值越大,角度就越大。

2023-12-04 16:38:34 1190

原创 UE Niagara群集

首先材质,让两翼上下煽动,随便想的就做了。防止力让模型飞太出去了,拽回来一些。

2023-12-01 17:11:32 441

原创 UE4 顶点着色 学习笔记

获取StaticMeshComponent所使用的StaticMesh的LOD数量,将之LOD数量设置为,StaticMeshComponent的LOD上。先开始拿到顶点缓冲位置,这个信息是在LODResources里面,LOD里面有Vertex信息,当然顶点的位置信息也包括在里面。4、LOD的下标,根据距离不同启用不同的LOD,对应顶点数量也会发生变化。这里拿到LOD信息,然后获取LOD资源的数组,最后拿到顶点的数量。具体哪一个模型的哪一个LOD下的哪一个顶点,修改成什么颜色。

2023-11-30 16:25:09 1675

原创 C++ 宏使用进阶

【代码】C++ 宏使用进阶。

2023-11-23 11:26:00 188

原创 UE 材质,如何只取0~1之间的值,其余值抛弃

假如-1~0,floor为-1,abs为1,Saturate为1,1-x为0,很好。假如0~1,floor为0,abs为0,Saturate为0,1-x为1,很好。假如1~2,floor为1,abs为1,Saturate为1,1-x为0,很好。假如2~3,floor为2,abs为2,Saturate为1,1-x为0,很好。应用:UV上,只要0~1之间的,不用平铺的。

2023-11-20 14:38:33 410

原创 UE TransformVector 学习笔记

假如算现在枪的位置,那么就是先拿人的位置再拿枪在本地的相对位置相加,就是枪的位置,也就是枪在场景中的位置,那么这里还可以写成Actor的变化和枪的相对位置连在TransformVector上,返回的就是枪的场景位置。这样写就可以了,1,0,0是在本地的方向,换算出来的就是世界场景的方向。这里做反算,就是通过枪的场景位置来反算人在场景的位置。这个和反转变化位置效果一样。算箭头方向在世界场景的方向。

2023-11-20 11:05:44 318

原创 UE 视差材质 学习笔记

Heightmap Channel就是高度图的灰色通道,在RGBA哪个上面,例如在R上就连接(1,0,0,0),G上就连接(0,1,0,0)逐次类推。可以看出,视差效果变得更明显,在这里很明显的看到,这个视差的效果不正确,像很多图片按照“高度”叠加出来的,看起来不真实。这样就没有了像多个图片叠加的效果,看起来更柔和,但值越大意味着性能开销越大,值越大检测次数越多,效果越精确。可以看出,1是看起来像UV乘以了一个值,2是看起来高度也更深了。这个是有视差效果的材质,很适合做水材质。所以来到接下来两个参数。

2023-11-19 21:32:44 540

原创 UE 调整材质UV贴图长宽比例

那么减去0.5,UV原点就变到了原先0.5,0.5的点,这样就能保证伸缩的图片在正中心。以这个图的箭头去缩放图片的,所以不能使得缩放后的图片放在正中心。若UV圆心是原先0.5,0.5的位置,那么伸缩位置即可在正中间。它缩放的图案不会在正中间,因为是以0,0点进行缩放的。若圆心在0,0点,那么贴图UV伸缩就是这样伸缩的。最后辅助几张图片进行大家理解。

2023-11-19 00:09:13 1269

原创 UE 程序化网格 计算横截面 面积

首先在构造函数内加上程序化网格,然后复制网格体到程序化网格组件上,将Static Mesh(类型StaticMeshActor)的静态网格体组件给到程序化网格体上。再搞个Plane上去去切割,切割位置是Plane的位置,方向是向上的方向,Cap Option选CreateNewSectionCap,材质随意。一个存储的顶点的下标,对应三角形则是310和321,刚好算完这个正方形的面积。拿到这些信息就可以去拿去各个顶点去算面积了。所以这里计算的是顶点下标,通过顶点信息拿到。第二个是顶点下标信息。

2023-11-18 17:51:10 218

原创 UE5 新特性 Nanite 开启

啥也不说,只能说,真的牛,在自己的项目上,从10几20的帧数,直接彪到了70+在Project Setting里面。勾上这个,放入场景即可。大场景,三角面足够多。将这几个勾未true。

2023-11-07 22:04:32 502

原创 UE5 新特性 DynamicMesh

[UE5] Dynamic Mesh使用教程_哔哩哔哩_bilibili

2023-11-06 13:32:12 453

原创 UE4 Niagara Module Script 初次使用笔记

最后的Position也是通过Map Set的+号,选择Particles的Position进行赋值的。这里的RandomnTriCoord是模型的坐标信息。选择模型过后ERROR是因为模型没有让CPU访问。点击+号,输出staticmesh,点击它。这里可以创建一个Niagara模块脚本。这样就可以拿到对应的一些模型信息。这样就把模型的位置渲染出来啦!这个警告是因为没有选择模型。根据坐标信息拿到位置信息。这样就可以找到对应的库了。找到对应位置点击这个即可。

2023-11-05 14:36:54 1486

原创 UE4 HLSL学习笔记

Custom里面增加两个Input,名字必须和ush文件内的未知变量名字一样。在Custom配置对应ush文件路径。材质里面是Power,这里要做区别。sin、tan、atan等等同理。然后就对应输出对应效果的颜色。记得这个返回值类型,选为一维。把1直接改到了2~4之间的2。在HLSL中写入对应代码。这就是简单的加法运算。

2023-10-30 13:24:49 599

原创 UE4 体积云制作 学习笔记

由于扰动图加1,整个最外层的值肯定是在1~2之间的,而Fresnel乘以2,最外层是2的递减,相减之后,最外层肯定为小于等于0的,所以最外层为黑色,内层Fresnel是值越小的,减去了过后,值也会在较大值,而不会为0,所以呈现白色,这样就可以对最外层做弱化效果了,但是先不急,我们需要控制黑色范围的程度,用Pow节点。在扰动图上面乘以顶点法线的方向,在强度上乘以一个合理的值,放在偏移上去,就产生了该效果,云的初步形状。云的扰动不能太大,将Scale调小,并将InputMin调整为0。

2023-10-28 14:47:25 736

原创 UE4 使用材质后期 制作玻璃有雨效果

拿到一个TexCoord的R值,从左往右的渐变,做一个梯度渐变,乘以一个值,往下取整,然后再除以一个相同的值就会产生梯度渐变效果,这个值看情况而定,连到Lerp的Alpha,A和B自己取值就好,自己调整效果即可,再乘以负数,因为目前为止Panner的数值正数,Panner正数速度是从下往上的流动,而真实效果是从上往下的流动,所以得乘以一个负数,具体负多少,看自己下雨的水需求的需要。咋先不管其它效果,这里是抛开下雨的效果就展示正常的场景效果,然后连接到自发光,效果就做好了。效果展示,其实这是一个动画效果。

2023-10-27 10:20:52 1249

原创 UE 交互草实现 不通过RT与距离场的方式

用刚才计算出来的值乘以一个系数马上乘以Sin,值加的越快那么周期就越短,速度就越快,所以这个变量的名字叫Speed,Abs是让草朝向只朝一边,不是两边抖,现在算出来的值在Sin过后,乘的值是一个具体的一个强度的值,再乘以一个方向,最后对高度做Lerp(BoundingBoxBased_0-1_UVW),再乘以之前算过的值,最后输出。把这个材质函数放到世界位置偏移内即可。记得更新两个材质参数集。

2023-10-24 15:30:01 144

空空如也

空空如也

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

TA关注的人

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