GEMES101-lec8

specular term:镜面反射

稍微光滑一点的平面在反射时会出现高光现象
在这里插入图片描述
能否观察到高光现象和观测方向有很大关系
在这里插入图片描述
p的作用:
在这里插入图片描述
p取100到200,让容忍的角度更小。(哪个角度?看前面的图)

ambient light

我们假设环境光是一个常量(这是一个非常粗略的假设)
在这里插入图片描述

Blinn-Phong reflection model

L=La+Ld+Ls
在这里插入图片描述
环境光+漫反射光+镜面反射光

注意上面的L和光源到point的距离有关,和观测点的距离无关,这点在之后解释。

三种着色方式

shade each triangle ( flat shading )

着色的前提是使用叉积求出每个三角形的法线。
在这里插入图片描述

gouraud shading

先求三角形顶点的法线,求出其着色结果
再对三角形内部的点进行插值
在这里插入图片描述

顶点的法线怎么求?

周围面的法线的平均作为顶点的法线。
改进:周围面的加权平均作为顶点的法线。权是周围面的面积。
在这里插入图片描述

phone shading

在这里插入图片描述
简单的方法也可以达到很好的效果
在这里插入图片描述

gouraud shading 和 phone shading 的区别
前者对三角形内部的点不求法线,也不直接求它们的着色情况,而是根据顶点的着色情况来推测内部的着色情况。
后者对三角形内部的点采取和顶点一样的策略:先求法线,再直接求着色情况。

phone shading 如何求三角形内部的点的法线?采用重心插值的方法。(之后介绍)

求完法线之后,不要忘记对这些法线进行归一化。
在这里插入图片描述

图形管线、实时渲染管线

graphics pipeline
点->三角形->像素->着色->显示
在这里插入图片描述
model view procession ;顶点变换属于第一步
在这里插入图片描述
光栅化在第三步:像素采样看是不是在三角形内
在这里插入图片描述
z-buffer判断是否可见,也属于光栅化的一部分
在这里插入图片描述
如果是gouraud shading,着色需要在第一步:针对顶点着色
如果是phone shading,着色需要在第四步:针对像素着色

shader programs

现代gpu允许编程来自定义着色方案
针对某个顶点或像素写了shader函数,那么该函数会自动地应用于其他的顶点或者像素,不需要写for循环遍历所有的顶点或者像素。

opengl的着色语言:GLSL
在这里插入图片描述
一个简单的示例
在这里插入图片描述
GPU的并行度大于CPU,因为不同像素往往执行相同的着色方法,而GPU内部也是由大量相似的芯片组成的,它们并行地运算,非常适合做计算机图形着色的工作。

texture

在这里插入图片描述
出现纹理的关键:物体表面不同位置的满反射系数kd不同

lives in 3d , goes in 2d

在这里插入图片描述
所以纹理可以做成2d的,但是可以用(帖)在3d物体的表面。
帖的过程,其实是让2d的纹理中的点和3d物体的表面上的点进行一个“映射”,处理好点的映射,也就处理好了三角形的映射,因为我们已经知道了点和三角形的映射关系。
在这里插入图片描述

纹理坐标:texture coordinate

在这里插入图片描述
对于一张纹理,不管是长方形还是方形,u和v都在0-1的区间内。
一张纹理可以在场景中应用多次
在这里插入图片描述
良好的纹理设计可以让其在场景中多次使用时,无缝衔接。
在这里插入图片描述
下节课介绍:
知道三角形顶点信息,如何在三角形内部进行插值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值