由于本人理解确实不太到位,本文涉及原理会比较少,更多偏实践一点。旨在记录一下将ue5 3d print假室内制作方式移植到ue4的一些过程和思路。


首先上原视频,在40min左右有提到这个方法

[技术演讲]黑客帝国觉醒:创造世界(官方字幕)_哔哩哔哩_bilibili了解Epic的特别项目团队如何利用UE5创建《黑客帝国觉醒》中的环境。我们将介绍:用于创建建筑物的模块化程序方法;开放世界工作流程(一Actor一文件、数据层、HLOD、关卡实例化);材质与纹理的外观开发详解;全局光照和反射系统Lumen的最新改进。https://www.bilibili.com/video/BV1TP4y1T7Pj/?spm_id_from=333.788

材质概览

原材质在城市示例工程中搜材质M_Window就能找到

ue4中的还原效果

经过一番秃头整理后留下的主干长这样

float2 uvOut = uv+v.xy*(-1)/dot(v,float3(0,0,1));
float alpha = 0;
uint2 Random =  Rand3DPCG16( uint3( PixelPos, View.StateFrameIndexMod8 ) ).xy;
float i=0;while (i<Steps){float h = (i+lerp(0,Hammersley( i, Steps, Random ).x-.5,DitherSteps))/Steps;float2 uvCurrent = uv+v.xy*(-1+h)/dot(v,float3(0,0,1));float2 intersect = Tex.SampleGrad(GetMaterialSharedSampler(TexSampler,View.MaterialTextureBilinearClampedSampler),float3(uvCurrent+Distort,index),InDDX, InDDY).xy;if( h > (1-intersect.y) && h < intersect.x ){if(uvCurrent.x > 0 && uvCurrent.x < 1 && uvCurrent.y > 0 && uvCurrent.y < 1){uvOut = uvCurrent;alpha = 1;}}i++;
}return float3(uvOut.x,uvOut.y,alpha);

在这个custom节点中输入uv、深度图等信息,就能在输出的rg通道中得到物体颜色的uv,g通道得到深度的mask

贴图生成

拿来了这个custom之后就需要创建所需的包含深度和颜色信息的两张贴图

我在这是直接用的2d scene capture来拍摄

颜色直接拍(但我不理解为什么要拍前后两张,实践下来拍从前到后的一张就够了)。深度则需要给被摄物体创建一个深度材质,把物体的world position归一化后输出到basecolor,分别从前到后,从后到前算出一个在格子内的0-1的深度,再将两张图存入最终深度贴图的r和g通道即可

这个方法还不成熟所以这里就不过多展开了,大佬们多在评论区教教谢谢

2d预投影背景

官方的案例用的是引擎自带的cubemap做法,这里为了节省性能换成了2d预投影

具体可以参考这位劳斯的文章

案例学习——Interior Mapping 室内映射(假室内效果) - 知乎最近油管推荐了Interior Mapping的教程,发现很有意思 好像各种资料都比较零散,于是到处搜集了一些,有了这篇文章汇总,一起学习学习 0 效果展示因为有点长,所以先展示一些效果 以一张2d投影图为基底,用alpha…https://zhuanlan.zhihu.com/p/376762518

背景图依然用2d scene capture拍摄,但是perspective,53.13度

Tiling和随机分布

背景的tiling在上面的截图里有了

物体:只要把主干部分输入的uv换成蓝框就tiling完了

因为有随机分布n种物体的需求所以研究了一下,这里主要参考的是dokipen这个系列视频的思路

https://www.youtube.com/watch?v=ssXu_O11gb4&list=PLHadbgEqCTxAQ59lMgSgTCffqkrnGV1Y1https://www.youtube.com/watch?v=ssXu_O11gb4&list=PLHadbgEqCTxAQ59lMgSgTCffqkrnGV1Y1

给tiling后的每个格子一个0-1的随机数,然后乘上n就能得到n个index,把这个index给两张贴图就行

两个随机是为了增加随机性,种类随机用一种,可见性用另一种。

上面那条棋盘格是为了隔开相邻的几个index减少重复度用的,缺点是index为0和n-1的两种图案会变多。不需要的话去掉最后的add即可。不知道有没有更好的减少相邻格子重复度的方法,教我!

加入custom primitive data是为了方便每个模型使用不同的随机值,避免重复

此处懒得找n种图来录效果了 有空再补视频

这里还能衍生出一个控制可见度的参数

mf中输出的随机数对b通道这样操作一下就能使一些随机的格子里不显示物体,visibility可以用来控制空格子的比例


先写这么多8,有机会的话会再完善下(本文转载自我自己的知乎)

UE5黑客帝国3d print假室内的一些使用记录相关推荐

  1. 案例学习——Interior Mapping 室内映射(假室内效果)

    最近油管推荐了Interior Mapping的教程,发现很有意思,但各种资料似乎比较零散 于是到处搜集了一些,有了这篇文章汇总,一起学习 案例学习--Interior Mapping 室内映射(假室 ...

  2. 3D游戏建模室内材质调整方法

    室内材质调整方法:一.木纹材质调整方法 1.木纹材质的肌理调整: 使用过度色通道贴图后加入凹凸通道贴图,使木纹有凹凸感,肌理更明显凹凸通道强度通常为30% : 材质球的高光强度(specular le ...

  3. Tango手机分析 3D点云 室内环境重建

    之前一直在PC使用pmd pico flex深度相机,从上一篇文章开始尝试使用Tango手机.Tango手机集成了pmd Sunny深度相机. tango渲染3D方式 tango范例通过2种方式来显示 ...

  4. 关于3D空间旋转的相关内容的记录(Euler Angles, Gimbal Lock, Quaternion, iOS CMAttitude)

    概述 最近看了些旋转相关内容,记录一下自己的理解和总结.更详尽的内容可以查看参考资料里的文章,讲得很棒. 3D空间旋转的表示方法 可以使用不同的方式表示3D空间里的旋转. Euler Angles(欧 ...

  5. Unity 3D 官方教程—— 2D Physics系列 学习记录

    1.2D Physics Overview 1.2D Physics游戏对象和3D Physics游戏对象可共存在一个场景,但是它们不能相互反应(interact with each other). ...

  6. Blender 3D 打印插件Print Toolbox

    Blender 3D Print Toolbox Statistics 统计,可以提算出模型的体积,可供打印备料参考. Error Checking 错误检查 Solid 检查模型是否完整正确,是否有 ...

  7. 【CVPR2020】3D目标检测论文汇总

    文章目录 1. 3D目标检测--室外 1. Associate-3Ddet: Perceptual-to-Conceptual Association for 3D Point Cloud Objec ...

  8. 玩好3D打印机从了解切片软件开始

    每个人想要从身边的3D打印机中最快速的获得最佳打印效果,除了设计优化.3D打印机和打印材料之外,还有一个更重要的环节就是切片软件,它对打印结果起着重要作用,我们可以把切片软件理解为从数字模型到实体模型 ...

  9. 汇总|基于激光雷达的3D目标检测开源项目数据集

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 前言 这一片文章主要介绍目前3D目标检测的一些比较重要的数据集合在github上比较好用的3D目标检测 ...

最新文章

  1. Spring Boot + Vue 如此强大?
  2. cxf开发实践(添加SSL支持)
  3. 进程间通信——DLL共享节
  4. 泛在电力物联网分析—架构形式
  5. js修改本地json文件_Flutter加载本地JSON文件教程建议收藏
  6. 原来这些元器件最容易引发电路故障。。。
  7. ReLU为什么比Sigmoid效果好
  8. 几款知名RTMP推流模块比较:OBS VS SmartPublisher VS Flash Media Live Encoder
  9. bl系列刀片(blade)服务器,HPE Integrity BL870c i6 刀片服务器
  10. python爬取人口数据_爬取人口数据
  11. 几个LabVIEW软件欢迎页面
  12. 虚拟化高级应用、Win快捷键操作 、 Win+R快速调用
  13. Elasticsearch: 运用 Pinned query 来提高文档的排名 (7.5发行版新功能)
  14. css表格随内容变化,css 使表格随着内容自动适应宽度
  15. 深度之眼Pytorch打卡(十三):Pytorch全连接神经网络部件——线性层、非线性激活层与Dropout层(即全连接层、常用激活函数与失活 )
  16. 电商实时交易风控系统
  17. 设计数据密集型应用——分布式系统的麻烦(8)
  18. android音乐播放器sd,Android音乐播放器(2)从SD卡中读取音乐
  19. PPT精品模板:个人创意销售企业公司介绍PPT
  20. Json完整版介绍和工具类解析应用

热门文章

  1. Web安全(图片验证码大小可控导致ddos)
  2. 【读书笔记】金字塔原理-学习总结
  3. Scrum Master Mock Test (1)
  4. c 传递流java 生僻字_Java语言中的生僻知识
  5. Memory and Crow(CodeForces 712A)
  6. 在探索中享受童年般的乐趣 |Mixlab的故事
  7. 大学毕业论文指导-内容陈述
  8. 内蒙古计算机考研学校选择,2020内蒙古考研指南-这些没有A+的院校你会选择吗...
  9. 使用Labelimg打标签
  10. 戴口罩的这一年,AI产业如何“重启、重塑、重构”?