Tag: Unreal

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 glasses use 2 separate camera’s ingame, with both a slightly different direction, you won’t get the same result.     有遇到相似的左右眼不一致的情况有如下: Fresnel 效果不一致: https://answers.unrealengine.com/questions/88032/bug-fresnel-on-vr-oculus-lr-eye-different.html LOD 效果不一致: https://answers.unrealengine.com/questions/584083/eyes-sometimes-show-different-lods-in-vr.html     解决方案:根据actor到摄像机的距离手动排序      
Read More

Ue4 渲染流程

TranslucentRendering.h: Translucent rendering definitions. TranslucentRendering.cpp: Translucent rendering implementation.     这部分用来渲染透明网格。         后面两个函数处理参数后都是调用的 DrawMesh() 实现,DrawMesh 实现框架如下:         这里关键点就是判断,只处理透明材质: if (IsTranslucentBlendMode(BlendMode))。         然后来看可能是那里调用了上面的处理函数,TranslucentRendering.cpp 文件里面最后的几个实现方法是来自 DeferredShadingRenderer.h: Scene rendering definitions. 的,我们溯源会看到如下信息:     目测 DeferredShadingRenderer.h: Scene rendering definitions. 定义了完整的场景渲染方法。                    
Read More

UE4渲染模块分析

UE4的渲染模块是一个独立的模块,这篇文章从该模块的设计理念和思路进行剖析。 通常渲染模块由如下几个部分组成: 场景的描述 场景遍历和拣选 渲染的执行         场景的描述     UE4场景管理相关的数据结构如下: FScene 场景类 FPrimitiveSceneProxy 场景里的几何体类 FPrimitiveSceneInfo 场景里的结点(拥有几何体和状态信息)     每个几何体具有材质属性,相关的数据结构如下: FMaterial 材质接口类,提供材质属性的查询(eg. blend mode)和shader查找。 FMaterialResoruce UMaterial实现的具体的FMaterial FMaterialRenderProxy 渲染线程用的Material对象,提供FMaterial的访问和材质参数的访问(eg. scaler, vector, texture parameter等参数)。             场景的遍历和拣选     在简单的3D渲染引擎中,通常的做法是:遍历场景结点,根据视景体进行判断该结点是否可见,如果可见则保存到渲染队列中,否则忽略之。最后对渲染队列中的结点进行按材质排序,然后绘制它们。     在UE4中,使用了不同于上面的方式进行处理,它对几何体进行分类处理(Static Primitive和Dynamic Primitive)。     Static Render Path 在FScene对象中存在一些static
Read More

UE4 四种加载资源的方式

    http://blog.csdn.net/u012385432/article/details/52154737     在UNITY中,我们加载资源一般是通过Resources.Load(path).即可完成.该方法返回的是Object类型.如果你想要的是材质或者贴图等等,只要价格类型转换的关键字就可以了例如 as Material,则可以返回一个材质的引用…     在UE4中,加载资源的方式区别较大.经过自己一个下午的摸索,目前发现了这4种资源的加载方式.在UE4中,它的蓝图就大致等于UNTIY中的prefab.所以我们将资源弄成了蓝图的方式来进行加载.             第一种: 如果该蓝图有C++类(或者说是从C++类创建的蓝图),直接进行加载     ATemp* spawnActor = GetWorld()->SpawnActor<ATemp>(ATemp::StaticClass());     所有的加载资源并创建到场景中的方式都离不开SpawnActor这一句代码.如果你的蓝图包含了C++类,那么可以直接访问类的StaticClass     剩下的加载方式均是单纯的加载蓝图,并没有对应的C++类             第二种: 通过ConstructorHelpers来加载     static ConstructorHelpers::FClassFinder<AActor> bpClass(TEXT(“/Game/BluePrint/TestObj”)); if(bpClass.Class != NULL) { GetWorld()->SpawnActor(bpClass.Class); }     FClassFinder是一个结构体,其中的Class成员变量是TSubClassof<T>类型的.所以我们只需要SpawnActor(bpClass.Class)就可以生成我们要的东西了    
Read More

Oculus Optimizing the Unreal Engine 4 Renderer for VR

https://developer.oculus.com/blog/introducing-the-oculus-unreal-renderer/     For Farlands, the Oculus team wrote an experimental, fast, single-pass forward renderer for Unreal Engine. It’s also used in Dreamdeck and the Oculus Store version of Showdown. We’re sharing the renderer’s source as a sample to help developers reach higher quality levels and frame rates in their own applications. As of today,
Read More

The Vanishing of Milliseconds: Optimizing the UE4 renderer for Ethan Carter VR

原文: https://medium.com/@TheIneQuation/the-vanishing-of-milliseconds-dfe7572d9856#.auamge3rg         As a game with very rich visuals, The Vanishing of Ethan Carter (available for the  Oculus Rift and Steam VR ) has been a difficult case for hitting the VR performance targets. The fact that its graphics workload is somewhat uncommon for Unreal Engine 4 (and, specifically, largely dissimilar to existing
Read More

Optimizing the Unreal Engine 4 Renderer for VR

https://developer.oculus.com/blog/introducing-the-oculus-unreal-renderer/   For Farlands, the Oculus team wrote an experimental, fast, single-pass forward renderer for Unreal Engine. It’s also used in Dreamdeck and the Oculus Store version of Showdown. We’re sharing the renderer’s source as a sample to help developers reach higher quality levels and frame rates in their own applications. As of today, you
Read More