`
izuoyan
  • 浏览: 9224457 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Realtime Rendering 3rd笔记 7

阅读更多

3.6 The Pixel Shader

在vs和gs执行之后,图元被clipped并set up准备光栅化,这个阶段是很固定的,不能编程(值得注意的例外是pixel shader可以指定使用哪种插值,perspective corrected or screen space, or none)。每个三角形依次处理,顶点数据在三角形内插值。pixel shader是下一个可编程阶段。在OpenGL中,被称作fragmenet shader,这在某种角度是一个更好的名字。这个意思是说,一个三角形全部或部分的覆盖每个像素,并且材质描绘为不透明的或透明的。光栅器不直接修改像素的颜色,而是生产数据,描述三角形如何覆盖像素。之后在merging阶段,片段的数据被使用来修改像素。
vs的输出成为ps的输入,SM4.0中一共有16个vector可以从vs传输到ps,如果使用gs,可以输出32个vector到ps。SM3.0之后,给ps的额外的输入被加入,例如三角形的哪个面是可见的作为一个输入标志。片段的屏幕坐标对于ps也是可用的。
ps的限制是他只能影响他所处理的片段,不能将结果直接传递给相邻的像素,而是使用顶点插值的数据和存储的常量以及纹理数据。然而,这个限制也不是太严重,因为可以使用image processing来影响相邻的像素(10.9)。
一种情况下ps可以访问临近像素的信息(虽然是间接的),即计算梯度(gradient)或者derivative information。The pixel shader has the ability to take any value and compute the amount by which it changes per pixel along the x and y screen axes.这对于多种计算和纹理寻址很有用。梯度信息不能被动态控制流影响的shader访问。
ps一般是设置片段的颜色,颜色在最终的merging阶段被合并。光栅化阶段产生的深度值也可以被ps修改。stencil buffer的值是不可以修改的,会直接发送到merge阶段。从SM2.0开始,ps可以丢弃(discard)输入的片段数据,即不产生输出。这种操作是消耗性能的,因为GPU将不能进行优化。在SM4.0中,fog计算和alpha test从merge阶段被移动到ps中。(es2.0也一样)
ps可以进行的处理,这种在单一pass中计算任意数目值的能力促进了multiple render targets(MRT)的使用。每个片段可以生成多个向量并被保存到不同的多个buffer中,这些buffer必须是相同尺寸的,并且一些架构需要他们具有相同的bit depth(尽管如果需要格式可以不同)。PS输出寄存器的数量参考独立的buffer的数量,例如4或8。不同于color buffer,附加的target有一些限制。例如,不能使用反锯齿。尽管有这些限制,MRT功能对于更有效的执行渲染算法是一个强大的辅助。如果有很多中间结果的image需要从一批相同的数据中计算出来,只需要一个rendering pass就可以了,而不是每个pass对应一个输出buffer。另外的一个MRT相关的关键能力是从产生的image读取回数据作为纹理使用。

3.7 The Merging Stage

merge阶段独立片段的深度值和颜色和frame buffer进行组合。stencil-buffer,Z-buffer操作在这阶段进行。另外一个操作是color blending。merge阶段是不可编程的,但也不完全固定,他可以通过配置来定制操作。特别是color blending,可以使用很多不同的操作,例如乘法,加法,减法,使用颜色和alpha值;其他的操作如取最小值和取最大值也是可能的,以及还有位逻辑操作。DirectX10增加了从pixel shader输出两个颜色和frame buffer上的颜色进行混合的功能,被称作dual-color blending。
如果采用了MRT功能,blending可以在多个buffer上进行。DirectX10.1引入了一个功能:在每个MRT buffer上进行不同的混合操作,在之前的版本中,所有的buffer只能进行相同的混合操作。(注意dual-color blending和MRT不兼容)

分享到:
评论

相关推荐

    Real-Time Rendering.3rd.pdf

    Real-Time Rendering.3rd.pdf 图片版,凑合用吧

    Realtime Rendering 3ed 第三版 pdf

    但是根据标题和描述,我们可以推断出有关《Realtime Rendering 3ed 第三版 pdf》的知识点。该书是关于实时渲染技术的权威参考书籍,聚焦于计算机图形学在实时应用程序中的应用,如视频游戏、模拟、可视化等领域。...

    Real-Time Rendering, Fourth Edition PDF

    Real-Time Rendering, Fourth Edition 实时渲染最新版 第四版PDF,下载地址见文档....

    realtime rendering 3th

    realtime rendering 第三版 英文版 pdf格式

    realtime rendering 4th高清免解压

    实时渲染4th版(Real-Time Rendering, 4th Edition)由Tomas Akenine-Moller、Erik Haines和Nathan Vella三位专家合著,涵盖了自上一版以来该领域的最新发展和技术进步。本书深入探讨了包括光照模型、阴影技术、纹理...

    Real-Time Rendering 4th Edition 全彩892M百度网盘下载地址

    根据提供的文件信息,我们可以推断出这是一本关于实时渲染技术的专业书籍——《Real-Time Rendering 第四版》。下面将围绕这一主题展开详细介绍,并提取出关键知识点。 ### 实时渲染技术概览 实时渲染(Real-Time ...

    Real-Time Rendering 4rd全彩高清

    Real-Time Rendering 4rd最新版,高清大概800M,详细介绍渲染知识

    Real-Time Rendering 4th Edition完整版 全彩 892MB

    Real-Time Rendering 4th Edition完整版 全彩 pdf 892MB 这里挂的是百度云链接

    Real-Time Rendering 4th Edition高清全彩版

    Real-Time Rendering 4th Edition(实时渲染第4版) 高清全彩版,图形学/游戏方向实时渲染经典书籍推荐,仅供学习使用。百度网盘下载链接永久有效。

    Real-Time Rendering Fourth Edition

    附件为百度网盘链接。...Real-Time Rendering Forth Edition 2018年最新第四版,实时计算机图形学百科全书全新版本,图形学必备,完美pdf版本,非扫描版,可以选择字体,强烈推荐。文件较大,将近1G。

    Advanced Real-Time Rendering in 3D Graphics and Games

    ### 高级实时渲染在3D图形与游戏中的应用 #### 核心概念与背景介绍 随着技术的进步和GPU计算能力的不断增强,高级实时渲染技术已成为3D图形和游戏开发领域的重要研究方向之一。该技术旨在提高虚拟世界的交互性和...

    Audio Visualization Using ThMAD Realtime Graphics Rendering for Ubuntu epub

    Audio Visualization Using ThMAD Realtime Graphics Rendering for Ubuntu Linux 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Real Time Rendering 4 第三卷

    因为本身·很大,大概900m,然而csdn上传只能220m以下,所以分了五卷

    real-time rendering 4 th

    《实时渲染》(Real-Time Rendering)第四版是一本在计算机图形学领域内备受推崇的专业书籍。本书由Tomas Akenine-Möller、Eric Haines、Naty Hoffmann、Angelo Pesce、Michał Iwanicki以及Sébastien Hillaire共同...

    Real Time Rendering 4 第四卷

    因为本身·很大,大概900m,然而csdn上传只能220m以下,所以分了五卷

    real-time rendering---3rd edtion

    7. **物理模拟**:介绍刚体动力学、流体模拟等物理系统在实时渲染中的应用,使得交互体验更加真实。 8. **交互式应用**:讨论了在实时渲染环境中如何实现用户交互,如视口控制、输入响应和碰撞检测。 9. **实例...

Global site tag (gtag.js) - Google Analytics