All Unreal Engine 4

Unreal TextureArray 使用

    Unreal 确实是自带了一些 Texture2DArray 的代码,但是貌似功能是不全的。     首先是你无法创建出Texture2DArray对象,引擎,作如下修改后可以创建对象。 操作如下: 创建的对象也可以添加多张贴图来生成效果: 但是至此没有找到怎么使用这个东西的任何文档说明。     第三方修改,主要有两个 第一个是Unreal请求的合并的 https://github.com/EpicGames/UnrealEngine/pull/5767 第二个是独立的第三方插件 https://github.com/fracturedbyte/UE4-T2DA 第二个有完整的使用教程 但是其实其4.24版本官方已经包含了相关的代码,只是设置了默认关闭的代码,而且有BUG,才导致无法使用。 这边参考了Epic的BUG修复提交,删掉了 …

All Unreal Engine 4

Unreal Landscape TextureArray 分析

    是否采用了TextureArray     整个地形虽然在编辑的时候存在多层高度图,但是在运行的时候,heightmap就只有一张在使用,weightmap是多张,在LandscapeComponent这个层面看不出来用的是Texture还是TextureArray,这边用的是逻辑的贴图书组。     然后我们来看 Landscape 这边的实现     Alandscape 对象里面,存在这两个对象: 这里的注释很好的解释了这两个纹理数组资源的含义。 CombinedLayersWeightmapAllMaterialLayersResource 存储的是所有层一起混合后的绘制层贴图资源; CurrentLayersWeightmapAllMaterialLayersResource 存储的是当前层的绘制层贴图资源; 上面的层的含义是地形层,就是多层高度图的层的含义。后续所有的layertexture操作引用到的都是这两个Resources对象。   …

All Houdini Unreal Engine 4

Houdini Foliage Bake to levels 实现

    Bake foliage 默认情况下是属于 GWorld->GetCurrentLevel(); 因此就是 Level 面板下当前level是哪个,就生成在哪个level里面。     每个 level 里面拥有 AInstancedFoliageActor 对象,就是用来存储 Foliage 信息的。     在 Houdini …

All VR Rendering

VR下左右眼UI排序不一样

    首先确认问题出在哪里:经过测试只有出现在 SolarMeshWidgetComponent 这个相关。     然后想了一下,有可能是是左右眼的深度处理不一致,有这样的情况么? 可能一: https://answers.unrealengine.com/questions/88032/bug-fresnel-on-vr-oculus-lr-eye-different.html https://forums.unrealengine.com/showthread.php?45945-Translucent-Water-Material-Displacement-Banding-Issue CameraVector. This is the world space camera direction. Since virtual reality …

All Unreal Engine 4

Ue4 渲染流程

TranslucentRendering.h: Translucent rendering definitions. TranslucentRendering.cpp: Translucent rendering implementation.     这部分用来渲染透明网格。         后面两个函数处理参数后都是调用的 DrawMesh() 实现,DrawMesh 实现框架如下:       …

All Unreal Engine 4

UE4渲染模块分析

UE4的渲染模块是一个独立的模块,这篇文章从该模块的设计理念和思路进行剖析。 通常渲染模块由如下几个部分组成: 场景的描述 场景遍历和拣选 渲染的执行         场景的描述     UE4场景管理相关的数据结构如下: FScene 场景类 FPrimitiveSceneProxy 场景里的几何体类 FPrimitiveSceneInfo 场景里的结点(拥有几何体和状态信息)     每个几何体具有材质属性,相关的数据结构如下: …

All Unreal Engine 4

UE4 四种加载资源的方式

    http://blog.csdn.net/u012385432/article/details/52154737     在UNITY中,我们加载资源一般是通过Resources.Load(path).即可完成.该方法返回的是Object类型.如果你想要的是材质或者贴图等等,只要价格类型转换的关键字就可以了例如 as Material,则可以返回一个材质的引用…     在UE4中,加载资源的方式区别较大.经过自己一个下午的摸索,目前发现了这4种资源的加载方式.在UE4中,它的蓝图就大致等于UNTIY中的prefab.所以我们将资源弄成了蓝图的方式来进行加载.             第一种: 如果该蓝图有C++类(或者说是从C++类创建的蓝图),直接进行加载     ATemp* …