美文网首页3D渲染
3D渲染-着色-Blinn-Phong Mode

3D渲染-着色-Blinn-Phong Mode

作者: Cwwng | 来源:发表于2021-07-24 13:45 被阅读0次

一、总体回顾

1624171609036-a9af279a-c019-49e7-9109-9925e64afa99.png

二、问题

下图中左图:每一个正方体颜色相同,看起来不真实。需要shading。


1624171840958-f7743cfe-0648-431c-8a75-123b030a0ff7.png

三、着色 Shading

shading:引入明暗不同、引入颜色不同。
shading在图像学上定义:对不同物体应用不同材质。

四、着色模型: Blinn-Phong Reflectance Model

1624172388284-d12bb2dd-c47e-4de3-abaf-2e9f5be9b96c.png

把上图中的三部分分别都分析表示出来,就可以表示图中杯子的材质。

1、定义

观测方向、光照方向、法线都是单位向量。


1624172683854-4d60e764-4317-497c-a188-3c5145608328.png

2、漫反射

2.1、漫反射定义

漫反射:光线打到物体表面某一个点,光线会被均匀的反射到不同的方向。


1624173631820-65e69fc3-72ea-4f6e-a11e-90e059eef864.png

当物体表面与光照方向有一定夹角时:得到的明暗是不同的。
下图中间图,只接收到3根光线,也就会暗一些。
光照方向和法线的夹角,决定了物体表面的明暗。

2.2、朗伯余弦定律(光线接收能量)

朗伯余弦定律:cosθ = l · n 接收到的能量和光线方向与法线方向的夹角余弦是成正比的。


1624173762344-d1a3ec3f-0424-497b-af2f-39560c733de9.png

2.3、光线到达能量

光线在传播的过程中,考虑单位面积在任何一个位置上所能到达到的能量 是和 光线传播的距离成平方反比。


1624174519432-5f10fc2d-96e5-4738-a9a8-ace32d0874c2.png

2.4、漫反射数学表示

1624175005655-d818a255-a883-48af-b0c3-907d1a27ff2e.png

漫反射结果与观测反响无关。因为漫反射向四周反射信息一样。

2.5、可视化

漫反射系数的变化:值越大,越接近全部反射,也就越亮。


1624175190290-3f67d167-76a7-49c3-b033-3d4c0d5fb260.png

3、高光(镜面反射)

3.1、高光定义

当观测方向与镜面反射方向接近时,可以看到高光。


1624175623658-d26a72a5-b1d6-4bcf-b87b-67346b6ee45b.png

3.2、高光数学表示

为了判断是否能看到高光,只需要判断法线方向和半程向量是否接近。使用点乘可以得出两个向量是否接近。


1624176028005-21848d6f-879f-4b33-ac8f-20cb4efbb549.png

指数p:向量之间的夹角余弦确实能够体现两方向是否足够接近,但容忍度太高。


1624176473946-f8204500-61da-497a-b2ad-726fc6697906.png
在Blinn-Phong模型中,指数p通常为100-200

3.3、可视化

镜面反射系数,表示亮度。
p越大,看到越小的高光。


1624176727152-95185e51-2920-44f8-86ee-983e95fedb28.png

4、间接光照(环境光照)

假设四面八方光相同,得出间接光照数学表示:


1624176961629-16dd5097-2c49-46de-a371-8d4c65c2be2e.png

通过环境光照的数学表示得出:
1、环境光跟直接光照方向无关。
2、环境光跟观测方向无关。
3、环境光跟法线无关。
通过以上分析,可以得出,环境光其实是一个常数。就是某一种颜色(常数颜色)。
环境光作用:保证没有地方全部是黑色。

5、Blinn-Phong Reflectance Model

环境光项是一个常数颜色。
漫反射项与光照和法线反响有关,在光照和法线方向不垂直的时候,会减小。
高光项,只有在很小的地方会产生高光项。


1624178226634-35eab4bd-7a51-4ad0-8089-24e320b0e1dc.png

五、着色局限性

着色不考虑其他点的存在,只考虑着色点。
着色具有局部性,可以看到明暗变化,但是看不到阴影。


1624178539510-bc539107-08fa-4b5f-8c83-18e1a3b57202.png

怎么处理阴影?

相关文章

  • 3D渲染-着色-Blinn-Phong Mode

    一、总体回顾 二、问题 下图中左图:每一个正方体颜色相同,看起来不真实。需要shading。 三、着色 Shadi...

  • 着色器和渲染管线

    3d渲染两个重要概念,着色器和渲染管线,说白了这是什么呢 着色器分为顶点着色器和片元着色器,都是给3d图像投影到一...

  • 3D渲染-着色-着色频率

    一、定义 1、现象 拥有完全相同的几何形状,几何表示在空间中是一样的,从球的边界可以看出,模型用的是一样的。为什么...

  • Metal Shading Language - 语法小结

    Metal Shading Language简述 Metal 着色语言是用来编写3D图形渲染逻辑 和 并行计算核心...

  • Metal Shading Language(Metal 着色语

    简介 Metal 着色语言是用来编写 '3D 图形渲染' 和 '并行计算核心逻辑' 的 ⼀⻔编程语⾔。 当你使⽤ ...

  • Metal Shading Language 语法规范

    1. Metal Shading Language简介 Metal着色语言是用来编写3D图形渲染逻辑和并行计算核心...

  • Metal着色语言规范

    Metal Shading Language 是做什么用的? Metal着色语言是用来编写3D图形渲染逻辑和并行计...

  • 3D渲染-光栅化-阴影

    一、回顾 在 着色 Blinn-Phong Model 的最后,我们遗留了 在光栅化里,是如何生成阴影的? 的问题...

  • OpenGL:图形渲染流程 以及iOS中渲染框架

    图像图形渲染流程 1.着色器渲染流程渲染过程中必须存储2种着色器分别是:顶点着色器,片元着色器。其中顶点着色器是第...

  • Unity--Shader(一)

    一、Shader的介绍 Shader(着色器)Shader是专门用来渲染3D图形的一种技术,他分为Vertex S...

网友评论

    本文标题:3D渲染-着色-Blinn-Phong Mode

    本文链接:https://www.haomeiwen.com/subject/eetvmltx.html