美文网首页3D渲染
3D渲染-光栅化-阴影

3D渲染-光栅化-阴影

作者: Cwwng | 来源:发表于2021-07-29 19:58 被阅读0次

一、回顾

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

着色是一种局部的现象,只考虑着色点自己、光源、摄像机进行着色,完全没有考虑其他物体。 实际来说不对,因为有其他物体挡在 shading point和光源之间,那就会挡住光线,光线就达到不了 shading point,自然计算出的结果是黑的。这就是为什么会有阴影。

二、处理阴影

1、定义

在光栅化中解决阴影问题的方法:Shadow mapping 阴影映射。 Shadow Mapping:只能处理点光源。这种阴影通常会有非常明显的阴影边界,叫硬阴影。

2、核心思想

不是阴影:你可以从摄像机看到这个点,并且光源也可以看到这个点。 阴影:你可以从摄像机看到这个点,但是光源看不到这个点。

3、Shadow Mapping

方法:使用shadow mapping做两次光栅化,通过深度对比方式,得到阴影。

(1)先从光源看向场景:将摄像机放置光源处,做一次光栅化,得到一幅深度图,不做着色处理。


1627554248247-8d4a428e-0799-463d-9ced-c1a4c8071077.png

(2)从眼睛再次看向场景,得到一幅深度图。


1627554346200-e28529cd-21db-403c-9dfe-eb86ba3a1f95.png
(3)对于一个点,相对应的两幅深度图的值时一样的,说明无遮挡。值不同,说明有遮挡。
1627554475796-5d6a51de-8a92-4dde-ad6d-201d6429852b.png

4、分析

shadow mapping中第一步的操作,得到的深度图就是阴影映射。这个深度图的分辨率,决定阴影的质量。(类似于纹理贴图,纹理过大、过小的问题)。
shadow mapping只能处理点光源,生成硬阴影。


1627559539138-084fffb7-0ffe-47ee-9f10-029e8e985aee.png

相关文章

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

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

  • iOS笔记

    iOS 性能优化 产生离屏渲染:圆角,阴影,光栅化,透明度,遮罩, 使用CGContext在drawRect中绘制...

  • 零零碎碎的知识点

    1.圆角,图层遮罩,阴影或者是图层光栅化(GPU离屏渲染)会强制Core Animation提前渲染图层的离屏绘制...

  • 性能优化的点

    1 离屏渲染 光栅化 圆角(生成圆角图 系统圆角 贝塞尔曲线遮罩) 后两个会离屏渲染 阴影 加上showdowPa...

  • ios开发shouldRasterize光栅化--离屏渲染

    shouldRasterize(光栅化)是比较特别的一种离屏渲染:光栅化概念:将图转化为一个个栅格组成的图象。光栅...

  • iOS性能优化涉及方面总结

    性能优化:界面卡顿优化:1、减少离屏渲染,造成离屏渲染的有shouldRasterize(光栅化)、mask(遮罩...

  • 光栅化渲染管线详解

    光栅化渲染管线是学习图形学的基础,学习渲染管线流程时,如果对其中的各个关键步骤理解不够深入,可能会看得一头雾水。这...

  • 2018-10-28

    渲染流水线的三个概念阶段:应用阶段,几何阶段,光栅化阶段

  • Unity Shader入门学习笔记(更新中)

    2 渲染流水线 应用阶段-几何阶段-光栅化阶段 应用阶段由CPU负责,输出渲染所需的几何信息,即 渲染图元(ren...

  • OpenGL 入门

    走向3D 2D + 透视 = 3D 3D术语 (入门级) 光栅化:实际绘制或填充每个顶点之间像素的形成线程 着色:...

网友评论

    本文标题:3D渲染-光栅化-阴影

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