当前位置: 首页 > news >正文

凹凸贴图(Bump Mapping)

凹凸贴图是什么?

        我们首先来看low-poly(多边形数较少)mesh和high-poly(多边形数量较多)mesh之间的不同。首先,最明显的不同就是high-poly能够表现出更多细节,但high-poly有比较大的性能开销。有没有一种比较折中的办法使得我们既能够让mesh看起来细节更加丰富,同时多边形数量尽可能少呢?

        这种方法就是bump mapping,使用了凹凸贴图,可以在多边形数量较少的情况下,也能表项出较多的表面细节,性能上根更具优势。

        在凹凸贴图中,有两种主要使用的贴图类型:法线贴图和高度贴图(视差贴图)。

        法线贴图(normal map)会在整个表面上设置法线的值,这些值会在shader中使用,最终呈现出一种效果是这个表面的片元(像素)是朝向了不同的方向,计算结果可以使得表面呈现出凹凸的样子。


        高度贴图(height maps)中的数据表达的是mesh的每个像素的相对高度。

        法线贴图和高度贴图能够在不消耗过多算力的情况下,使得物体表面的细节更加真实丰富。

使用法线贴图

        在Unity中,点击模型,在Inspector中选则对应材质,进入材质的Inspector面板,可以看到一个Normal Map的属性。


        在这个例子中,这个模型的Normal Map已经有设置了法线贴图文件了。我们将Normal Map设置为None,对比看看效果。


使用高度贴图

        高度贴图中的数据表示了每个像素相对于mesh的高度。通常它是一个单通道(灰度)贴图,其中每个像素值表示了从mesh表面算起的相对距离。如果我们使用RGB图像作为高度贴图,shader只会读取G通道值作为相对高度值。


        这里以一个例子来看高度贴图的效果。在场景中,新增了一个立方体,在例子中我们创建了一个Pavement的材质,设置了对应的Base Map,Metallic Map,Normal Map等。然后我们应用材质到这个立方体上,效果如下:


            调节一下Height Map,对比看看效果:

 

http://www.lryc.cn/news/9440.html

相关文章:

  • 文华财经期货指标公式量化策略分析软件,多空共振信号准确率高的公式源码
  • 基于TCP协议的文件传输系统
  • Linux定时备份MySql数据库
  • JavaScript prototype(原型对象)
  • pytorch各种版本最简单安装,不用自己安装cuda cudnn
  • 订单超时处理方案介绍
  • Blackbox-Exporter对服务进行探活
  • react-redux
  • 算法刷刷刷| 回溯篇| 子集问题大集合
  • 合并两个有序数组-力扣88-java
  • 2022「大厂可观测」重磅回顾,12场直播,15位技术大咖洞见可观测
  • CMMI-配置管理(CM)
  • 网络编程套接字Socket
  • Linux进程概念(二)
  • 墨天轮【第二届数据库掌门人论坛】圆满收官 | 含嘉宾精彩观点回顾
  • Redis之集群搭建
  • 31-Golang中的二维数组
  • <<Java开发环境配置>>6-SQLyog安装教程
  • MySQL 中的 distinct 和 group by 哪个效率更高
  • 计算机相关专业毕业论文选题推荐
  • 网络编程套接字之TCP
  • 网络与串口调试工具TCPCOM
  • 数据库常用命令
  • PTA复习
  • TypeScript 学习之接口
  • 原码反码补码
  • 大数据选股智能推荐系统V1.0-1
  • 调研生成GIF表情包之路
  • 【RocketMQ】源码详解:生产者启动与消息发送流程
  • 信息安全(一)