GAMES101课堂笔记(3)着色

  • 着色:对不同物体应用不同的材质。

Blinn-Phong

  • 光照类型:高光、漫反射、环境光照。
    在这里插入图片描述
  • Lambert(漫反射项)

在这里插入图片描述

  • 高光项(V和R很接近==半程向量和法线方向接近)
    在这里插入图片描述
    p限定高光区域的大小(一般为几百)
    在这里插入图片描述
  • 环境光项
    在这里插入图片描述
  • 最终效果就是将上述三个项加起来
    在这里插入图片描述

着色频率

  • 每一个三角形进行一次着色
  • 每一个顶点进行一次着色
  • 每一个像素进行一次着色
  • 计算一个顶点法线的方法:求周围几个三角形的法线的平均(或加权平均)
  • 计算一个像素法线的方法:(已经得到了顶点的法线)利用重心坐标插值方法

渲染管线

在这里插入图片描述

纹理映射

  • n,v都在0~1之内。
  • 纹理映射就是将模型上的每个顶点,找出对应在纹理上的u,v坐标。
  • 四方无缝连接即一张纹理的各个边可以无缝衔接。
  • 重心坐标(如果点在三角形内,则要求三个参数都在0~1之间)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 重心坐标在投影变换下不能保证重心坐标不变,我们应该先计算三维中的重心坐标然后再插值,而不是再投影后的三角形中插值。

纹理太小怎么办?(高分辨率的模型对应一个低分辨率的纹理)

在这里插入图片描述

  • Bilinear(双线性插值)
    在这里插入图片描述
  • Bicubic:取临近的16个进行插值

纹理太大怎么办?

  • 问题:近处锯齿,远处摩尔纹。

在这里插入图片描述

  • 解决办法:(1)超采样(消耗太大)(2)mipmap(以空间换时间,只能用于近似正方形查询,多消耗了1/3的空间)
    在这里插入图片描述
  • mipmap层数之间并不连续,假设要查第1.8层,依然可以用双线性插值的方法进行插值,通过这种方式可以得到一个连续的表示。
  • mipmap缺点:远处可能会过于的模糊(如下,mipmap主要用于正方形的范围查询,而对应的纹素有可能是斜着的或者长方形的),优化的方法:各向异性过滤(对于长方形的有较好的效果,开销为原来的三倍)。
    在这里插入图片描述

纹理应用

  • 纹理就是一块内存,可以对这样一个区域进行点查询、范围查询或者滤波处理。

  • 用作环境光

  • 球面地图的问题:顶部和底部会出现错误(解决办法:将该球放在一个立方体中,将地图映射到立方体上展开)、

  • 凹凸贴图(凹凸映射),以下为三维情况下计算改变后法线的方式,存在问题:边缘不会改变、无法自己向自己投影
    -

  • 位移贴图(实际改变了三角形顶点的位置)
    在这里插入图片描述

  • 作为三维噪声函数。

  • 记录一些已经计算好的信息。

  • 三维纹理用于体积渲染。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值