材质系统(1):起源与概念

目录

前言

[1. 材质系统的源头](#1. 材质系统的源头)

[2. 材质系统与光照模型的关系](#2. 材质系统与光照模型的关系)


前言

材质系统是计算机图形学的一部分。在图形学中,材质(Material)是一种描述表面外观的属性。在三维计算机图形中,通常需要为每个物体指定材质,以便在渲染时准确地呈现物体的外观。材质可以包括多个属性,例如颜色、反射率、透明度等等。

本文主要内容来源为计算机图形学核心知识、本人项目经验以及GPT辅助。如有错误烦请指正。

计算机图形学主要研究的领域有三个:建模、渲染、动画。

(1)建模(Modeling):构建三维的几何模型

(2)渲染(Rendering):将模型显示在屏幕上

(3)动画(Animation):模拟真实世界的物理运动

三者有部分的先后继承关系:渲染依托场景中建好的模型,动画依托模型运动以及渲染表现。

材质系统是渲染环节着重研究的内容。以下是一些该领域常见名词:

|----------|---------|
| 英文名 | 中文名 |
| material | 材质 |
| texture | 贴图、纹理 |
| shader | 着色器 |

当在引擎中创建一张材质后会自动分配默认的shader,材质可以没有贴图,即显示纯色。

1. 材质系统的源头

材质系统的概念并没有一个明确的单一起源或提出者,因为它是随着计算机图形学的发展逐渐演进和完善的。材质系统的发展与3D图形渲染技术、着色器技术、以及对真实世界物理特性模拟需求的增加紧密相关。在早期的计算机图形学中,材质的外观主要通过简单的颜色和纹理来定义,但随着技术的进步,材质系统变得越来越复杂,包含了更多关于光与物质相互作用的物理属性。

第一阶段:早期材质系统

在20世纪70年代和80年代,随着3D计算机图形学的初期发展,人们开始尝试模拟现实世界中不同材质的表面特性。那时,材质系统通常包括基础的颜色和纹理贴图,但这些系统相对简单,并没有形成完整的理论体系。

第二阶段:纹理映射技术普及

到了90年代,随着实时渲染技术的发展,尤其是随着实时3D游戏和高级视觉效果需求的增加,材质系统开始包含更高级的属性,如反射、折射、凹凸映射等,以实现更加逼真的视觉效果。

第三阶段:PBR的普及

21世纪初,特别是随着PBR(基于物理的渲染)理念的提出和普及,材质系统开始更加注重物理真实感,模拟光线在不同材质表面的物理行为。PBR的概念在很大程度上统一了材质系统的参数和工作流程,促进了材质系统在游戏和电影制作等领域的标准化。

2. 材质系统与光照模型的关系

材质系统和光照模型在计算机图形学中是紧密相关但各自独立的两个概念,它们共同作用于渲染过程中,以模拟和再现真实世界中物体的视觉外观。下面是它们之间的关系:
材质系统

材质系统负责定义物体表面的视觉特性,包括:

  • 颜色(Color):物体表面的基本颜色(固有色)。
  • 纹理(Texture):表面的细节,如图案和细微结构。
  • 粗糙度(Roughness)或光泽度(Glossiness):表面反射光的柔和度或镜面反射的清晰度。
  • 金属度(Metalness):材质是否反射像金属那样的光线。
  • 透明度(Transparency)和折射率(Refractive Index):控制光线通过物体的程度和弯曲程度。
  • 法线(Normal)、凹凸(Bump)和置换(Displacement)贴图:增加表面的复杂几何细节。

光照模型

光照模型则关注光线如何与场景中的对象相互作用,包括:

  • 光源类型:如点光源、聚光灯、无限远光(太阳光源)、环境光源等。
  • 光照强度:光源发出的光量。
  • 光照颜色:光源发出的光的颜色。
  • 阴影:光线被物体遮挡产生的效果。
  • 全局光照(Global Illumination, GI):考虑了场景中所有表面相互之间的光照影响,如反射和折射。

两者关系

  • 相互作用:材质系统定义了物体表面对光的反应方式,而光照模型则提供了光的来源和特性。材质的外观在很大程度上取决于光照条件,而光照效果也会因材质的不同特性而变化。
  • 渲染结果:在渲染过程中,材质系统和光照模型相结合,决定了最终图像的视觉效果。例如,一个高光泽度的材质会在强光源下产生明显的高光点,而在柔和的光照条件下则看起来更均匀。
  • 真实感模拟:材质系统的参数通常需要与光照模型的特性相匹配,以实现更加逼真的渲染效果。例如,在物理上准确的渲染(PBR)中,材质的金属度、粗糙度等参数与光照模型的物理基础紧密相连。
  • 艺术控制:艺术家和设计师可以通过调整材质和光照参数来创造不同的视觉效果和情绪,这对于电影、游戏、建筑可视化等应用至关重要。
相关推荐
顾子茵3 小时前
计算机图形学基础--Games101笔记(一)数学基础与光栅化
笔记·图形渲染
WarPigs3 小时前
Unity光照笔记
笔记·unity·游戏引擎
GISer_Jing6 小时前
前端图形渲染 html+css、canvas、svg和webgl绘制详解,各个应用场景及其区别
前端·html·图形渲染
gameatp7 小时前
UE RPG游戏开发练手 第二十六课 普通攻击1
游戏引擎·虚幻
神码编程7 小时前
【Unity】 HTFramework框架(六十五)ScrollList滚动数据列表
unity·游戏引擎·ugui
DanmF--8 小时前
Protobuf工具
网络·unity·游戏引擎·游戏程序
Magnum Lehar1 天前
3d游戏引擎的math矩阵实现
线性代数·矩阵·游戏引擎
虾球xz1 天前
游戏引擎学习第282天:Z轴移动与摄像机运动
c++·学习·游戏引擎
龙湾开发1 天前
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(一)过程式凹凸贴图
c++·笔记·学习·3d·图形渲染
ue星空1 天前
UE5用TextureGraph制作瓷砖贴图材质
ue5·材质