关于Albedo贴图、颜色贴图、Metallic 贴图、Specular贴图、法线贴图、视差贴图、凹凸贴图、Height Map高度贴图、AO 贴图Occlusion 贴图、Emission 贴图等

2023-11-17

在学习unity的过程中,被各种贴图弄得晕头转向,为了弄清楚各种贴图,查询了很多资料,粗略的整理如下,只要耐心看完,对贴图的基本用法基本上就没问题了。

1.Albedo 贴图 (可以看做是Diffuse颜色贴图)

Albedo:反照率[贴图];用于体现模型的纹理,颜色。

反照率贴图本身是一张颜色与纹理的贴图。

该选项有贴图属性,也有颜色属性。

两个属性可以单独使用,也可以组合使用;

当颜色属性为纯白色时,则不影响贴图的效果;

当颜色属性为其他颜色时,则叠加贴图效果。

2.Metallic 贴图 **

金属度[贴图];用于体现模型的金属高光反射;

金属度贴图本身是一张灰白图,越白的地方,金属度越强烈,越黑的地方金属度越低。

Smoothness:平滑度

介于 0 和 1 之间的一个值,越小,平滑度越低,越大,平滑度越高。

3.Specular

Specular:镜面[贴图],类似于“Metallic 金属度”贴图。(要使用Standard(Specular setup)才有)

PBR 贴图的制作方式不同,最终关于“金属部分”的表现,出现了两种类型的贴图,Metallic 和 Specular。

4.Normal Map 贴图 **

Normal Map:法线贴图;用于增加模型的细节;只是改变的表面上的光照结果,并没有真正改变表面上的形状
法线贴图本身是一张蓝色的凹凸图。

Parallax mapping:视差[贴图],比 Normal Map 更有立体感的一种贴图方式;
视差贴图是一种NormalMapping算法的增强算法,其本质上和NormalMapping没有区别。优势是只需要增加3个HLSL语句和一个控制纹理通道(只需要几个GPU指令,代价小到可以忽略)就可以显著的增加物体表面的深度感。
Parallax mapping使用的也是单张的控制纹理。一张NormalMap。如果我们用AcdSee来看这张NormalMap,我们会发觉似乎和NormalMapping用的控制纹理是一样的。而如果我们打开这张NormalMap的Alpha通道,就会发现其中的玄机所在。原来Alpha通道里存储的是对应这张NormalMap的BumpMap!(就是HeightMap,就是用饱和度记录表面高度)
Parallax mapping是如何达到增加NormalMap的效果的呢。我们要从NormalMap的特性说起。我们假设在NormalMap表面制作一个凸起。然后我们转转角度看看。我们会发现,其实这个凸起的背对我们视线的面~并不会因为我们视角的逐渐放平而消失--这显然是不正确的,要知道背后的东西应该是看不见的才对。因此Parallax mapping就是来缓解这个问题的,具体的代码这里不提。我来试着白话解释一下原理。其实为了不让我们看见“不该看的东西”应该试着挪动纹理坐标……把那个不该给玩家看见的图素(Texel)跳过去。也就是说根据高度图提供的数据,把那个位置较低那个纹理的后面的纹理向前拉。相当于在图素采样的时候刻意的把那个图素跳过去。这样那个不该被玩家看见的像素就会因为图素的消失而不见了--很明显,这个算法是不太站得住脚的,虽然计算的时候会参考玩家视线的角度。但仍然是一种来自于经验的估算。值得欣慰的是,对于本身NormalMap所需要表现的微小细节来说,这样的改进已经看上去不错。因此开始有大量的游戏决定采用。特别是它的优点是所消耗的代价极为有限,而需要增加的工作量只是让美工把高度图保存到Alpha通道里而已。很划算。
主要用于地面,建筑等效果的体现。

5.Height Map 贴图(又叫Bump凹凸贴图)
凹凸映射是一种负责光方向的纹理映射。凹凸映射是补色渲染技术(Phong Shading Technique)的一项扩展,只是在补色渲染里,多边形表面上的法线将被改变,这个向量用来计算该点的亮度。当你加入了凹凸映射,法线向量会略微地改 变,怎么改变则基于凹凸图。改变法线向量就会改变多边形的点的颜色值。就这么简单。

6.Occlusion 贴图
Occlusion:AO 贴图;AO-Ambient Occlusion,“环境吸收”或者“环境光吸收”。
AO 贴图本身是一张灰白图。
主要用于改善阴影,给场景(模型)更多的深度,有助于更好的表现模型的细节。

7.Emission 贴图
Emission:自发光[贴图],让模型自发光;
Unity 里面能作为光源存在的除了灯光组件和天空盒,标准 Shader 里面的Emission 贴图也是可以作为一种光源的。

8.Detail Mask
Detail Mask:细节遮罩[贴图];
这个贴图是配合“次贴图区域”中的 Detail Albedo,Normal Map 两张贴图配合使用的,次贴图区域中的这两张很多是平铺的贴图,效果会作用于模型的全部,我们使用 Detail Mask 将一些不需要被“次贴图”影响的部分独立出来。

二、Secondary Maps 次贴图区域
1.Detail Albedo x2
Detail Albedo x2:细节反照率[贴图];
作用是对主 Albedo 贴图的一个细节深入表现;

2.Normal Map x2
Normal Map x2:细节法线[贴图];
作用是对主 Normal Map 贴图的一个细节深入表现;

3.Tiling
Tiling:瓷砖[属性];
可以对贴图进行分块的展现

AO-Ambient Occlusion,“环境吸收”或者“环境光吸收”。

什么是Occlusion?
Occlusion 就是提供了非常精确和平滑的阴影,就好像是全局照明的结果。在你最终渲染后有多种方法来合成这些阴影会在真正意义上改善图像,它主要能改善阴影,给场景更多的深度,真正有助于更好的表现出模型的所有细节。

通俗的来讲就是:AO不需要任何灯光照明,它以独特的计算方式吸收“环境光”(同时吸收未被阻挡的“光线”和被阻挡光线所产生的“阴影”),从而模拟全局照明的结果,它主要是通过改善阴影来现实更好的图像细节,尤其在场景物体很多从而到处阻挡着光线导致间接照明不足时,AO的作用会更加明显。

那么要问AO到底能带来哪些效果(好处)呢?具体的说,AO可以解决或改善漏光、飘和阴影不实等问题,解决或改善场景中缝隙、褶皱与墙角、角线以及细小物体等的表现不清晰问题,综合改善细节尤其是暗部阴影,增强空间的层次感、真实感,同时加强和改善画面明暗对比,增强画面的艺术性。

Normal map :
Normal map (法线贴图) 它的作用是模拟出高模上的一些细节纹理,特别是将高模上的圆滑和粗糙度投射到低模上,让低模也有高模的效果。
因为高模的面数非常多,导入引擎后电脑是跑不动的,所以用低模加上法线贴图就能很好的解决这个问题。
因为Normal Map只是改变的表面上的光照结果,并没有改变表面上的形状。因此,表面上看来,似乎只要是不接近水平,NormalMap就不会有视角问题。其实不然,NormalMap因为不能实现自身内部的遮挡,因此不能表现平面上凹凸起伏比较大的场合。比如说我们一个桌面上突出一块,然后在突出的这块东西边上放一支牙签。如果用Normal Map表现,会发现。根据经验,这个凸起会很轻易的挡住我们的视线,让我们看不见那支牙签。可是Normal Map却不会这么做。因此我们一直能看见障碍物背后的东西,这一点是个问题--也就是说只有在垂直于平面的时候NormalMap才会发挥最好的作用。这样一来,Normal Map只能用在大家对遮挡关系不敏感的场合,比如场景等,不是不能用于人物,而是用Normal Map的人物不太经得起特写,放大了,角度刁钻了都容易穿帮。

虽然Normal Map有个不能平视的巨大问题,但是依然是好处远大于小障碍,因此还是非常值得推广的。后面的几种新兴算法其实都是由Normal Mapping发展起来的,因此做为基础的东西,也还是最有理解价值的。

Diffuse map:
Diffuse map(色彩贴图)它的作用是给模型上颜色和材质。

Speculer map:
Speculer map(高光贴图)它的作用是表现模型一些质感,世界万物中所有物体,不同材质,在光照下,它们的反射光的强弱都不同。所以我们利用这个特性,制作了这张高光贴
图来模仿不同材质在光照效果下反射出不同的效果。

采用法线贴图来描绘物体表面细节的凸凹变化;颜色贴图来表现物体的颜色和纹理;高光贴图来表现物体在光线照射条件下体现出的质感,增加贴图的大小;

3.Parallax mapping 视差贴图
(因为后面的算法都是基于NormalMap的应用,可能看上去没有NormalMapping那么长了,但内容肯定一样精彩的!)

视差贴图是一种NormalMapping算法的增强算法,其本质上和NormalMapping没有区别。优势是只需要增加3个HLSL语句和一个控制纹理通道(只需要几个GPU指令,代价小到可以忽略)就可以显著的增加物体表面的深度感。但是NormalMap中出现的问题,Parallax mapping基本上都有--特别是视角接近平行的时候,凹凸感消失的问题,并没有明显改善--其实这个使用NormalMap带来的问题就像是液晶屏的可视角度问题一样令人挥之不去。或者按照FXCarl个人的说法--Parallax mapping才是真正具有实用价值的NormalMapping。

目前实践证明,这种技术非常适合XBOX360和PS3这样的新世代游戏主机(都上市一年了还用次世代……我真受不了现在有些人)。例如360游戏SEGA死刑犯就是使用的和PC游戏FEAR一样的Monolith引擎--使用Parallax mapping。

Parallax mapping使用的还是单张的控制纹理。一张NormalMap。如果我们用AcdSee来看这张NormalMap,我们会发觉似乎和NormalMapping用的控制纹理是一样的。而如果我们打开这张NormalMap的Alpha通道,就会发现其中的玄机所在。原来Alpha通道里存储的是对应这张NormalMap的BumpMap!(就是HeightMap,就是用饱和度记录表面高度)

现在插入一点理论课程。大家留心读上面的文字,会看见一个控制纹理的词汇。这个词汇是这里要重点解释的。因为理解控制纹理,在成为新世代美工的需求中是相当重要的。按照大家这么多年美术做下来的经验,对于图素(Texel,纹理上的一点)的理解肯定是RBG3个色彩带一个表示透明度的Alpha通道。但是在我们的渲染器和程序员的眼里,它可不是我们美术朋友们看见的东西。他们看见的是一个4通道的矢量(其实可以理解成四个数的组合)。这4个数字的取值范围分别是0到255。通过这个空间,其实可以用来做更多别的事情--最常用的就是记录表面的物理细节。至于为什么要用控制纹理呢?FXCarl前两天听一个朋友有这么个说法:我觉得NormalMap的效果也没什么,直接画也画的出来的。其实这个说法一点都没错,但是要知道,这个想法是过时的。因为NormalMap并非用于著色,而是用于更真实的生成色彩。重所周知,用画的方式,做静帧固然可以做到无限好。可是动起来怎么办?如何才能保证在不同的光照关系下依然保证最终著色的结果正确?唯一的做法,就是每帧重画一遍。如何才能做到最有效的重画?那就要把重画的参考告诉我们的渲染器,让它来帮你做一些简单的工作,这就是控制纹理的作用--把你想要实时改变的东西告诉渲染器。其实控制纹理的范围很大,除了NormalMap还有很多,比如说Nvidia的DEMO曾经用纹理存储物体表面在阳光下的色彩变化规律。把艺术家想要实时改变的东西压缩在纹理中告诉渲染器是一件相当有挑战性的工作,当然也会获得更令人赞叹的画面。请接受控制纹理,那是让艺术家把一个瞬间的精确著色变成一个普遍适用的著色的利器!

Parallax mapping是如何达到增加NormalMap的效果的呢。我们要从NormalMap的特性说起。我们假设在NormalMap表面制作一个凸起。然后我们转转角度看看。我们会发现,其实这个凸起的背对我们视线的面~并不会因为我们视角的逐渐放平而消失--这显然是不正确的,要知道背后的东西应该是看不见的才对。因此Parallax mapping就是来缓解这个问题的,具体的代码这里不提。我来试着白话解释一下原理。其实为了不让我们看见“不该看的东西”应该试着挪动纹理坐标……把那个不该给玩家看见的图素(Texel)跳过去。也就是说根据高度图提供的数据,把那个位置较低那个纹理的后面的纹理向前拉。相当于在图素采样的时候刻意的把那个图素跳过去。这样那个不该被玩家看见的像素就会因为图素的消失而不见了--很明显,这个算法是不太站得住脚的,虽然计算的时候会参考玩家视线的角度。但仍然是一种来自于经验的估算。值得欣慰的是,对于本身NormalMap所需要表现的微小细节来说,这样的改进已经看上去不错。因此开始有大量的游戏决定采用。特别是它的优点是所消耗的代价极为有限,而需要增加的工作量只是让美工把高度图保存到Alpha通道里而已。很划算。

但是对于技术研究者来说,这样的表现显然还是不够令人满意的。因此,顺着视差贴图的思路向下发展,借助ShaderModel3.0的出现。出现了一个真正从物理上改变物体表面的算法,这就是我们下一篇文章需要介绍的Displacement Mapping

4.Displacement mapping 位移贴图

和前面说的几种方式不同,DisplacementMapping是一种真正改变物体表面的方式。通过一种称为micropolygons(微多边形)tessellate(镶嵌)的技巧来实现真正的改变物体表面的细节。

具体流程是这样的。首先,根据屏幕的分辨率,在模型的可见面上镶嵌和最终象素尺寸相同的微多边形。这个过程叫做镶嵌。然后读取一张Bump贴图。根据表面的灰度确定高度。然后根据镶嵌所得到的多边形,沿着原先的表面法线方向移动微多边形。接着再为新的多边形确定好新的法线方向。此时,物体的表面确实已经真的增加出了细节。

其实这种技巧,我们在使用ZBrush的时候就可以看见了。大家用过Zbrush的时候会知道,在表面刷过的细节,只有在画面静止下来之后才会越来越清晰。而微多边形镶嵌起到的就是类似的作用。只增强面对屏幕的多边形的表面粗糙细节,而不是整个模型。因此性能代价并不会像直接上高模那么大。相比来说位移贴图在效果上是没有任何瑕疵的,但是也未必没有缺点。

首先就是,对硬件的要求很高,必须支持ShaderMode3.0才可以,因为只有支持SM3才可以在顶点阶段进行纹理操作。同时镶嵌对于性能的消耗也不小。不过其实就对于GPU的压力而言,反而似乎要更合理一些(因为对顶点的运算要求提高,对象素级别的运算要求反而没有影响)想必在将来的DX10统一渲染构架中会更有价值。

和我们介绍的所有凹凸贴图技术相比,位移贴图是唯一真正改变多边形表面几何形状的方法。相比之后将要介绍的切空间光线追踪算法,这种算法的性能消耗虽然并不占优,但其实要更为合理。给予画面更多特效的机会,同时更有趣的是,其实他和其他基于象素着色的凹凸贴图并没有什么冲突。其实这种位移贴图在新世代主机的游戏中大家都有可能见到。只是可能不是大家想得到的地方。

它可以用来实时生成大面积的户外地形!这是其他任何凹凸贴图方式所不能比拟的!

ReliefMapping 和 ParallaxOcclusionMapping 和 ConeMapping 浮雕纹理贴图和视差阻塞贴图和圆锥跟踪贴图

三种利用切空间光线追踪先进算法的技术,三种方法分别是光线跟踪,光束跟踪和圆锥跟踪算法。当然可以说后面的都是第一种的改进。这些都是面向未来的技术,很有前途。ReliefMapping甚至现在可以实现扣环这样的复杂几何表面,并且可以处理不能平视的问题!

在宏观意义上,Base Color Map == Albedo Map == Diffuse Map。他们都是一张RGB纹理。
在PBR指南中,PBR工作流程分成了两个派系:

  1. Metal/Roughness
  2. Specular/Glossiness
    这两个派系在纹理运用上的共同点是:
    使用相同的AO、Normal、Height纹理。这三张纹理在PBR指南中叫做Common Maps(通用纹理)。
    不同点是:
    Metal/Roughness工作流程使用:Base Color、Roughness、Metallic三种纹理来作为基础纹理。
    Specular/Glossiness工作流程使用:Diffuse、Glossiness、Specular三种纹理来作为基础模型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于Albedo贴图、颜色贴图、Metallic 贴图、Specular贴图、法线贴图、视差贴图、凹凸贴图、Height Map高度贴图、AO 贴图Occlusion 贴图、Emission 贴图等 的相关文章

  • [Unity XLua]热更新XLua入门(一)-基础篇

    Aladdin XLua 前言 前段时间腾讯开源了一个内部热更框架XLua在Unity开发群里引起一阵热议 也受到广大开发者的热捧 然后我当然也抱着好奇的心去学习学习 后面也会将扩展之后的工程放在git上 大家一起学习交流 在此感谢XLua
  • Unity Shader入门精要第七章 基础纹理之遮罩纹理

    Unity系列文章目录 文章目录 Unity系列文章目录 前言 一 实践 参考 前言 遮罩纹理 mask texture 是本章要介绍的最后一种纹理 它非常有用 在很多商业游戏中 都可以见到它的身影 那么什么是遮罩呢 简单来讲 遮罩允许我们
  • Unity3D:按键生成物件,Instantia…

    在按下按键之后 可以在画面中生成之前定义好了的物体 这里使用了Instantiate函数来生成 1 先在游戏中定一个空物件GameObject 创建空物件快捷键 ctrl shift n 2 在视图中放置 3 编写脚本 脚本 SpaceCh
  • Unity中实现倒计时的几种方式

    1 Time time using UnityEngine public class TimeTest MonoBehaviour public float secound 10 void Update Timing private flo
  • Unity中UI框架的使用1-添加面板、显示Loading页面

    其中BasePanel和Canvas都是挂在面板的预制物上的 1 导入我们的UI框架 本篇文章中有用的是两个UIPanelType NUIManager和NBasePanel 会放在文章最后供大家使用 2 先将我们做好的Panel设置成预制
  • Unity与Android的Back键冲突解决

    Unity与Android的Back键冲突解决 上一篇的最后留下了两个问题 Unity视图下横屏闪退 Unity视图下Android无法响应back返回上一activity 对于第一个问题 应该是Unity横屏下视图的某些设置跟Androi
  • unity后台加密时间锁

    前言 在做一些项目的时候 有些不良甲方在给完项目后会有不给尾款的情况 之前都是加一些水印啥的 感觉不是很方便 第一不美观 第二如果甲方给完尾款后还得重新打包去水印 然后又做过一个本地的时间锁 等到时间 程序直接退出 但是感觉还是不方便 有时
  • unity工程崩溃资源找回

    1 Unity死机未保存场景 当你在Unity中编辑场景 突然死机时 可以在项目文件目录中找到Temp文件夹 双击文件夹 找到 Backupscenes文件夹 把后缀为 backup的文件后缀改为 unity 然后拖进Unity的Proje
  • unity: C#的Action Event Delegate的异同

    目录 一 Action 二 Event 三 Action和Event区别 四 Delegate 总结 Action Event Delegate的异同 前言 Action Event和Delegate都是C 语言中的重要概念 分别用于管理函
  • mac下搭建cocos2d-x3.2开发环境

    1 软件 Xcode Ant apache ant 1 9 4 bin tar gz Jdk jdk 8u45 macosx x64 dmg 有的mac系统上没有自带 Ndk android ndk r10d darwin x86 64 b
  • Unity保存图片到相册

    Unity保存图片到Android相册 Java 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
  • java中Keytool的使用总结

    java中Keytool的使用总结 2011 02 26 15 30 15 分类 在申请Android Map API Key的时候使用到了java中Keytool 下面转一篇介绍java中Keytool的文章 http blog csdn
  • Unity3D的四种坐标系

    1 World Space 世界坐标 我们在场景中添加物体 如 Cube 他们都是以世界坐标显示在场景中的 transform position可以获得该位置坐标 2 Screen Space 屏幕坐标 以像素来定义的 以屏幕的左下角为 0
  • 【Unity步步升】监控与检测物体的各种方案,如:射线、碰撞、挂载等...

    在制作AR模型数值控制方案的时候遇到了检测的问题 学习过程受益匪浅 故今天为大家整理带来一篇监控与检测物体的参考方案集合 目录 一 射线检测 二 物体存在检测 三 碰撞检测 一 射线检测 单射线检测 首先完成搭建场景如下图1 1 我这里用到
  • Unity旋转以及万向锁问题

    我之前研读了一些关于unity旋转相关的博客 一直想抽个时间写个总结 但是由于实习太忙一直没有写 趁着今天请了假晚上有时间把这段时间一些学习心得写出来 Unity inspector面板中的Rotation 在unity中 想必大家最先接触
  • 【原神游戏开发日志1】缘起

    原神游戏开发日志1 缘起 版权声明 本文为 优梦创客 原创文章 您可以自由转载 但必须加入完整的版权声明 文章内容不得删减 修改 演绎 相关学习资源见文末 大家好 最近看到原神在TGA上频频获奖 作为一个14年经验的游戏开发行业的老兵 我就
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • 游戏开发常用实践操作之按动任意键触发

    接下来一些笔记会对于一些大大小小的实践操作进行记录 希望对你有所帮助 在游戏中 我们经常会遇到一些按动任意键触发的操作 接下来展示核心代码 以下是对于Unity中的操作 使用的UI是NGUI 对于核心操作没有影响 你可以自己置换 void
  • 游戏开发中常见系统梳理之背包系统的实现一

    游戏中几乎都存在大大小小的背包系统 接下来我将讲述背包系统具体是如何实现的 完整源码 以下是使用unity NGUI实现 使用txt配置的方法 后续更新UGUI Json实现的背包系统敬请期待 背包中的物品我们常常将其制作成预设体 通过改变

随机推荐

  • 已解决(MongoDB安装报错)Service ‘MongoDB Server (MongoDB)’ (MongoDB) failed tostart. Verify that you have su

    成功解决 MongoDB安装报错 Service MongoDB Server MongoDB MongoDB failed tostart Verify that you have sufficient privileges to sta
  • [命令技巧]alias

    转自 http www dutor net index php 2011 03 commands alias alias 假名 别名 bash的一个内建命令 用来给常用的较长的命令定义个简短的名称 alias命令的基本格式为alias wo
  • Tomcat环境搭建部署

    目录 Tomcat 环境搭建 Win10 Tomcat部署 Tomcat是常见的免费的web服务器 Tomcat 环境搭建 Win10 自己在搭建的过程中出现了一些问题 网上找了找解决方法 发现还是有一些问题 记录一下 Tomcat下载 h
  • overflow相关面试题

    overflow 是 CSS 属性 用于控制元素的溢出内容的处理方式 当元素中的内容超出其容器时 可以通过该属性进行控制 overflow 属性通常与容器元素 如 div 或 一起使用 overflow 属性可以取以下几个值 visible
  • osgEarth的Rex引擎原理分析(五十七)osgEarth中多个着色器的源代码的编译链接过程

    目标 五十四 中的问题129 osgEarth中多个着色器的源代码的编译链接过程 1 先一个一个编译 void Shader PerContextShader compileShader osg State state extensions
  • 在Ubuntu 20.04上成功安装 rtx 3060 notebook Nvidia cuda 和基本图形驱动

    cuda Toolkits中包含了对应的图形驱动 所以只需要安装CUDA 顺便就安装了基本的显卡驱动 最好在新笔记本上安装 经常会失败 重装Ubuntu也不怕丢失重要数据 为了保存用户数据 至少把硬盘分为3个区 1 swap 32GB 2
  • 阿里云发布首台云电脑“无影”,传统 PC 已“末路”?

    作者 硬核云顶宫来源 硬核编辑部 在9月17日的云栖大会上 阿里云智能总裁 达摩院院长发布阿里云第一台云电脑 无影 这是一台长在云上的 超级电脑 只需将一张名片夹大小的 C Key 上连接一块屏幕 就可以进入专属云电脑桌面 访问各种应用和文
  • 整数规划的分支定界法

    分支定界法 把全部可行解空间进行恰当地进行系统搜索 这就是分支定界法的基本内容 我们通常把全部可行解空间反复分割为越来越小的子集 这就称为分支 并对每个子集内的解集计算出一个目标下界 针对最小值问题 这称为定界 在每次分支后 凡是界限超过已
  • 轻轨服务器一般用什么系统,原来轨道交通集成平台的优势是因为这个啊......

    原标题 原来轨道交通集成平台的优势是因为这个啊 轨道交通的重要性就不多说了 火车 高铁 地铁都是大多数人的出行首选 也因此带来铁路交通管理的困难 仅靠人力是远远不够的 必须依靠现代安防科技 但是各个安防系统无法兼容 会造成后台管理的困难 飞
  • 【registries】registrie rest-service idea 无法引入

    1 概述 因为需要 我在外网mac环境尝试本地运行registry 经过一番折腾后 运行主类报错com hortonworks registries webservice RegistryApplication java lang Clas
  • 目标检测从零开始的学习之路--原理篇

    安装相关 Anaconda官网下载安装下一步进行到底 相关环境那儿记得打勾 不然就自己添加下环境变量就好 另 一般进官网就找Download 再找相关想下载的版本 适配系统之类的 这里下载的是Python 3 7 version for W
  • 设计模式:命令模式

    命令模式很好理解 举个例子 司令员下令让士兵去干件事情 从整个事情的角度来考虑 司令员的作用是 发出口令 口令经过传递 传到了士兵耳朵里 士兵去执行 这个过程好在 三者相互解耦 任何一方都不用去依赖其他人 只需要做好自己的事儿就行 司令员要
  • SSM家庭理财个人理财系统-JAVA【数据库设计、源码、开题报告】

    第一章 绪论 1 1 课题背景 目的及意义 从 20 世纪末以来 在全球经济日趋一体化的背景之下 中国经济也得到了飞速的发展 家庭收入也快速增长 居民的消费结构发生了巨大变化 购置房产 旅游 汽车消费 教育等成为居民消费重点 现代家庭越来越
  • 南京邮电大学算法分析与设计实验三(回溯法)

    文章目录 问题一 回溯法求解 8 皇后问题 一 题目 二 代码 三 实验结果 问题二 回溯法解决装载问题 一 题目 二 代码 三 实验结果 思考题 N皇后输出独立解 一 题目 二 代码 三 实验结果 问题一 回溯法求解 8 皇后问题 一 题
  • maven(总)

    maven maven的简介 maven主要服务于基于java平台的项目构建 依赖管理和项目信息管理 主要体现在项目和管理 瀑布式开发 在做项目的时候要求有明确的需求 必须按照需求一步一步去做好规划 在项目的运行过程中严格的产出一些文档 敏
  • jenkins使用SSH自动发布到远程服务器的注意事项

    1 配置远程服务器 在我们的全局配置里配置SSH服务器时 这个地方写我们服务器接收的根路径 2 部署项目配置SSH传输文件的问题 重点 下图是我们填写的正确方式 下面我做详细介绍 a 使用mavne打包发布后端项目的时候 我们构建完成后选择
  • hadoop查看fsimage

    一 使用hdfs命令获取FsImage数据文件 hdfs dfsadmin fetchImage tmp meta 注意 这是本地文件系统 二 执行命令解析fsimage文件 hdfs oiv i tmp meta fsimage 0000
  • python中OS模块;

    OS模块 OS模块简单的来说它是一个Python的系统编程的操作模块 可以处理文件和目录这些我们日常手动需要做的操作 在自动化测试中 经常需要查找操作文件 比如查找配置文件 从而读取配置文件的信息 查找测试报告等等 经常会对大量文件和路径进
  • libcurl 库处理url链接字符串包含中文导致执行失败问题

    1 问题 通常见到的url链接地址一般都是不包含中文的或者已经将中文转码过的 但有些情况下仍然有中文情况 这时候使用curl easy setopt curl CURLOPT URL sUrl c str 会执行失败 因此需要想办法进行字符
  • 关于Albedo贴图、颜色贴图、Metallic 贴图、Specular贴图、法线贴图、视差贴图、凹凸贴图、Height Map高度贴图、AO 贴图Occlusion 贴图、Emission 贴图等

    在学习unity的过程中 被各种贴图弄得晕头转向 为了弄清楚各种贴图 查询了很多资料 粗略的整理如下 只要耐心看完 对贴图的基本用法基本上就没问题了 1 Albedo 贴图 可以看做是Diffuse颜色贴图 Albedo 反照率 贴图 用于