首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Unity 水、流体、波纹基础系列(一)——纹理变形(Texture Distortion )

(每秒重置) 现在我们可以看到纹理确实在不同方向上以不同速度变形了。除了突然重置,最明显是纹理随着变形增加而迅速变得块状。这是由于流体贴图压缩引起。...(没有压缩) 为什么不使用更高分辨率图? 尽管是可以,但流体贴图通常会覆盖较大区域,因此最终导致有效分辨率很低。只要不使用极端变形,就没有问题。...采样噪声并将其添加到传递给FlowUVW之前时间。 ? ? (带有时间偏移效果) 为什么采样流体贴图两次?...我们可以通过在每个阶段保持UV偏移恒定,然后在各个阶段之间跳转到新偏移来避免视觉滑动。换句话说,每次权重为零时,我们都会使UV跳变。这是通过在UV上加上一些跳跃偏移量乘以时间整数部分来完成。...(导数加高度图) 为什么不把高度直接用0.1倍存储? 高度数据以最大强度存储,以最大程度地减少精度损失。 由于纹理不是法线贴图,因此将其导入为常规2D纹理。确保指示它不是sRGB纹理。 ?

4K21

Unity 水、流体、波纹基础系列(二)——方向流体(Directional Flow)

(顺其自然涟漪) 1 各向异性模式 让纹理变形以模拟流动时,它最终可能在任何方向上被拉伸或挤压。这意味着无论如何变形,看起来效果都还不错。但这仅在各向同性模式下才有可能。...变形着色器使用此属性来控制变形量,但它也会影响动画速度。尽管我们实际上不需要在方向着色器中执行此操作,但它使配置两个着色器完全相同速度可以直接套用。并且 比较效果时很方便。 ? ?...(网格分辨率设置为10) 通过将用于采样贴图UV乘以网格分辨率,然后丢弃小数部分,可以将流体贴图切成图块。这使我们瓦片具有固定UV坐标,从0到网格分辨率。...在FlowCell中执行此操作最合适了,因此我们可以继续使用整数作为offset参数。着色器编译器会消除多余计算。 ? ? (重叠单元格) 现在,水平单元重叠,发生频率是我们实际使用图块两倍。...这是具有Toggle属性整数属性。此属性需要关键字作为参数,我们将使用_DUAL_GRID。 ? ? 着色器不使用属性整数部分,仅关键字很重要。通过检查器检查属性时,将定义该关键字,否则未定义。

4.2K50
您找到你想要的搜索结果了吗?
是的
没有找到

基础渲染系列(六)——凹凸

2 法线贴图 当凹凸贴图起作用时,我们需要执行多个纹理样本和有限差分计算。这似乎是一种浪费,因为生成法线应该始终相同。为什么所有这些工作每一帧都要做一遍呢?...因此,该数据实际上是可变。这就是为什么必须明确提供它原因。 然后,我们可以使用顶点法线和切线来构造一个与网格表面匹配3D空间。该空间称为切线空间,切线基础或TBN空间。...因此,当将它们应用于具有弯曲切线空间对象时,与高度场相比,最终法线会变形。但这还好,因为大理石的确切外观无关紧要。 从5.3版本开始,Unity使用mikktspace。...由于切线空间环绕对象表面,因此对象的确切形状无关紧要。你可以对其应用任何切线空间法线贴图。你也可以像我们一样平铺贴图。同样,当网格由于其动画而变形时,切线空间(以及法线贴图)也会随之变形。...如果要消除切线空间,则必须使用对象空间法线贴图。这些贴图不粘在表面上。因此它们无法平铺,不能应用于不同形状,也不会随网格变形。此外,它们在纹理压缩方面也不起作用

3.6K40

如何搭建3D虚拟数字人自动捏脸系统

关键点归一化:根据真实人脸关键点预测来调整数字人标准人脸模型,需要确保两者关键点在尺度、位置、方向等方面统一。...解决网络自动变形主要思路是把关键点驱动变形问题转化为二次项函数优化问题,即求解一个线性偏微分方程组。...二次项函数数学模型建立有很多方式,第一种方式双调和变形,将网格形变转化为一个双调和函数求解问题;第二种称为仿射变形,是另一种形式线性偏微分方程求解。...第三步:图片特征提取 为了数字人美观同时使得数字人形象更加符合用户特征,需要根据用户照片中图像特征对标准贴图进行调整,变成符合用户个性化特征贴图。...对于数字人肤色、眉色、瞳色、唇色、发色、眼影等贴图调整,是对贴图颜色进行统一调整,因此只需要真实照片平均颜色和大体图片颜色接近即可,不需要特别精准各个部分颜色,因此选择基于图像处理方式进行图片特征提取

72750

3D 图形学基础 (下)

和最近点采样一样,双线性过滤首先要计算一个纹理像素地址,这个地址通常不是整数地址。然后,找到一个地址最接近整数地址纹理像素。...各向异性图元像素在映射到纹理像素时,它形状会发生变形。 ​ 各向异性纹理过滤可以和线性过滤或mipmap过滤联合使用。 ​...忽略纹理坐标的整数部分,并将纹理图拷贝粘贴在物体表面上,这样才能做到无缝连接。 ​...为什么费事地把6个独立纹理结合为一个单独纹理,只使用6个各自独立不行吗?这是因为cubemap有自己特有的属性,可以使用方向向量对它们索引和采样。...就像一般影像一样,贴图大小愈大,它图像就愈精细。事实上,贴图往往需要比一般影像更大。因为,在 3D 场景中,观察者可能会很靠近贴图,使得贴图需要放大很多倍,而造成模糊现象。

2.5K21

童欣:从互动图像到智能图像

,自动地生成一些物体材质贴图。...比如说,它高光贴图、Diffuse贴图和它法相贴图,有了这些贴图之后,我们就可以把这些材质映射到任何一个新虚拟物体上进行绘制。传统中这个工作我们艺术家每天都在做。...,和下面的这个真实材质贴图相比较,我们能看到我们生成结果更加逼近于原始、真实材质贴图。...我们不仅仅想生成虚拟内容,我们想,当我们计算机都这么发达了,当大家做了很多虚拟东西时候,我们想把虚拟东西带到真实世界中来。在传统中这些制造和设计过程是非常繁琐和艰难为什么呢?...,有些地方我们希望它硬一点,这样充气时候它不太容易变形,有些地方我们希望它稍微软一点,这样充气地方它变形就会大一点。

94750

Unity通用渲染管线(URP)系列(十五)——粒子(Color and Depth Textures)

但是,GPU实例化不起作用,因为粒子系统为此使用了过程绘制,我们将不在本教程中介绍。取而代之是像广告牌粒子一样,将所有粒子网格合并为一个网格。 ?...(Gizmos识别了深度) 4 Distortion 我们还将支持Unity粒子另一个功能是变形/扰动,该变形可用于创建诸如热量引起大气折射之类效果。...同时,深度在这种情况下不起作用,因此比片段本身更靠近摄影机平面的片段颜色也会被复制。清除调试可视化文件后,请清除它。 ? 是否可以避免在片段前面采样? 是的,在一定程度上。...(粒子扰动贴图) 将关键字切换着色器属性以及变形贴图和强度属性添加到UnlitParticles。变形将作为屏幕空间UV偏移应用,因此需要较小值。...让它对变形贴图进行采样并像基础贴图一样应用flipbook混合,然后通过distortion strength解码法向缩放法线。我们只需要向量XY分量,因此丢弃Z。 ?

4.5K20

图扑 Web 可视化引擎在仿真分析领域应用

本文针对以下 6 种呈现方式讨论使用图扑 SDK 实现方法:模型表面贴图模型三维网格粒子流贴图粒子流体体绘制点云以下介绍方法中,为了提高前端性能和用户体验,涉及到大量数据处理操作都可以放到服务器上实现...实现方法:根据模型上每一个点 value 值计算出此点贴图 UV 值。实现原理图如下:有以下两种情况需要用插值算法重新生成数据:模型表面贴图模型三维网格下图是实现原理。...由于是一个三维体,无法用贴图方式给出网格颜色信息。此时需要用插值算法计算出规则空间网格场信息。比如在 x,y, z 整数点插值采样。将采样获得空间场信息以材质方式传给图扑 SDK。...粒子流贴图对于需要在一个面上展示流体场,比如风场,水流场,压力场等,需要以动态方式呈现,可以使用图扑粒子插件实现。系统基本原理如下图:二维流体场信息作为贴图资源传给图扑 SDK。...种体绘制算法有多种:光线投射算法、抛雪球算法、错切变形算法。三种算法相比较,光线投射算法计算量相对较大,但是绘制图像质量较高,有利于保留图像细节,这里我们选用光线投射算法。

1.5K20

游戏模型建模中使用3DMAX问答总结

6、为什么我用Fit做出来模型总不是我预想样子答:也许x.y轴放样物体搞反了,调过来试试。 7、请问怎么用4.0版本制作树木? 答:画出树造型在贴图时使用凹凸贴图,不过最后效果与贴图材质有关。...大面积地做的话,最好找个插件,贴上透明贴图和图案,就成了。 8、我经常用3d画建筑效果图,但这一次需要画几座山连在一起规划鸟瞰图,不知用什么方法对山建模教准确,较方便快捷?...9、想把圆柱体段数增加,因为进行大扭曲时,它会变形,不圆滑,而系统只能提供200段,还能不能改? 答:请换一种方式! 放样!...10、为什么MAX没有门和窗选项? 答:从3。0版本后就没有了门和窗直接建模工具了,其实这二样东西很容易用普通建模而成。 11、我在用方体和球形做布尔运算后为什么参数不能改变了呢?...24、loft放样fit变形,我试了很久都没有成功,这个功能的确很少用,但是我很想知道是怎么做!求教,谢谢!

1.2K30

【笔记】《计算机图形学》(11)——纹理映射

, 广义用法纹理映射有时还用来调整表面形状, 反射, 阴影等等信息 而在纹理映射时候有很多可能发生问题, 主要是纹理映射时可能会发生失真的变形和纹理映射后可能由于采样关系产生走样失真的问题 --...尺度变形: 纹理在映射前后最好能保持相同大小 形状变形: 纹理在映射前后不应有太大形状改变 连续性: 纹理映射不该有太多接缝, 也就是映射函数最好是连续函数 对于纹理映射函数, 需要提到有一种情况可以得到很好纹理映射函数...为了解决走样问题, 我们回想前面第9节信号处理部分中会提到, 方法是提高采样频率和进行滤波. 但是要知道为什么映射纹理会产生走样, 我们首先要了解像素足迹概念. ?...关键在于我们知道ψ函数是弯曲变形元凶, 我们在高数中知道泰勒展开可以用来逼近任意符合条件函数形状, 由于像素本身尺度就很小, 所以我们可以用下面式子中一阶泰勒展开来逼近点x0附近值, 在式子中...但是此时得到两个新坐标轴经常是不垂直, 因此我们再按照变形xy向量对这个两个坐标轴进行求导. 这个求导得以让我们得到相互垂直且尺度比例得到保持uv轴, 效果如示意图右边.

3.8K41

人脸融合?没有想象中难!

各大相机软件都有美颜、贴图、换发型、变脸等功能。天天P图与Face++也都推出人脸处理 API,不过价格方面就有点不亲民了。于是本人将之前研究完成的人脸融合算法开源出来。...四个正整数数组,依次代表人脸框左上角纵坐标(top),左上角横坐标(left),人脸框宽度(width),人脸框高度(height),通过设定改参数可以减少结果大范围变形,把变形风险控制在人脸框区域...结果展示 三、再次取点后融合脸部 对步骤二转换后带融合图片再次取关键,然后与模特图关键点一起做三角融合成新图片 dst_img = morph_img(src_img, src_points,...,然后运用三角仿射将模特图片脸部轮廓、关键点变形成上一步得到脸部关键点 src_img = tran_src(src_img, src_points, dst_points, face_area) 处理结果...结果展示 五、将融合后脸部贴到模特图上 最后一步是将融合后新图片脸部区域用泊松融合算法贴到模特图上。

5.5K31

Unity通用渲染管线(URP)系列(四)——方向阴影(Cascaded Shadow Maps)

从设置中检索整数形式图集大小,然后以纹理标识符作为参数,在命令缓冲区上调用GetTemporaryRT,再加上其宽度和高度大小(以像素为单位)。 ?...为什么Z缓冲区要反转? 最直观是,0代表零深度,1代表最大深度。OpenGL就是这样做。但是由于深度缓存器中精度方式受到限制以及非线性存储事实,我们通过反转来更好地利用这些位。...由于阴影投影是正交且呈正方形,因此它们最终会紧密契合其剔除球,但还会覆盖周围一些空间。这就是为什么可以在剔除区域之外看到一些阴影原因。...(收紧后阴影) 这完全适用于完全位于近平面两侧阴影投射器,但由于仅影响其某些顶点,因此与该平面交叉阴影投射器会变形。...对于小三角形而言,这并不明显,但是大三角形最终可能会变形很多,使其弯曲,并经常使它们沉入表面。 ? (非常长立方体上,阴影产生了变形) 可以通过将近平面向后拉一点来缓解该问题。

6.4K40

近期工作与学习技术总结

色彩表现力 这个是一些小引擎容易忽略地方. 可能引擎各种功能都有, 但是为什么做出来东西不够出彩呢? 除去美术自身原因, 程序也要好好与美术进行沟通....很多时候美术有一些很不错想法, 确总是做不出来, 这个就是程序责任了. 以WOW技术为一个起始点, 我想可以从这些方面来改善: 法线贴图....如果不做, 你就会听到美术抱怨: 为什么我画贴图放到游戏里不打光颜色也会变-_- Color grading, 后期校色, 有助于美术调整整个场景气氛 补光, 避免暗面死黑或单调....评估了Havok Destruction, 共有3种表现: 解体, 破碎, 变形. 当然, 全动态可破碎场景确实很酷, 代价也不小, 不管从金钱上还是人力上....时间成本 现在越来越觉得时间才是让人比较容易忽略因素. 往往天分什么是次要.  当技术不再是瓶颈后, 如何有效去分配自己时间与别人时间, 才是值得好好考虑事情.

49940

基础渲染系列(十七)——混合光照

(着色器淡出 标准VS我们) Unity长期以来一直使用混合照明模式,但实际上在Unity 5中是不起作用。Unity 5.6中才添加了新混合照明模式,这就是我们现在正在使用模式。...事实证明,当同时使用定向阴影和光照贴图时,UNITY_LIGHT_ATTENUATION不会执行此衰减,混合模式主定向光就是这种情况。所以,我们必须手动进行。 为什么在这种情况下不让阴影消失?...该功能还处理了光探测器代理卷(LPPVs)衰减,但是我们尚不支持这些功能,因此我删除了该代码。这就是为什么函数具有世界位置参数原因。...(Distance Shadowmask 模式) 为什么我没有距离遮罩选项? 在Unity 2017中,你使用阴影遮罩模式是通过质量设置控制。 使用距离阴影遮罩模式时,所有内容都使用实时阴影。...它还需要使用实时光源来确定必须将光照贴图调暗多少。这就是为什么在切换到此模式后我们得到双重照明。 减光照明是一个近似值,仅适用于单个定向光。因此,仅支持主定向光阴影。

2.5K40

【笔记】《Deep Detail Enhancement for Any Garment》思路

转为二维法线图来处理是比较成熟纹理高清化方法,这样可以保证衣服整体褶皱形状不变情况下可以对一些褶皱细节进行增强。上面图中法线明显被烘焙到对象法线贴图空间中所以呈现了彩虹色。...---- 法线图裁剪 由于不同材质布料在运动时产生褶皱会有不同特性,例如丝绸和粗麻布不同柔性得到褶皱不同,为了减少网络处理素材尺寸数量级,文章用批剪裁将法线贴图裁剪为很多小分块,后面再进行融合...三维还原部分除了可以直接用法线贴图方法应用外,文章还使用了基于法线图顶点变形方法和一个后处理约束方法。...,这主要也是配合权重让表面不要过度变形 完成对顶点第一步变形后,由于第一步无视物理碰撞变形可能导致某些部分发生穿模现象,文章又使用了一个2012年提出后处理步骤进行约束,相似地迭代最下化下面这条能量函数...,其中DeepWrinkles效果对于文章中数据集效果最好,但是难以应对没有见过数据,这里不知道为什么超分辨率算法似乎效果非常糟糕,可能没有进行过专门训练 ?

1.2K30

Unity通用渲染管线(URP)系列(八)——复杂贴图(Masks, Details, and Normals)

添加对MODS遮罩贴图支持。 介绍次要细节贴图。 执行切线空间法线贴图。 这是有关创建自定义可编程渲染管道系列教程第八部分。通过增加对遮罩,细节和法线贴图支持,可以创建复杂表面。...(反照率贴图) 使用该反照率贴图,并使用我们Lit着色器创建新材质。我将其平铺设置为2 x 1,以便让正方形纹理环绕一个球体而不会被拉伸得太多。但默认球体极点总是会变形很多,这是无法避免。...丢失高多边形几何体法线向量在法线图中烘焙。可替代地,法线贴图也可以通过程序生成。这是我们电路这种贴图。导入后将其“纹理类型”设置为“法线贴图”。 ?...因此,存储法线空间会弯曲以匹配几何图形表面。唯一常数是该空间与表面相切,这就是为什么它被称为切线空间原因。该空间Y上轴与表面法线匹配。除此之外,它还必须具有与表面相切X右轴。...将导入纹理转换为法线贴图,然后启用“Fadeout Mip Maps”,以使其像其他细节一样淡出。 ? (细节法线贴图为什么不合并两个贴图? 虽然这样效率更高,但生成这样贴图却更加困难。

4.2K40

css笔记 - transform学习笔记(二)

transform转换 CSS transform 属于2D/3D上转换、变形效果。他不是一个动画,他就是变形。比如正方形变平行四边形,再变圆形。都是形状变成另一个形状。...只要有一段时间内过渡效果,就形成了动画。 主要功能有:拉伸变形、倾斜、位移、缩放、旋转。...能为负 D name 含义 中心点 备注 2 skew(xdeg,ydeg) 拉伸变形 默认中心点就是盒模型中心点 2 skewX(xdeg) 水平方向拉伸变形 同上 2 skewY(ydeg)...translateZ(z) 只是用 Z 轴值位移 同上 括号里边, 数值后边一定要有单位值 ,如果没有单位值不起作用 translate执行位移,对于周围元素不产生任何影响。...大致属性同perspective perspective-origin : 50% 200px; 为什么第一个是百分比,第二个是像素值?

1.7K10

游戏“捏脸”需要高手教程?用这个AI模型,一张肖像照就能快速生成

图|一款游戏捏脸过程 不过,目前大多数现有的创建和定制游戏角色方法都要求玩家手动调整角色面部特征,以便重新创建自己面部或捏成其他人面部,一个玩家通常需要几个小时耐心去手动调整数百个参数(例如脸型...让仿真人脸进入游戏世界 现有游戏中的人脸定制系统,很多是基于三维变形模型(3DMM)计算实现,作为一种经典三维人脸形状和反照率统计模型,3DMM 在人脸分析、模型拟合、图像合成等方面有着广泛应用...为了消除光照和遮挡影响,他们训练了一个神经网络,在一个通用训练范式下,从 “野生” 人脸图像中预测一个完整漫反射贴图。...因此,MeInGam 网络能够以半监督方式进行训练,减少对预定义纹理贴图依赖。 最后,通过将生成的人脸网格和纹理加载到游戏环境中,就可以为玩家创建逼真的游戏角色。...最后,使用游戏网格、精细纹理贴图、姿势和照明系数,研究人员使用可微渲染器将面部网格渲染为 2D 图像,并强制该图像与输入面部照片相似。

2.4K20

什么是计数排序?

假定20个随机整数值如下: 9,3,5,4,9,1,2,7,8,1,3,6,5,3,4,0,10,9 ,7,9 如何给这些无序随机整数排序呢?...非常简单,让我们遍历这个无序随机数列,每一个整数按照其值对号入座,对应数组下标的元素进行加1操作。 比如第一个整数是9,那么数组下标为9元素加1: ?...第二个整数是3,那么数组下标为3元素加1: ? 继续遍历数列并修改数组...... 最终,数列遍历完毕时,数组状态如下: ? 数组每一个下标位置值,代表了数列中对应整数出现次数。...我们仍然以刚才学生成绩表为例,把之前统计数组变形成下面的样子: ? 这是如何变形呢?统计数组从第二个元素开始,每一个元素都加上前面所有元素之和。 为什么要相加呢?...比如元素 90 个数为1, 94个数也为 1,那么向后叠加后94对应统计数组(变形后)为 2 ,那它就最终位置就是第二。

52910
领券