GAMES101第七讲Shading 1笔记

本文概述了3D游戏开发中的重要技术,包括深度缓存(Z-buffering)的画家算法和深度记录,以及着色过程中的漫反射和Blinn-Phong模型。通过实例解析,介绍了如何利用这些技术创建逼真的光照效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、深度缓存(Z-buffering)

(1)画家算法:像油画家作画一样,先画最远处的,由远到近进行作画覆盖。
画家算法
①画家算法在大多数情况下都有效,需要先排好远近顺序。
②但如果存在互相有部分覆盖的情况,画家算法就会有问题,如下图。
画家算法的问题
(2)深度缓存
深度缓存的定义
①深度缓存Z-buffer算法会记录每个像素的深度,它除了记录每个像素的颜色外,还记录了每个像素的深度。
②深度缓存的伪代码如下。
深度缓存算法的伪代码
③深度缓存的一个例子如下。
深度缓存的例子
④深度缓存算法的复杂度为O(n)。
深度缓存算法的复杂度

二、着色(Shading)

(1)本课程中的着色指的是对物体应用不同的材质。
着色的概念
(2)一个简单的着色模型:Blinn-Phong Reflectance Model
着色模型
①图中从上到下为高光、漫反射、环境光三个部分。
(3)着色点
①需要这些输入信息:观测方向、法线、光照方向、表面的参数(如颜色、亮度等)。
②观测方向、法线、光照方向均为单位向量。
③本部分讨论的着色不考虑阴影。
着色模型

三、漫反射(Diffuse Reflection)

(1)漫反射的定义
漫反射的定义
①光线会被均匀地反射到各个角度。
②在各个观测方向上的颜色都是相同的。
(2)不同角度的光线所能接受的能量
不同角度的光线所能接受的能量
(3)光衰减
光衰减
①距离越远的点得到光的能量会有所衰减。
②例如光线辐射出一个圆形,近处的圆周长短,远处的圆周长长,根据能量守恒,远处的点得到的能量应该会更少。
(4)Lambertian Shading
光衰减
①结合不同角度的光接受的能量以及光衰减公式可以得到某个点的着色情况。
(5)不同漫反射系数kd得到的不同着色情况例子。
不同漫反射系数kd

参考文献

课程视频链接: GAMES101 Lecture07 Shading 1

pipeline and shading是计算机图形学中的两个重要概念。在Games101课程中,我们学习了这两个概念以及它们在游戏开发中的应用。 首先,管线(pipeline)是指图形渲染过程中的一系列阶段。这些阶段依次执行,以将3D模型转换为最终的2D图像。管线的主要阶段包括顶点处理、光栅化和片元处理。在顶点处理阶段,模型的顶点坐标被转换为屏幕空间坐标,并进行光照计算等操作。在光栅化阶段,模型的三角形被转化为像素,在屏幕上显示。在片元处理阶段,对每个像素执行颜色计算,以确定最终的像素颜色。 其次,着色(shading)是指确定模型表面每个像素的颜色和光照效果。常见的着色模型包括平面着色、高洛德着色和菲格斯特随机着色等。平面着色是最简单的一种,忽略了光照效果,给每个像素分配一个固定的颜色。高洛德着色则考虑了光照的方向和强度,使得模型表面看起来更加真实。菲格斯特随机着色则引入了随机过程,给模型表面增加纹理和细节。 在游戏开发中,管线和着色技术被广泛应用。通过管线的处理,可以实现更高的渲染效率和图像质量。而着色技术可以使游戏中的模型更加真实,增加玩家的沉浸感。此外,我们还可以通过改变管线和着色的参数来实现特殊的效果,如阴影、光线投射和折射等。 总的来说,pipeline and shading是计算机图形学中的重要概念。在Games101课程中,我们深入学习了这两个概念以及它们在游戏开发中的应用。通过理解和掌握管线和着色技术,我们可以实现更加高效和逼真的游戏图形效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值