zoukankan      html  css  js  c++  java
  • 【二】图形学重要概念

    摘要

    • 图形学中的重要概念
      • 色彩视觉
      • 图像和像素
      • 三角网络模型
      • 光照模型和明暗处理
    • 视点变化和视点方向

    1.色彩视觉

    • 色彩是对不同波长的光的能量的感知
    • “光”是由不同波长的电磁波混合而成
    • 谱分布:光在各个可见波长的分量的强度分布函数称为光的谱分布

    RGB色彩空间

    • 使用RGB(红绿蓝)色彩空间。通常规整化到[0,1]内的浮点数;当时用8bit进行存储时,取值[0,255]内的整数
    • 色彩组合,rgb的线性组合

      C = rR + gG + bB

    缺点

    部分色彩无法用RGB表示

    CMY色彩空间

    • CMY:Cyan(青),Magenta(品红),Yellow(黄),分别为RGB的补色

    • CMY被称为“减色系统”

      • RGB为“加色系统”(0,0,0)黑,(1,1,1)白
      • CMY (0,0,0)白, (1,1,1)黑

    HSV色彩空间

    • 在真实的RGB空间中,可以包含

    256 * 256 * 256=16777214种可能

    • HSV圆锥形的色彩空间
      • Hue(色调):表示本身属性
      • Saturation(饱和度):也交纯度,饱和度越低,色彩越白
      • Value of brightness(亮度):亮度越低,色彩越黑

    2.图像和像素

    • 图像pixel
      • 图像可以看成一个二维离散函数:f(x,y)
      • 函数f的定义域是又矩阵排列着下许多格子组成,格子被称为像素(pixel)
      • 函数f的取值为各个像素的色彩,可以是RGB或者RGBA,对于灰度图像,f为单值函数

    3.三角网格模型

    • 图形学的基本目标
      • 在虚拟的三维场景及相机位置信息中,生成一幅二维图像
      • 三维场景以怎么样的数据结构表示?
        • 简单的球体,长方体可直接用其参数描述
        • 对于复杂模型,需要使用参数曲线和曲面或者更一般的网格模型就行描述
        • 网格模型中三角网格最为常用

    三角网格定义

    • 三角网格由一系列欧式空间中的三维定点以及连接这些顶点的若干三角面片组成,包括:
      • 顶点集合

        V=(v1,v2,...,vn)

      • 面片几何

        F=(f1,f2,...,fm)

        • 其中F每个面皮fi都是由V中顶点构成的空间三角形

    法向量

    • 三角面片的法向量(normal)

      • 三角面片的法向量垂直于三角形面片的非零向量
      • 对于每个三角面片而言,法向量都有两个朝向
      • 法向量的朝向决定三角面片的正面还是反面
      • 对连续可定向的三角网格整体而言,相邻面皮具有相同的朝向
    • 三角网格顶点的法向量可以通过周围三角面片法向量的加权叠加计算:

      • 假设v是k个三角面的公共顶点

      • 按算数平均计算

        Nv=(Nf1+...+Nfk)/k

      • 按面积加权计算

        Nv=(Sf1Nf1+...+SfkNfk)/(Sf1+...+sfk)

      • 按角度加权计算

        Nv=(Angf1Nf1+...+AngfkNfk)/(Angf1+...+Angfk)

    三角网格的简单绘制

    • 三角网格模型的每个顶点需要指定一个色彩属性
    • 基于色彩的绘制
      • 模型表面的每点色彩通过其所在的三角面片顶点色彩插值得到
    • 基于光照的绘制
      • 制定一个虚拟的光照环境
      • 计算光照对色彩的影响

    4.光照模型

    • 光照模型(lighting model)用于计算光的强度
      • 局部光照明(Local Lighting)
        • 关注物体直接受到光源影响所产生的光照效果
      • 全局光照明(Golbal Lighting)
        • 关注阴影效果
        • 关注所有不是直接与光源位置相关的关照效果,例如反射折射等等

    光照模型历史

    • 1971年,Gouraud提出了漫反射模型加插值的思想:
      • Lambert漫反射,Barvcentric插值
      • 发表于IEEEtransaction On Computers
    • 1975年,Phong提出图形学中第一个有影响的也是最有影响的光照模型:Phong模型
      • 漫反射(diffuse light)+ 环境光(ambient light) + 高光(specular light)
      • 发表于 Communication of ACM

    光的传播

    • 光的传播遵循反射定律:
      • 入射角等于反射角
      • 入射光线,反射光线,法向共面

    • 折射定律(Snell定律)
      • 入射角和反射角的正弦值之比是一个仅仅取决于介质的常熟
      • 被称为折射系数

    光线能量守恒定律

    • 光的传播遵循能量守恒定律

      Ii=Id+Is+It+Iv

      • Ii:入射光的能量
      • Id:漫反射能量
      • It:折射能量
      • Is:镜面反射光的能量
      • Iv:被介质和物体吸收的能量

    光的度量方法

    • 立体角(Solid Angle):

      • 衡量无题相对于某一视点P的视角大小
      • 立体角最大为4π
    • 光通量(Luminous Flux):

      • 定义:单位时间内通过面元dS的光能量,几座dF
    • 发光强度(Radiance):

      • 定义:单位立体角内的光通量,记作I

    Phong光照模型

    • Phong模型支持电光源和方向光源
    • Phong模型是局部光照模型,将局部光照明效果分为三部分
      • 漫反射光效果
      • 镜面反射光效果
      • 环境光效果

    L入射光,R反射光,N物体表面法向量,V视点方向,H是L和V夹角的角平分线方向

    • 漫反射效果

      • 漫反射光的传播是各向同性的

      • 漫反射光的强度为:

        Id=IiKd * (L*N)

      • Kd漫反射系数

      • Kd具有三个分量Kdr,Kdg,Kdb表示RGB三个通道的漫反射系数

      • Kd与模型自身的色彩密切相关

    • 镜面反射光效果

      • 对于光滑的平面,依据反射定律,反射光线往往集中在一个小的立体角内,这些光线被称为镜面反射光

      • 镜面反射光的强度为

        Is=IiKs*(RV)^n

      • Ks是镜面反射系数,与物体光滑程度相关

      • n是反射指数,n越大,高光区越集中

    • 环境光效果

      • 晃的强度为

        Ia=IiKa

      • Ka是物体对晃的反射系数

    明暗处理(Shading)

    • 考虑到物体表面的几何细节往往不规则,为了减缓模型离散化所导致的不光滑的色彩效果,通常的明暗处理除了使用光照模型外,还需要进行差值
    • Gouraud明暗处理和Phong明暗处理
      • Gouraud明暗处理是对色彩进行差值
      • Phong明暗处理则是对法向量进行差值

    Gouraud明暗处理

    • 计算方法
      • 首先计算所有模型顶点的色彩值
      • 对模型上的任何一点,按照其所在的三角面片上的顶点的色彩按重心差值的结果赋予其色彩值

    Phong明暗处理

    • 计算方法
      • 与Gouraud明暗处理不同,Phong明暗处理不是对色彩差值,而是对点的法向量进行插值,得到连续的方向量场,在利用该法向量场逐点使用光照模型进行色彩计算。

  • 相关阅读:
    TCP为什么是个可靠的协议
    socket网络编程快速上手(二)——细节问题(4)
    socket网络编程快速上手(二)——细节问题(3)
    socket网络编程快速上手(二)——细节问题(2)
    socket网络编程快速上手(二)——细节问题(1)
    socket网络编程快速上手(一)
    多线程编程中使用pthread_create内存泄露问题
    股市量化智能分析2035
    忘记mysql root密码的解决方法
    CentOS 下快速安装部署Nginx网站
  • 原文地址:https://www.cnblogs.com/SeekHit/p/7612533.html
Copyright © 2011-2022 走看看