2024-1-26-建筑部件局部uv图案彩绘与室内场景视差贴图随机分布

下面四个图从左到右分别为从prop中treebase的材质系统、sidewalk的材质系统以及剩下两个是brick-block材质系统。treebase的看起来很有阴天雨水打湿的感觉,sidewalk的可以产生随机的细粒度很高的黑色污渍、还有裂纹、垃圾,brick-block的最右边这个没有添加packedA的mask,于是污渍、水渍整体比较均匀的涂抹导致偏黑。相对而言左起第三个带了packedA遮罩的brickblock最为完美,毕竟它还可以继承边缘、接缝的污渍、水渍、磨损智能分布,大块面的水渍来自于grime ground的设置,这套系统还支持色相、饱和度、亮度(这里的饱和度甚至可以局部根据色相调整?),具体对污渍水渍的控制还得排摸一下grime crevice和grime drip.

没有室内场景的话玻璃窗看过去会显得很假,但是内景太清晰也会感觉很假。我觉得需要一些实景参照来决定,目前来看archidaily以及pinterest上面的项目拍摄和效果图一般都是高反射度的效果,要么是窗帘拉着或者不太透明的,很少有内景,内景一般集中于一楼的商铺,内景较为清晰的情况是室内若开灯,考虑到白天会有些许房间开灯那就是大部分房间的玻璃给高反射度或者不透明玻璃或者窗帘极少开灯显示内景以及开灯与窗帘组合。窗帘我觉得就用模型了。

技术方面我修改了原来的材质,拆分成三个makematerialattribute通过switch配合perinstancerandom来随机选取其一,这必须让物体实例化后才能随机选取一个Texture object,暂时不清楚如何用texture2d array加载多个室内贴图,只能用这个办法过渡,每次使用把需要的室内贴图先添加到参数里,到时候打包一个材质函数。

进一步结合matrix的interior window材质可以添加窗帘且使得内景的色调明度随机,增添内景的多样性。转换instance之后需要在num custom data floats改为1,然后custom data会出现对应instance数的数组列表,修改每个数组的值可以给出随机的室内场景。

custom data可以直接复制matrix里面的一个instance集合,数量不符无所谓,这样快速随机赋值,我暂时不清楚matrix中是如何给它们随机赋值的以及PBG的示例中是咋搞得。原生的matrix内景有一个大问题在于这个custom data意味着什么,一个办公大楼我们希望内景都是办公室相关的,但是对应的custom data值是多少?理论上需要在办公室房间进行随机分配,但是由于不知道办公室贴图对应的custom data所以到时候会出问题。配合interior mapping的函数只要给对应大楼的内景贴图,即可在限定范围内随机分布,不过为了多样性,需要非常多的内景贴图。下为custom data复制出来的,这串可以直接复制给任意instance。

(15532288.000000,5185792.000000,7291136.000000,15294720.000000,13271296.000000,13304064.000000,11346176.000000,9322752.000000,14164224.000000,2818304.000000,9183488.000000)

2024-2-14更新:

若每个建筑的内景都要手动填充custom data太麻烦了,但不填充的话,窗帘和室内曝光亮度、室内色温都是一样的,其中曝光度和色温是个大范围的随机数我发现用一个persinstancerandom配合加减乘除限定一个定义域不起做用,后来用perinstancerandom限定在[0,x]上用switch输出限定值起作用了,成功解决了室内伪装随机窗帘、色温、曝光随机化,尽管这个随机目前似乎还是有偏向性的,并非完全相等概率。另外这个室内伪装材质实例不能像其他材质实例那样直接复制然后修改其中的texture sample贴图,那样会导致texture update ue 崩溃,必须在顶层master材质函数生成材质实例,然后材质实例再生成材质实例移动到需要的文件夹中,顶层材质实例修改好texture sample即可也就是在顶层材质实例中准备好xxx_卧室合集1、xxx_卧室合集2,另外从现实逻辑来看不需要做厨房、卫生间的室内伪装,没有这个必要,对于住宅而言卧室、客厅最多再加个书房即可。室内景观我一开始是下载max项目360度渲染,后来使用stable diffusion直接批量生成fisheye 360的室内图,更加高效便捷配合转hdri的在线程序和ps的批处理。

我在window材质中引入interiormapping的材质函数(还未打包),这里要breakMaterialAttribute以用于替代原生的Fakeroom相关的emissive。

两处修改为interiormapping的basecolor接入。

封装interior mapping,这里的问题是Tex Object也就是texture sample纹理采样数最多是16个,目前不知道如何解决这个纹理数限制,Texture 2d array不知道如何读取转换Tex object.从现实逻辑来看可以分成厨房、客厅、书房、卧室等房型为不同的内景材质函数,如果不同功能房间16个房型么即使是30层的大楼上百个房间混杂不同窗帘和色偏不会有很大的重复感,只不过需要的纹理太多了。

这样的话意味着玻璃和内景的材质合二为一,玻璃模型直接给这个合二为一的材质即可。hillside中透明玻璃非nanite,它的做法是用datasmith导入场景这样可以在细粒度很高的层级上分类,目前我用的是PBG,以房型为单位整体的nanite,matrix中也是如此,目前blender中还没有那种快速生成模块化建筑的插件最终可以导出实例的。

今天再打开项目不知道为什么昨天调好的材质不管用了,也有可能管用只是我一开始没弄明白,这个系统和custom data的值关联很大。图1为实例化后初始状态custom data皆为0,此时exposure和brightness调到最大所有房间也是很暗,brightness调亮是basecolor,而exposure是emittness发光度,单靠brightness调亮会显得诡异。图2为调整了custom data,这个值暂时意义不明可以从matrix的项目中拷贝过来作为随机分布的模板。另外内景的大小和玻璃窗mesh的第一套uv有关系,目前的实验看起来玻璃窗的第一套uv必须落在x1y1 udim单元格内,其texel density在zen uv addon 中检测为183左右在texel density addon 中检测为0.916左右,玻璃窗的texel density会影响窗帘的自适应位置与大小,对比图3和图2可以明显看到窗帘与玻璃窗的相对位置。复制custom data 时ue崩溃了,一会儿要复盘下这个复制避免类似情况。

吃完饭后再实验我发现custom data必须是对应数量一样,少了多了复制都会使得ue崩溃,另一方面玻璃窗的uv texel density应该设为撑足x1y1 udim单元格,此时可以让窗帘正确自适应玻璃窗的大小。

对于多个镜像房型,设定好一个镜像对称目标,需要镜像的物体多选以后ctrl L link modifier批量添加镜像效果,全选所有镜像物体,对镜像一侧进入vertex mode选中后分离可以批量分离。不过这样做的问题是没搞uv,到时候给材质还得重新来一遍,但不搞出镜像mesh么没法搭模型看效果。到时候看看复制uv给镜像mesh再批量flip能不能直接搞定。

线刻装饰用dice v2配合vertex模式bevel 大小0.005,再extrude along normal大小-0.005.

pbg中由于无法定义corner mesh因此如下图这种效果侧面不能做两重而是一个很厚的mesh作为单体才可以实现,然而这样会牺牲自由度。

玻璃窗上的纹理和

最后发现和木纹的丫说格式有关系,在ue5.1demo场景中用的DXT1,但是ue5.21我的项目中这么搞不行,我看其他几个纹理用的bc7于是修改了压缩格式,木纹就正常了,不然的话随着摄像机移动都会有奇怪的“补丁”。这种异常在材质球中即可窥见,确保材质球上没有奇怪的闪烁错乱就不会在场景中出问题。

图1没有用uvpackmaster 整理的模型烘培后加智能遮罩,图2整理后添加智能遮罩,可以看出来效果差距很大。

近看的话,cornice加不加倒角区别还是很大的,cornice加倒角之后apply modifier再合并mesh

对于非雕刻装饰类的部件似乎没必要去做智能遮罩添加细节精确度,比如下面两个部件只能看出来接缝处的污渍,边缘处的磨损,这需要十分细致的观察才可以,对于非核心建筑没必要做到这一步,只调节亮度、饱和度、色相、污渍、水渍用默认遮罩调整也可以凑合。

大片的砖墙不能用太小宽度的mesh,这样会造成视觉上砖块平铺重复过于明显。

智能遮罩体现的差异在于浮雕装饰

对于浅浮雕差异也蛮大的。

大号的结构看不出什么差异。

细微的接替开槽的立体感区别明显。

以下为我用smart uv project配合sp的智能材质做的效果对比,展示了近距离和中距离的区别。浅浮雕影响不大,但开槽的阴影、污渍区别很大。

这个部件几乎没有区别

浮雕、开槽凹凸有显著效果区别,特别是非白色的,要表现出磨损,白色的也可以看出来相对立体感更强。

整排开槽不做智能遮罩,每个开口看起来一模一样很呆板。

柱式的柱头凹凸,雕刻的立体感中距离比较也是很明显的。

中距离看左侧开槽有几个已经无法辨识了。近距离看雕刻的立体感就差距很大了。

目前看来需要做智能遮罩的只有石材的凹凸开槽、浮雕、雕塑装饰,窗框、金属栏杆什么的做不做区别不大就省略,初期做公房民宅不用考虑智能遮罩。模型的倒角影响应该是蛮大的,cornice作为重复局部部件要事件apply倒角复制给其他需要的部件。sp烘焙时可以选定需要加遮罩的材质,因此不需要的去掉勾选,可以加快烘焙速度。

2024-2-26-PBG程序化建筑从blender到ue 2024-2-11-祈今朝的观剧感

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×