渲染贴图的基本认识

这篇具有很好参考价值的文章主要介绍了渲染贴图的基本认识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

书接上回。

渲染贴图的基本认识

上图涉及了渲染的景深等和贴图无关的东西,暂不介绍(我也不懂)。

3dmax的十二种贴图方式(Standard)
Ambient Color 阴影色贴图
Diffuse Color 过渡色贴图
Specular Color 高光色贴图
Specular Level 高光级别贴图
Glossiness 光泽度贴图
Self-Illumination 自发光贴图
Opacity 不透明贴图
Filter Color 过渡色贴图
Bump 凹凸贴图
Reflection 折射贴图
Refracion 反射贴图
Dispacement 置换贴图

我逐一介绍一下:

渲染贴图的基本认识

(其实每个贴图点进去还有叠加选项,好几张图片通过不同设置组合占用这一个贴图位置)

官方文档(比起在博客论坛慢慢找强多了,毕竟真的都懂的大佬少):3ds Max 2015 Help 帮助: 将贴图和环境用作材质组件 (autodesk.com)

这是我截出来的《黑色沙漠》里游侠妹子模型和游戏截图:

渲染贴图的基本认识

 渲染贴图的基本认识

 

游戏模型制作中用到了很多贴图类型,通过不同类型贴图的组合使用以达到最终需要得到的模型效果。最常见的类型有DiffuseEmissiveNormalOpacitySpecularRoughness。我把那个游侠妹子的相关贴图按顺序做成简单介绍:


环境光颜色-环境遮挡贴图,简称AO贴图,Ambient Occlusion map

使用位图文件或程序贴图将图像贴图到材质的环境光颜色。图像绘制在对象的明暗处理部分。

渲染贴图的基本认识

可以用于模拟物体之间所产生的阴影,在不打光的时候增加体积感。也就是完全不考虑光线,单纯基于物体与其他物体越接近的区域,受到反射光线的照明越弱这一现象来模拟现实照明(的一部分)效果。

漫反射颜色-颜色贴图,纹理贴图,diffuse map

漫反射贴图在游戏中表现出物体表面的反射和表面颜色。换句话说,它可以表现出物体被光照射到而显出的颜色和强度。

漫反射贴图在游戏中表现出物体被光照到而显示的颜色和强度。不同地方的光照强度反射是不同的,比如一堵墙,墙缝隙由于吸收很多光纤,比较暗,但是表面的反射比较强,则会灰色一些。

渲染贴图的基本认识

注:其中红色部分是Alpha通道的显示,也就是渲染时设置红色部分为透明的。

渲染贴图的基本认识

上面这张贴图我一直不知道放在哪里,后来看到参考帖子才知道大概是两种共同作用(参考文章的链接在最下方)

渲染贴图的基本认识

高光颜色-高光贴图,specular maps

高光贴图是用来表现当光线照射到模型表面时,其表面属性的.(如金属和皮肤、布、塑料反射不同量的光)从而区分不同材质.高光贴图在引擎中表现镜面反射和物体表面的高光颜色。

材质的反光程度就越强。(强弱度度是指,如果将这张Specularmap去色成为黑白图,图上越偏向RGB0,0,0,的部分高光越弱,越偏向RGB255,255,255的部分高光越强.)

 渲染贴图的基本认识

高光级别-高光级别贴图,高光强度,Sepcular level

可以使用位图文件或程序贴图基于位图的强度来改变反射高光的强度。贴图中的白色像素产生全部反射高光。黑色像素将完全移除反射高光,并且中间值相应减少反射高光。

天涯明月刀里面涉及金属物品的这种贴图用的多。

渲染贴图的基本认识

光泽度-光泽度贴图,glossness

光泽度贴图指的是造成光漫反射的表面不规则现象。在贴图中暗调(0.0)表示表面粗糙,亮调(1.0)表示表面光滑。

天涯明月刀里涉及金属的用的也多

渲染贴图的基本认识

自发光,自发光贴图-Emissive Map

模拟电影幕布,灯箱广告之类的效果。在发光的同时也能看见内容;或者我在具有科技感的机甲战士中见过身上的小灯部分就用这种贴图实现。

控制表面发射光的颜色和亮度。当场景中使用了自发光材质时,它看起来像一个可见光。物体将呈现发光效果。

渲染贴图的基本认识

不透明度,透明贴图-Opacity

一般用于头发、睫毛等毛发(也有直接采用Alpha通道作为透明强度的),用像素的颜色表示透明多少,类似PS的蒙版。一般用黑色表示不透明。

定义贴图的不透明度。黑色是透明的部分,白色为不透明的部分,灰色为半透明的部分。

渲染贴图的基本认识

贴图和第一张的漫反射的Alpha通道同理。

渲染贴图的基本认识

 将睫毛、头发设置Alpha,设置不透明贴图,就能从上面的一片网格变成下面的正常的头发和睫毛一样。

过滤色-过滤颜色贴图,filter color 

过滤颜色,也称为半透明颜色,是通过透明或半透明材质(如玻璃)透射的颜色。

渲染贴图的基本认识

过滤颜色贴图 | 3ds Max | Autodesk Knowledge Network

凹凸-法线贴图,normal map

凸凹贴图可以给贴图增加立体感。它其实并不能改变模型的形状,而是通过影响模型表面的影子来达到凸凹效果的。再游戏中有两种不同类型的凸凹贴图,法线贴图(normalmap)和高度贴图【高度贴图(highmap)--依据3dmax的顺序放到了位移贴图里】

bump maps的一种,实现物体立体感,减少光照计算的方案。Normal Mapping 法线映射多用在CG动画的渲染以及游戏画面的制作上,将具有高细节的模型通过映射烘焙出法线贴图(Normal Map),贴在低端模型的法线贴图通道上,使之拥有更高细节的渲染效果。在光照的情况下,用贴图中的法线信息(RGB)影响或改变现有模型的法线,是我们在视觉上产生凹凸不平、增加细节的渲染效果。

一般是如下这种紫了吧唧的贴图 ̄へ ̄

渲染贴图的基本认识

反射,反射映射-Reflection mapping

在计算机图形学领域是用预先计算的纹理图像模拟复杂镜面的一种高效方法。纹理用来储存被渲染物体周围环境的图像。有几种不同的方法可以用来保存周围环境,其中最常用的方法之一是标准环境映射,在这种方法中周围环境在一个镜面球体上反射得到单一纹理图像。另外一种常用方法是立方环境映射,在这种方法中环境在立方体的六个表面上显现出来,所以需要保存为六个正方形的纹理。

渲染贴图的基本认识

折射,折射贴图-Refraction mapping

向材质(特别是玻璃和水)添加折射可产生非常逼真的效果。 请记住使用您尝试模拟的表面类型的正确 IOR 值。

使用折射 | 虚幻引擎文档 (unrealengine.com)

渲染贴图的基本认识

置换-移位贴图,Displacement Mapping

也叫 Height Map(高度图/ 置换贴图/ 视差贴图)

Normal maps的另一个应用是displacement mapping,在这个应用中,细节的增加不再是通过虚拟光照得到的,而是真正的改变模型的vertices。

Height Map是一个二维数组(一张8位数灰度图),储存高度(Z)方向的数字。每个不同灰度的像素索引表示不同的高度信息。它的高度值变化范围是在0和255之间,其中0 (黑色)表示最低高度,255 (白色)表示最大高度。

渲染贴图的基本认识

高度图(也称为视差贴图或凹凸贴图 )是一个类似于法线贴图的概念,但是技术更复杂,因此更性能开销更大。高度图通常与法线贴图结合使用,负责定义和渲染表面额外的大型凸起。

渲染贴图的基本认识

 上图从左到右为:1.分配了反照率贴图但未分配法线贴图和高度贴图的岩石墙壁材质。2.分配了法线贴图。表面上的光照经过修改,但岩石不会相互遮挡。3.分配了法线贴图和高度贴图的最终效果。岩石看起来从表面突出,较近的岩石似乎遮挡了它们后面的岩石。

其他有用的(有些是Unity用的)

1)BRDF Lut

lut,look up table,查找表

渲染贴图的基本认识

2)光照贴图,light map

用来存储预渲染的光照信息,用于静态模型上的间接光照,解决实时动态光源效果不好且消耗性能的问题。

渲染贴图的基本认识

什么是烘焙? 简单地说, 就是把物体光照的明暗信息保存到纹理上, 实时绘制时不再进行光照计算, 而是采用预先生成的光照纹理(lightmap)来表示明暗效果. 那么, 这样有什么意义呢?

提前烘培好的给静态场景和光照的信息,光源无法移动,可以直接用光照贴图高效计算光照信息。(在一些3A大作里面,很多都是动态光,所以这个用不上),由于省去了光照计算, 可以提高绘制速度 ,对于一些过度复杂的光照(如光线追踪, 辐射度, AO等算法), 实时计算不太现实. 如果预先计算好保存到纹理上, 这样无疑可以大大提高模型的光影效果,保存下来的lightmap还可以进行二次处理, 如做一下模糊, 让阴影边缘更加柔和 。

3)环境贴图CUBEMAP

Cube map技术说到底就是用一个虚拟的立方体(cube)包围住物体,眼睛到物体某处的向量eyevec经过反射(以该处的法线为对称轴),反射向量reflectvec射到立方体上,就在该立方体上获得一个纹素了(见下图)。明显,我们需要一个类似天空盒般的6张纹理贴在这个虚拟的立方体上。按CUBE MAPPING原意,就是一种enviroment map,因此把周围场景渲染到这6张纹理里是“正统”的。也就是每次渲染时,都作一次离线渲染,分别在每个矩形中心放置相机“拍下”场景,用FBO渲染到纹理,然后把这张纹理作为一个cube map对象的六纹理之一。这样即使是动态之物也能被映射到物体表面了(虽然缺点是不能映射物体自身的任何部分)。

4)Mipmap和detailmap

首先从MIPMAP的原理说起,它是把一张贴图按照2的倍数进行缩小。直到1X1。把缩小的图都存储起来。在渲染时,根据一个像素离眼睛为之的距离,来判断从一个合适的图层中取出texel颜色赋值给像素。在D3D和OGL都有相对应的API控制接口。

透过它的工作原理我们可以发现,硬件总是根据眼睛到目标的距离,来玄奇最适合当前屏幕像素分辨率的图层。假设一张32768x32768的mipmap贴图,当前屏幕分辨率为1024*1024。眼睛距离物体比较近时,mipmap最大也只可能从1024*1024的Mipmap图层选取texel。再次,当使用三线性过滤(trilinear)时,最大也只能访问2048*2048的图层选取texel,来和1024*1024图层中的像素进行线性插值。

顾名思义,就是细节的贴图,原理上不用赘述,其实就是图层的叠加与混合。在这里有几个关键词,一个是Detail的Tiling值,一个是这个Detailmap需要在导入的时候设置为Mipmap,里面的参数大家可以试着调一下,至于Mipmap的原理,已经在上面介绍了。

5)Curvature(曲率贴图)

作用:曲率贴图允许提取和存储凹凸信息。黑色的值代表了凹区域,白色的值代表了凸区域,灰度值代表中性/平 地。

渲染贴图的基本认识

6)Thickness厚度贴图

作用:黑色代表薄的地方、白色代表厚的地方。它可以用于辅助制作表面散射(SSS,简称3S材质)材质,或直接扩散/反照率假装SSS的效果。 从冰面,蜡烛以及皮肤上观察到这种效果,表面看起来有一种半透明的深度感。

渲染贴图的基本认识

7)ID/Mask Map(ID、遮罩贴图)

用于选择不同的区域,进行分别绘制。

渲染贴图的基本认识

渲染贴图的基本认识

后记其他

有的引擎会置换贴图的红蓝通道,也有的会使用左手坐标系导致uv翻转的,所以不能一概而论。

碎碎念:都查完发现原来需要深入学习计算机图形学了呢……单纯的用的技巧和知道为什么用完全是两回事,但理论指导可以让实践更加顺利,实践技巧才能让理论有用武之地!

有参考的不错资料: 

各类渲染贴图map汇总_wangqing008的专栏-CSDN博客

PBR流程学习笔记:从灯光到材质,工业流程中的规范 - 知乎

Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图 - alps_01 - 博客园 (cnblogs.com)

游戏资源中常见的贴图类型 - 知乎 (zhihu.com)  【强烈推荐】

3ds Max 2015 Help 帮助: 高光颜色贴图 (autodesk.com)文章来源地址https://www.toymoban.com/news/detail-451743.html

到了这里,关于渲染贴图的基本认识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity | HDRP高清渲染管线学习笔记:Lightmapping(光照烘焙)与Lightmap(光照贴图)

    目录 相关概念 1.渐进式光照贴图烘焙 1.1 渐进式光照贴图烘焙对模型的要求 1.2 渐进式光照贴图烘焙对硬件的要求 1.3 渐进式光照贴图烘焙支持的Unity渲染管线 1.4 进行渐进式光照贴图烘焙结果 1.5 渐进式光照贴图烘焙的CPU版本和GPU版本 1.6 Lighting窗口Lightmapping Settings参数介绍

    2024年02月11日
    浏览(57)
  • HarmonyOS(十二)——全面认识HarmonyOS三种渲染控制

    ArkUI通过自定义组件的build()函数和@builder装饰器中的声明式UI描述语句构建相应的UI。在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句,基于数组数据快速生成组件的循环渲染

    2024年01月25日
    浏览(54)
  • 整体认识和路由配置、基础数据渲染、热榜区域实现、图片预览组件封装、认识SKU组件、通用组件统一注册全局(详情页)【Vue3】

    整体业务认识 路由配置 准备组件模板 配置路由 绑定模板测试跳转 封装接口 获取数据渲染模版 思考:渲染模版时遇到对象的多层属性访问可能出现什么问题? 模块实现整体分析 结论:两块热榜相比, 结构一致,标题title和列表内容不同 渲染基础热榜数据 1- 准备模版 2- 封

    2024年02月15日
    浏览(49)
  • Qt:上图标下文字的按钮

    方法一: QPushButton 用qss自定义设置上图标下文字的样式 方法二:使用 QToolButton 设置Qt::ToolButtonTextUnderIcon ui-toolButton-setToolButtonStyle(Qt::ToolButtonTextUnderIcon); qss样式设置: 方法三:重写 QPushButton 类自定义上图标下文字的按钮控件类 参考效果:

    2024年02月07日
    浏览(27)
  • Qgis教程13:照片上图 ImportPhotos

    2023年04月09日
    浏览(32)
  • Logback框架基本认识

    Logback 旨在作为流行的 log4j 项目的继承者。它是由 log4j 的创始人 Ceki Gülcü 设计的。它建立在十年来设计工业级测井系统的经验之上。由此产生的产品,即 logback,比所有现有的日志系统速度更快,占用空间更小,有时甚至相差很大。同样重要的是,logback 提供了其他日志系统

    2024年02月02日
    浏览(35)
  • 二叉树的基本认识(三)

            当我们学会遍历后,我们学习二叉树后面的知识就容易多了。如,如何获取二叉树里的数据个数。这简直不要太简单,我们只需遍历一遍就行,不管是前中后,还是层序遍历都可以。这个我就不写了。那么我们如何 获取叶子节点的个数(叶子节点就是没有子节点的节

    2024年02月07日
    浏览(29)
  • Websocket的基本认识、使用与封装

    目录 一、Websocket是什么 二、Websocket的基本使用 使用介绍 第一步 第二步 第三步 第四步 常用API介绍  WebSocket(url[, protocols]) WebSocket.readyState  WebSocket.send(data) WebSocket.close([code[, reason]]) WebSocket.bufferedAmount WebSocket.extensions WebSocket.binaryType 三、Websocket的封装 vue代码 react代码     

    2024年02月03日
    浏览(31)
  • 【微服务】认识Dubbo+基本环境搭建

    Dubbo是阿里巴巴公司开源的一个高性能、轻量级的WEB和 RPC框架 ,可以和Spring框架无缝集成。 Dubbo为构建企业级微服务提供了三大核心能力: 服务自动注册和发现 、面向接口的 远程方法调用 , 智能容错和负载均衡 官网:https://cn.dubbo.apache.org/zh-cn/ 按照微服务架构的定义,采

    2024年04月14日
    浏览(45)
  • FPGA概述(对FPGA的基本认识)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA(Field Programmable Gate Array,即现场可编程门阵列)它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包