OpenGL 阴影图之二
OpenGL阴影图
- OpenGL阴影图简介
- 源代码剖析
- 主要源代码
OpenGL阴影图简介
在上一课中,我们学习了阴影显示方法的基本原理,并了解了如何将深度渲染到纹理中,然后通过深度缓冲区的采样器将其显示到屏幕上。在本课中,我们将看到如何使用它来显示阴影。
我们已经知道阴影显示分两个阶段进行:第一个场景从光源位置渲染。让我们回想一下 Z 顶点坐标在其中发生的情况:
落入顶点着色器的顶点位置在本地空间中指定。
着色器将位置从本地空间转换为剪辑,然后通过管道转换(如果需要刷新内存,请查看第 12 课)。
栅格生成透视除法(将位置向量除以其 W 元素)。因此,我们从剪辑空间移动到 NDC。在 NDC 空间中,任何进入屏幕的坐标都有 X、Y 和 Z 坐标[-1,1]。过去的一切都会完全被切断。
然后,栅格在帧缓冲区分辨率(例如 800x600、1024x768 等)中显示 X 和 Y 坐标。结果是顶点位置的屏幕空间坐标。
栅格从三角形的 3 个顶点获取这些坐标,并插值这些坐标,以便为进入三角形的每个像素创建唯一坐标。Z 值(在 [0,1] 段中)也具有插值,因此每个像素都有自己的深度。
由于我们在第一次传递中禁用了颜色缓冲区中的渲染,因此不需要分段着色器。深度测试仍在进行中。通过将每个像素的 Z 值与位于屏幕同一点的 Z 值进行比较,我们选择最小值,并
OpenGL 阴影图之二相关推荐
- OpenGL(十二)——Qt OpenGL绕着坐标轴旋转多边形
OpenGL(十二)--Qt OpenGL绕着坐标轴旋转多边形 一.旋转多边形 前两篇介绍了如何绘制多边形,并且给多边形进行上色.本篇介绍如何旋转多边形. 多边形的旋转,在类中增加两个变量来控制这两个 ...
- OpenGL入门学习[二] 绘制简单的几何图形
OpenGL入门学习[二] 本次课程所要讲的是绘制简单的几何图形,在实际绘制之前,让我们先熟悉一些概念. 一.点.直线和多边形 我们知道数学(具体的说,是几何学)中有点.直线和多边形的概念,但这些概念 ...
- OpenGL学习之二 -- 初探
OpenGL学习之二 -- 初探 前言 1. Xcode搭建OpenGL环境 1. 1 搭建步骤 1. 2 写一个最简单的openGL测试代码 1. 3 源码下载 2. 图形API简介 3. Open ...
- Android OpenGL ES 学习(二) -- 图形渲染管线和GLSL
OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学 ...
- 【OpenGL】笔记二十九、抗锯齿(MSAA)
1. 流程 经过之前的教程,我们目前渲染出来的画面已经有了足够的表现力,但是还是有一些缺陷,比如当我们的渲染画面分辨率跟不上屏幕分辨率时,在我们渲染的图形边缘一些比较严重的锯齿效果就会显现: 自然,这 ...
- Learn OpenGL (十二):投光物
平行光 当一个光源处于很远的地方时,来自光源的每条光线就会近似于互相平行.不论物体和/或者观察者的位置,看起来好像所有的光都来自于同一个方向.当我们使用一个假设光源处于无限远处的模型时,它就被称为定向 ...
- 【OpenGL】十二、OpenGL 绘制线段 ( 绘制单条线段 | 绘制多条线段 | 依次连接的点组成的线 | 绘制圈 | 绘制彩色的线 )
文章目录 一.设置线宽度 二.绘制单条线段 GL_LINES 三.绘制多条线段 GL_LINES 四.绘制依次连接的点组成的线 GL_LINE_STRIP 五.绘制圈 GL_LINE_LOOP ( 偶 ...
- OpenGL中的二维编程——从简单的矩形开始
一.OpenGL的组成 图元函数(primitive function)指定要生成屏幕图像的图元.包括两种类型:可以在二维.三维或者四维空间进行定义的几何图元,如多边形:离散实体:位图. 属性函数(a ...
- android系统硬件OpenGL 3D移植(二)
通过前面两篇文章: http://blog.csdn.net/andyhuabing/article/details/7176049 http://blog.csdn.net/andyhuabing ...
最新文章
- 通过网络方式安装linux的五种方法
- Android:30分钟弄明白Touch事件分发机制
- MYSQL韩文显示正常一法
- 睡前一分钟打造完美下半身 - 健康程序员,至尚生活!
- 【CodeForces - 371D】Vessels(思维,元素合并,并查集)
- 阿里云数据传输服务低价不低质,服务再升级
- Laravel核心解读--ENV的加载和读取
- python爬虫网页中的图片_Python爬取网页中的图片(搜狗图片)详解
- sqoop导出数据|Hive|HDFS和脚本编写
- Java内存解析 程序的执行过程
- 网络棋牌游戏创造快乐心情
- 解决迅雷极速版强制升级-20190715
- No matching provisioning profile found: Your build settings specify a provis...
- oracle 18c ad登陆,Oracle 18c PSU
- linux下编译和安装log4cxx,Linux下log4cxx的安装使用
- 用Python实现连续图文识别
- freemaker 前端web教程
- Keil MDK使用第11篇---keil炫酷颜色主题
- CP2K代码分析一:CP2K主程序
- 如何通过一张照片来获取ip地址?