计算机图形学GAMES101(七)着色(着色频率、图形管线、纹理映射)

一个物体的着色工作主要考虑:

  • 高光
  • 漫反射
  • 环境光

接下来是高光

在这里插入图片描述
已知 当摄像机的视角越接近R则高光越强。

Blinn-Phong模型
在这里插入图片描述

计算公式:
使用l和v两个向量夹角的角平分线h(也叫做半程向量)和法线n的接近程度来计算高光,越接近高光越强。这里的h和n接近一定程度上就反应了上面的v和R接近。n点乘h 表示接近程度,越接近则值越靠近1,如果离得比较远则接近0。这里不考虑有多少光被吸收。

Phong模型是通过计算过v和R的接近程度来计算高光(计算反射方向R不好算)
Blinn-Phong模型是通过计算过h和n的接近程度来计算高光(是Phong模型的改进,半程向量h比较好计算过)

其中
在这里插入图片描述
右上角的p代表cos α的指数
在这里插入图片描述
下面不同p的值对于高光的影响
在这里插入图片描述

环境光

计算环境光时,通常假设任何一个点接收到的环境光都是相同的,任何一个点也会有反射系数。La是计算结果
在这里插入图片描述
从这个公式可以看出环境光和光照方向,观测光线都没有关系。

Blinn-Phong反射模型

在这里插入图片描述
只需要对于场景中的每一个点都应用Blinn-Phong模型就可以对这个物体进行着色了

着色频率

在这里插入图片描述
着色频率就是指把着色应用到那些点上面
第一个球:对于每一个四边形面进行一次着色,这个面上的像素都是同一个颜色
第二个球:对于每一个平面的三个顶点,都计算它的法线然后对每一个顶点都做一次着色,而平面内部的点使用插值来确定颜色
第三个球:对于每一个三角形的平面求出一个法线然后把这些法线在三角形平面内部进行插值就得到了任何一个像素自己的法线方向,然后再进行着色。

三种着色模型:Flat shading、Gouraud shading、Phong shading

Flat shading
在这里插入图片描述

对三角形两边做叉乘就可以求出三角形法线,然后三角形进行一次着色,三角形内部都是这个颜色。(为每一个面着色)

Gouraud shading
在这里插入图片描述
先求出三角形的顶点的法线然后对每一个顶点做一次着色,三角形内部用插值的方法来确定其颜色。(为每一个顶点着色)

Phong shading
在这里插入图片描述
对于每一个像素进行一次着色

不同着色模型的对比

在这里插入图片描述
几何的形体足够复杂(细分曲面的面数足够多)时,其实就可以用一些相对简单的着色模型,效果与利用复杂的着色模型的效果几乎没有差别。相反当模型不太精细时应使用逐像素的着色。

怎么求一个面的顶点的法线

将该顶点所关联的三角形平面的法线求一个平均(简单平均或者加权平均),作为顶点的法线。顶点的法线为Nv
在这里插入图片描述

在这里插入图片描述

实时渲染管线 Graphics (Real-time Rendering) Pipeline

怎么去渲染图形
在这里插入图片描述
过程:

  1. MVP变换
  2. 抽象成三角形
  3. 进行深度缓充
  4. 着色
  5. 纹理映射

在这里插入图片描述

纹理映射

又称纹理贴图,是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。简单来说,就是把一幅图像贴到三维物体的表面上来增强真实感

其中那个球的不同颜色就是由k_d的只来确定的(球上的所有点都是用的同一个着色模型,只是漫反射系数k_d不同),也就是说我们希望在物体不同位置定义不同的属性。因此引入纹理映射。
在这里插入图片描述

怎么定义一个点的基本属性

任何一个三维物体的表面都是二维的,也就是三维空间表面的点都可以对应二维空间中的一个点

纹理其实就是一张二维的图。将其覆盖在一个三维物体的表面这个叫做映射,合起来叫做纹理映射
在这里插入图片描述

怎么确定纹理和三维物体的对于关系

纹理上每个点都有其坐标(u,v) 。u,v的范围是在0~1
三角形三个顶点,每个顶点都对应一个uv。
越红则u越大
越绿则v越大
在这里插入图片描述
有一张图
在这里插入图片描述
这张图片的纹理坐标为
在这里插入图片描述
观察地面部分的纹理可得:
同一个纹理可以被重复应用到不同位置

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值