自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(953)
  • 资源 (1)
  • 收藏
  • 关注

转载 【UE4 C++】渲染流水线笔记:从MeshBatch到DrawCommand

在看完PMC的源码后,对UE4的渲染流水线有了一点浅薄的认知。找到了FMeshDrawCommand生成的主要流程,接下来先看这部分是如何和FPrimitiveSceneProxy配合的。到这里完成了MeshBatch到DrawCommand的过程,有了初步的认知后,源码里相关的概念已经大概熟悉,接下来就可以尝试针对性的修改源码,增加一个独立的渲染Pass了。MeshBatch收集完成后,接下来就是转换到DrawCommand的过程,这部分在SetupMeshPass中做了大量的工作。

2024-10-01 10:53:10 50

转载 萌新的UE5 Python使用笔记:开始篇,在UE5中执行Python脚本

因需求,最近开始学习如何在UE5中使用Python脚本进行工作。该系列文章是我学到的如何在UE5中使用Python进行自动化工作的学习笔记。

2024-09-22 16:22:32 84

原创 gpu scene cull

(1)(1)(1)(1)(1)

2024-09-21 20:20:51 174

转载 【UOD2022】Unreal的多线程并行渲染架构

望蓟门 - 唐·祖咏燕台一去客心惊,箫鼓喧喧汉将营。万里寒光生积雪,三边曙色动危旌。沙场烽火连胡月,海畔云山拥蓟城。少小虽非投笔吏,论功还欲请长缨。Unreal Open Day有不少干货,今天准备入坑盘一盘,将学习的心得体会总结记录下来,这是第一篇。下面我们逐步来看下各个部分的具体内容,如果文中有描述不清楚的,烦请点击文末的参考链接,前往原文一探究竟。

2024-09-21 17:07:04 261

转载 漫反射全局光照(1) - Lightmap

个人学习笔记,仅供参考。如有错误,欢迎指正。direction提供了dominant light的信息,例如可以借此模拟出glossy材质的specular highlight非常直观,方便美术手动调效果需要存的参数相对较少,只需要8个floats(direction = 2, RGB color * 2 = 6)相比SH有更强的contrast(美术和灯光师可能会比较喜欢这种效果)因为只有一个dominant light方向,所以不能很好地表示来自不同方向的光照。

2024-09-21 14:45:01 157

转载 UE5 实现GPU Instanced Skeletal Mesh Rendering

最近发现一个插件Skelot,实现了。可以实现同时渲染几万个SkeletalMesh,而且每个实例都可以播着不同的动画,不同动画之间还能有混合过渡,。本质就是实现了一个SkeletalMesh版的。要实现实例化绘制SkeletalMesh,通常需要实现自定义的和对应的等。本文首先简要介绍实现自定义需要的基本操作,然后分析Skelot渲染方面的实现细节,以达到可以自己实现一个的目的。。

2024-09-17 11:38:32 430

原创 unreal gpuscene

TypeOffsetTable 是 Primitive Type 相同 Primitive 的结束偏移,不是开始偏移,第一个类型开始偏移是 0,第一个类型结束偏移,是第一个类型的个数。

2024-09-16 11:49:41 184

转载 UE5渲染--GPUScene与InstanceCulling裁剪

在RenderPrePass之前还有一些逻辑,上一章分析了GPUScene的更新,接下来分析InstanceCulling。代码执行位置也是在GPUScene之后:

2024-09-16 10:08:09 155

原创 Unreal 中类似 Unity 的 Cull 的功能

Source\Runtime\Renderer\Private\DeferredShadingRenderer.cppFInitViewTaskDatas InitViewTaskDatas = OnRenderBegin(GraphBuilder);

2024-09-11 23:17:05 148

原创 unreal shader debug

if (bDump)elseelseif (!if (!=========if (!if (!#endif#if!#endif //!

2024-09-07 14:16:53 603

转载 SubSurface 和SubSurface Profile

• Shading Model 设置为SubsurfaceProfiel 重点是下面Subsurface Profile文件中的设置 你需要创建subsurface profile资源。原文链接:https://blog.csdn.net/maxiaosheng521/article/details/105983167。• ShadingModel选择Subsurface 开启SubsuifaceColor通道和Opacity通道。• SubsurfaceColor 次表面颜色。次表面和次表面轮廓效果图。

2024-09-07 14:10:40 29

转载 参考UE官方的SkeletalMerging插件

我参考UE官方的SkeletalMerging插件和市场上的一些插件整合了在Runtime下将多个Mesh合并成一个,并保留MorphTarget和布料模拟。这样就不需要给Actor挂载很多个MeshComponent了。但每次人物一换装就要将所有Mesh重新合并一次,就觉得挺麻烦的,还想着要是底层自动帮忙批合并就不用这么麻烦了呢。StaticMesh倒是用DynamicMeshComponent很好处理。

2024-09-03 13:07:54 120

转载 UE5渲染--GPUScene与合并绘制

上一篇分析了Render函数里数据配置部分之MeshDrawPipeline,在正式进入。

2024-09-03 12:54:49 270

转载 UE引擎源码阅读笔记(2):资源cook、多进程cook

当你发布最终版本的游戏时,这种烹饪方式相比CookOnTheFly,可以获得更好的性能、更小的压缩文件尺寸以及更快的加载速度。Cook 是 Unreal Engine 中的一个重要概念,指的是将项目中的各种资源(如纹理、模型、声音等)进行打包和优化,生成可供游戏运行时加载和使用的文件,通常是.uasset格式的文件。另外因为多进程是UE新加的,在不影响原始cook模式下,加入了大量的插装代码,逻辑也比较清晰。将需要cook的资源收集起来后,接下来就是资源执行cook操作,UE源码轮询检查队列状态。

2024-09-01 23:37:59 256

转载 赛博考古之Dalvik虚拟机

一个神奇的机制在共享“几乎只读”的区域上有完美的性能表现,即Copy on write(COW)。Google的测试表明,相较原本的.class文件,jar(压缩的.class文件)大小为原来的约50%,而dex文件为原来的约45%。在低性能的android手机上,Google认为采用register machine有如下优势: - 避免指令分发(instruction dispatch) - 避免不必要的内存访问 - 更高效地处理指令 - 每条指令有更高的语义密度(个人认为即表达语义更精炼的意思)

2024-09-01 23:37:06 72

原创 rendertarget msaa

render target

2024-08-31 18:51:05 223

转载 Simpleperf

【代码】Simpleperf。

2024-08-18 18:17:30 28

转载 Android Systrace 响应速度实战 3 :响应速度延伸知识

App Startup 的设计是为了解决一个问题:即不同的库使用不同的 ContentProvider 进行初始化,导致 ContentProvider 太多,管理杂乱,影响耗时的问题App Startup 具体能减少多少耗时时间:根据测试,如果二三十个三方库都集成了 App Startup,减少的耗时大概在 20ms 以内App Startup 的使用场景应该APK 有很多的 ContentProvider 在启动时候初始化。

2024-08-18 18:14:53 63

转载 安卓性能分析工具Simpleperf详解与应用

现在我们用Simpleperf命令行的形式来对安卓系统进行C/C++的性能分析:1.将simpleperf可执行文件放入安卓系统2.将可执行文件设置为可执行文件3.开始执行分析,这里设定一个99秒的持续时间。也可以设定为99999秒,然后用杀进程的方式来终止分析。因为我们前面说过,simpleperf是逐步写入数据文件的,数据文件随时保持完整性。4.停止分析5.将分析数据文件拷贝出来。

2024-08-18 18:12:58 206

转载 Homogeneous coordinates

AppearancehideTextSmallStandardLargeWidthStandardWideAutomaticLightDark正在上传…重新上传取消xyZxZyZZxyxynxmy= 0 wherenandmxmty= −nt. LetZ= 1/tmZ, −nZm, −nZtZm, −nm, −nnxmyxyzxyzxyzxyz].[]xyn。

2024-08-16 13:42:42 22

转载 Perspective-Correct Texture Mapping

Perspective-Correct Texture Mapping Our simple model of texture mapping works like this: projection, including the perspective divide, sets up the x, y coordinates of every triangle vertex for the rasterizer. The rasterizer linearly interpolates texture co

2024-08-16 13:39:59 17

转载 理解Vulkan渲染通道(RenderPass)

本文是针对在Vulkan中RenderPass概念的一个学习,希望能够帮助到其他的Vulkan苦手。有讲的不对也请多多指正。其他Vulkan文章汇总不知名书杯:Vulkan文章汇总114 赞同 · 6 评论文章​编辑RenderPassSubPassAttachmentRenderPass同样是现代图形API提出的新概念,简单来说RenderPass是整个Render Pipeline的一次执行。

2024-05-26 18:29:51 899

转载 UE4 Forward+流程分析

这个过程(Source\Runtime\Renderer\Private\LightGridInjection.cpp)会收集场景中的灯光信息,保存在FSortedLightSetSceneInfo中,它记录了各种类型的灯光的数量以及SceneInfo。随后在管线中会收集并对当前灯光进行排序,然后通过ComputeShader生成每个Cluster的灯光索引,具体在管线的位置是在InitViews之后。中,主要保存了上述的SortKey,它是一个union,还包含一个Packed变量,用于灯光的排序。

2023-12-24 22:27:44 295

转载 RenderDoc[01] 使用RenderDoc 分析Android游戏(免Root)

简单介绍Bloom就是,先普通渲染一次,然后渲染亮度高的物体一次并进行若干次高斯模糊,然后将两次渲染结果混合。在RenderDoc中开始调试目标游戏,玩一会儿游戏,等到出现美人鱼的时候,截取一帧数据进行分析。绿色的纹理,传递到shader的MetallicGlossMap变量,说明这是一张金属光泽的贴图。选择手机之后,会通过adb,往手机上安装一个RenderDocCmd的插件app,然后启动。上一次用GPU分析软件还是2年前了,用的是Mali的MGD,需要搭配Root的手机。

2023-03-08 22:01:24 1030

转载 AndroidStudio LLDB调试应用

这与将变量添加到“Watches”窗格不同

2023-03-04 00:52:01 1122

转载 使用调试程序

调试程序有时能解决问题,但有时不能,因为应用有可能在你还没来得及附加调试程序时已经崩溃。此脚本会设置端口转发,在设备上启动相应的远程调试桩,在主机上启动调试程序,配置该调试程序以查找符号,然后将该调试程序连接到远程调试桩。在惯常的崩溃输出结尾处,debuggerd 将在 logcat 中提供复制和粘贴说明,说明如何将调试程序连接到崩溃进程。例如在应用发生崩溃时,您需要逐步检查代码,以查看崩溃之前发生的情况。等待应用加载,然后会出现一个对话框,它会提示您应用正在等待附加调试程序。

2023-03-04 00:47:30 501

转载 Xcode 常见 CLI 工具

我们就以xcodebuild举例,我们通过which xcodebuild得到的结果是/usr/bin/xcodebuild,也就是说我们在执行xcodebuild的时候实际上在执行usr/bin/xcodebuild,那再让我们看看/usr/bin/xcodebuild 下的指令是怎么配合xcode-select找到 /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild的?作用:查看二进制文件中的字符串;作用:oc 语言的编译前端;

2023-02-26 19:01:25 968

转载 PDB文件解析总结

2019-11-29Windows约 5269 字 预计阅读 11 分钟 773 次阅读通过上面的几个例子可以看到使用DIA SDK解析pdb文件还是有点复杂的,关键是要理清要获取的数据属于哪种类型以及数据相关信息是怎样与数据符号相关联的,这点还是要参考DIA SDK中Sample程序的代码。文章作者 任意上次更新 2019-11-29nullWindows。

2023-02-11 12:25:32 4420

转载 Windows系统上的VirtualAlloc, HeapAlloc和malloc,new的区别

Windows系统上的VirtualAlloc, HeapAlloc和malloc,new的区别。

2023-01-26 19:23:41 845

转载 4. UE4 的auto instancing 下

opengl的instancing中,在 VS 中内置一个'gl_InstanceID' 变量,是一个整数类型,用于instancing的gpu寻址。而,UploadDynamicPrimitiveShaderDataForView则主要是,将gpu scene中的一些buff,与当前View绑定的PrimitiveShaderDataBuffer进行指定,拷贝等。不同类型的顶点工厂,如果数据元素都相同的话,是可以复用的,不用每次都创建新的RHI资源。这个在上一篇中已经讲过。

2022-12-01 00:24:44 549

转载 Unreal Engine-Strata: what is it?

Rendering6 Likes。

2022-10-01 16:19:06 285

转载 剖析虚幻渲染体系(06)- UE5特辑Part 2(Lumen和其它)

游戏引擎随笔 0x32:UE5 Lumen 源码解析(四)Radiosity 篇。剖析虚幻渲染体系(06)- UE5特辑Part 2(Lumen和其它)

2022-08-13 10:33:21 270

转载 游戏引擎随笔 0x34:UE5 Lumen 源码解析(六)Importance Sampling 篇

RGDTexture中,格式为PF_R16F。中获取IncidentRadiance的PDF,使用ProbeTracing的数量进行缩放,再与前面得到的BRDFPDF相乘作为最终PDF,由于IncidentRadiance通过前一帧的RadianceCache重投影插值计算得来,因此不够精确,不能作为PDFCulling依据,因此为了处理这种情况,当这条光线的BRDFPDF有效时,即使2个PDF相乘的结果很小,也认为是有效PDF。...

2022-07-17 22:24:35 886

转载 在启动时无法再使用vsjitdebugger来调试进程

bing Visual Studio 实时调试器未得到应用程序已正确启动的通知在启动时无法再使用vsjitdebugger来调试进程在启动时无法再使用vsjitdebugger来调试进程 | 码农俱乐部 - Golang中国 - Go语言中文社区在启动时无法再使用vsjitdebugger来调试进程由小码哥发布于2019-11-09 06:51:52windowsdebuggingwindows-10收藏当我在windows 10之前的windows版本中工...

2022-05-13 01:11:35 574

转载 Visual Studio调试器指南---自动启动调试器

visual studio 启动调试器,等待 app 连接Visual Studio调试器指南---自动启动调试器Visual Studio调试器指南---自动启动调试器 - 走看看有时,可能需要调试由另一个进程启动的应用程序的启动代码。 这样的示例包括服务和自定义设置操作。 在这些情况下,可以让调试器在应用程序启动时启动并自动附加。设置应用程序以自动启动调试器 启动注册表编辑器 (regedit)。 在“注册表编辑器”中打开 HKEY_LOCAL_MACHINE 文件夹

2022-05-12 18:32:51 785

转载 123456789

渲染书籍目录汇总(不断更新中...)渲染书籍目录汇总(不断更新中...) - 知乎 (zhihu.com)渲染书籍目录汇总(不断更新中...)杨硕豪​哇,这个人居然也学渲染啊!4 人赞同了该文章渲染是一个令人着迷的方向,可学习渲染着实有不小的难度。渲染技术不断在发展,各种技术层出不穷,相关英文资料(中文相对少了很多)更是多如牛毛。那么如何快速找到自己需要的资料呢?为了帮助自己和广大渲染爱好者更方便的找到自己需要的资料,特意写了这篇文章。这篇文章(不知道知乎是否

2022-05-03 09:27:50 11569

转载 How to Change Package ID of an Android App

How to Change Package ID of an Android AppHow to Change Package ID of an Android App ka20h00000013pMAAQ | GE Customer CenterHow to Change Package ID of an Android AppId: 000033783Average User Rating:(*)(*)(*)( )( ) Your Rating:(*)(*)(*)...

2022-04-23 18:16:16 235

转载 bundletool 工具使用

bundletool 工具使用bundletool 工具使用 - 简书bundletool 工具使用AnyunBo关注22021.12.17 13:06:43字数 4,540阅读 1,961一、bundletoo 介绍bundletool是一种底层工具,可供 Android Studio、Android Gradle 插件和 Google Play 用于构建 Android App Bundle 文件并将 app bundle 转换为部署到设备的各种 APK。您也可以将bund.

2022-04-23 18:13:27 1115

转载 Python 正则表达式

Python 正则表达式Python 正则表达式 | 菜鸟教程正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。re 模块使 Python 语言拥有全部的正则表达式功能。compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做

2022-04-20 14:37:53 213

转载 [笔记]Ray Tracing with Cones

[笔记]Ray Tracing with Cones[笔记]Ray Tracing with Cones_EndlessRenderer的博客-CSDN博客笔记简介:John Amanatides的论文Ray Tracing with Cones的阅读笔记 此文介绍Cones Tracing的原理和优点。Cones Tracing原理: ConeTracing是一种改进的光线跟踪算法。传统的光线跟踪算法用一条射线定义ray,而Cone Tra...

2022-04-16 17:20:15 337

Vulkan编程指南.pdf

Vulkan编程指南.pdf

2024-08-24

Radiosity and Realistic Image Synthesis

经典书籍

2019-03-11

空空如也

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

TA关注的人

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