计算机图形学笔记

CG光照模型相关笔记

## 计算机图形学
## 处理彩色图像

颜色的属性:

## 1.色相

色相(Hue)即色彩的面貌,色相的区别是由光波波长的长短决定的。

   - 原色
   - 间色
   - 复合色


## 2.亮度
亮度也称为透明度(brightness)

## 3.纯度

纯度(purity)也称为饱和度(saturation)。当图像的把配合度为0的时候,图像就会变成一个灰度图像,反之亦然。

**色相和纯度两种特征混合后形成的属性又称为色度(Chromaticity),也称为色品。**
常用的色彩空间
- RGB色彩空间(红(red),绿(green),蓝(blue))
- CMY/CMYK颜色空间(青(Cyan),品红(Magenta),黄(Yellow))
- HSV/HSB颜色空间(色相(Hue),饱和度(saturation),明度(Value),亮度(brightness))
- HSI/HSL颜色空间(色调(Hue),饱和度(saturation),强度(Intensity),明亮程度(Luminance))
- YUV/YCbCr颜色空间

## 颜色模型
### 什么是颜色?
### 什么是颜色模型?

也就是说颜色模型(空间),表示颜色的一种数学方式。
几乎所有的颜色模型都是从RGB颜色模型导出。

### 常用的颜色模型
- RGB颜色工业模型
- 其他颜色工业模型

  - YIQ
  - YUV
  - YCbCr

其中,Y分量均代表黑白亮度分量,其余分量用于显示彩色信息。

- 颜色视觉模型(HSI)
  - 色调(Hue):物体反色光线中占据优势的波长决定的,是彩色互相区分的基本特性。
  - 饱和度(Saturation 也成彩度):彩色的深浅程度,它取决与彩色中白色的含量。饱和度越高,彩色越深,白色光越少。
  - 亮度(Illumination):光波作用于感受器所发生的效应,它取决于物体的反射系数。反射系数越大,物体亮度越大。

以上三要素来描述彩色空间能够更好地与人的视觉特性相匹配
- 其他颜色视觉模型
  - HSV(hue,saturation, value(明度))
  - HSL (hue,saturation, Lightness(亮度))

## 简单光照模型

### 光照模型

当物体的集合形态确定之后,光照决定了整个场景的显示结果,因此真实感图形的生成取决于如何建立一个合适的光照模型(illunination model)。

### 背景物理知识
- 光的传播定律
- 反射定律
- 折射定律
- 能量关系(瞒住能量守恒)
- 常见的光:
- 漫反射光:漫反射光主要有表面的粗糙程度决定。
- 镜面反射光
- 折射光
- 吸收光

### Phong光照模型
环境光 + 漫反射光 + 镜面反射光

- 环境光:邻近个物体所产生的光多次反射最终达到平衡时的一种光。可近似认为同一环境下的环境光,其光强分布是均匀的。
- 漫反射光:服从Lambert定律:
- 镜面反射光:

### 如何进行明暗处理
基本思想:每一个多边形的顶点计算出光照强度或者参数,然后再各多边形内部进行均匀插值。
常用方法
Gouraud明暗处理(双线性光强插值算法)
Phong明暗处理(双线性法向插值算法)
### 插值算法
利用某一个函数技术来计算出两个或者更多值之间的值,例如最简单的求算数平均数(x+y)/2.

### Gouraud明暗处理(双线性光强插值算法)
- 第一步:计算多边形顶点的平均法向。
- 第二步:用Phong光照模型计算顶点的光的强度。
- 第三步:插值计算离散边上个点的光强。
- 第四步:插值计算多边形内域中个点的光强。
- 为了减少计算量,采用增量计算方法。
- 不足:
  - 不能有镜面反射光(高光)
  - 双线性插值是吧能量往四周均匀,平均的结果就是光斑被扩大了,本来没有光斑的底层一插值反而出现了光斑。

### Phong明暗处理
- 双线性光强插值?==》双线性法向插值
- 以时间为代价,引入镜面反射,解决高光问题。

实现步骤:

- 计算每个多边形顶点处的平均单位法矢量。
- 用双线性插值方法求得多边形内部个点的法矢量。
- 最后按光照模型确定多边形内部各点的光强。

### 局部光照模型

仅处理光源直接照射物体表面的光照模型。

简单光照模型,不足之处:镜面反射与物体表面的材质无关。

原理:
自然光反射率系数可用Fresnel公式计算。

posted @   Ptyro  阅读(121)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示