All Houdini Unreal Engine 4

Houdini Imposter 生成使用

    参考资料 https://www.sidefx.com/tutorials/game-tools-imposter-textures/     Houdini Labs 集成了 Imposter 图片和Mesh生成的工具,使用起来也很方便。这个工具和Unreal里面使用的生成插件,功能上面是重复的。     使用步骤: 我们在工程里面已经预制好了 Impostor_demoscene.hip 文件。这个工程就是用来生成后续项目里面使用的资源的。 打开工程,你首先要做的就是在 obj/rubber_toy 里面用上你自己的模型。 然后可以回到out界面,并打开 RenderView …

All Houdini Other

GIS 数据生成高度图

    地形在地理信息学科领域是很常见的存在,我们想要利用这个领域的知识和信息在游戏里面,比如这边想要通过GIS获取真实的地形信息。     数据获取     这边例子我们采用的是 Oregon Department of Geology and Mineral Industries(DOGAMI) 提供的雷达数据,你可以在其网站上下载每一块地形的完整数据。         数据处理 …

All Houdini Other

OSM SRTM 数据匹配

    实战步骤 下载数据     为了能获取dem高程数据,需要注册 https://urs.earthdata.nasa.gov/users/new 然后打开SRTM数据网站 http://dwtkns.com/srtm30m/ 这个网站可以下载的数据,已经按照经纬度帮你划分好了,你可以直接点击感兴趣的块,然后点击直接下载数据即可。 然后下一步就是下载对应区域的OSM数据。 打开 OSM 数据网站 https://www.openstreetmap.org 然后根据上面下载SRTM数据的时候的经纬度,比如上方的块是N22E114,则在export界面填入相应的区域值,然后点击Overpass API按钮下载数据。 至此我们就下载完了相互对应的OSM和DEM数据。     处理数据 …

All Houdini Unreal Engine 4

Houdini Foliage Bake to levels 实现

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

All Houdini Machine Learning

Houdini PDG 点云数据批量生成高度图

    这边的目标是实现在Houdini批量处理所有的点云地形数据生成高度图。     首先第一步就是要实现处理点云数据生成高度图的HDA文件     这里面首先是处理一下点云,使得更好的表述地形。这个部分就不细讲了,见另外一篇我专门讲怎么处理地形点云数据的文章。     然后往下有一个特殊步骤,用于生成我们输出的高度图的文件名。 这一步的计算结果就是detail面板底下我们有了这个outfilename的对象,并把它暂时存储在null节点OutFileName里面。     下一步就是添加了heightfield_output节点用于输出高度图,这里面的文件名就是上面我们计算保存的输出文件文件名。其他的参数则是按需设置。     至此我们就实现了单个地块的点云数据输出高度图,然后我们来看怎么批量处理数据。     首先我们要把上面的包装成一个Hda文件并设置参数。如下图所示,我们这里的参数就两个,一个是Pts输入文件名,输出的文件名由于是自动生成的,就不需要输入。还有就是存成高度图的按钮。 …

All Houdini Machine Learning

LAStools 处理点云数据

    对于直接下载的原始点云数据,不处理的化你是很难得到想要的地面信息啥的。因此这边记录的就是如何使用LAStools工具来初加工这些数据,为后续Houdini精加工数据做铺垫。     原始的点云数据下载地址: https://cloud.sdsc.edu/v1/AUTH_opentopography/PC_Bulk/DOGAMI/ 这里下载的点云数据格式大多数是.laz,这是一种.las格式的压缩格式。     LAStools下载地址: https://rapidlasso.com/ 下载完解压后,在目录下的bin文件夹下就是我们要使用的这些工具。 打开Cmd.exe,cd到这个bin目录即可在命令行使用这些工具。     我们期望从原始的点云数据获得的信息是:地形数据,植被数据,建筑数据。我们下面讲解一下获得这些数据的操作。     首先拷贝一个测试数据集:例如这里我们用的是 ot_44121C8101.laz。 然后输入以下命令获得 …

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 场景里的结点(拥有几何体和状态信息)     每个几何体具有材质属性,相关的数据结构如下: …