GAMES101:着色

Shanding

画家算法:深度排序,O(nlogn),然后逐个像素光栅化
**Z-Buffer(非常实用重要):**现在广用的算法,深度缓存。生成两张图,一个就是最后的结果,一个就是深度图,如下图。
在这里插入图片描述

深度缓存的工作原理:
在这里插入图片描述
在这里插入图片描述

着色:
Blinng-Phong着色模型
在这里插入图片描述
n:法线
光线和表面的夹角,决定了亮度和能量的多少,接受到的能量和光线方向和法线方向夹角的余弦成正比
在这里插入图片描述
在这里插入图片描述
关于上图的r出能量,可以做一个简单的下图推导
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201014155641474.png#pic_center在这里插入图片描述
在这里插入图片描述
kd:漫反射系数(颜色,因为不同的颜色反射的程度不一样,是自己定义的哦)
在这里插入图片描述
高光:观察方向和镜面反射方向接近时,就会有高光
在这里插入图片描述
在这里插入图片描述
ks就是高光
但是高光一般都是一个点,cos余弦曲线比较陡峭,如下图、在blinn-phong模型中,一般都是100-200.
在这里插入图片描述
在这里插入图片描述

环境光照:环境光是一个常数,La=kaIa
在这里插入图片描述
如果把漫反射项,高光,环境光加起来,就是整个blinn-phong模型
在这里插入图片描述
着色频率:
在这里插入图片描述
左,每个三角形求出来着色
中,在任意一个顶点法线做一次着色
右,每一个像素做着色
在这里插入图片描述
逐顶点的法线:相邻面的法线求平均。在这里插入图片描述

**逐像素法线:**需要用到重心坐标
在这里插入图片描述

图形管线(实时渲染)。
把所有东西加起来:

  • 空间中三维的点
  • 投影在屏幕上
  • 形成三角形
  • 光栅化
  • 着色
  • 根据深度打在屏幕上在这里插入图片描述
    着色OPENGL,写一些shader(每个顶点或者像素会执行一次,是通用的,每一个像素都会自动执行,如果写的是顶点那就是顶点着色器,如果是写的像素那就是像素着色器)。像素着色器opengl如下:
    在这里插入图片描述

纹理映射把模型表面展开后纹理上的坐标系

重心坐标:做三角形内的插值,三角形三个点不同的属性,这个时候就需要三角形内进行一个平滑的过渡,中心坐标的意思如下图:
在这里插入图片描述
在这里插入图片描述
重心坐标是通过面积比求出来的。
在这里插入图片描述
在这里插入图片描述
纹理的若干问题:
纹理太小了,就是纹理不够清晰,任选一个点不是整数像素,水平方向一个插值,竖直方向一个插值,双线性插值。bilinear
在这里插入图片描述
bicubic取周围16个

如果简单的用上述方法,会如下图出现走样
在这里插入图片描述
为什么会出现走样,因为像素近处覆盖很小,远处覆盖很大,用双线性插值是不合理的
在这里插入图片描述
点查询和范围查询(不做采样)

Mipmap:允许做范围查询,快,不准,方形)
什么是mipmap?从一张图生成一系列图
在这里插入图片描述
mipmap又叫图像金字塔,仅仅多了三分之一的存储
在这里插入图片描述

纹理
用纹理去描写环境光
在这里插入图片描述

法线贴图=凹凸贴图
通过发现贴图,可以定义复杂的纹理而不用改变建模,通过发现凹凸贴图可以改变相对高度,从而改变发现
在这里插入图片描述

几何:

几个的隐式标识:CSG:可以通过简单的几何变成复杂的几何
在这里插入图片描述

DF:距离函数,表示几何(最近的点到表面的最近距离)
在这里插入图片描述
SDF(有向距离函数)

显示几何:点云,不考虑他是表面,就是一个一个点组成的

贝塞尔曲线:给任意多的一系列控制点,如三个控制点,会生成二次贝塞尔曲线,

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值