GPU Gems2 - 3 几何体实例化的内幕(Inside Geometry Instancing)

文章部分内容摘自 https://zhuanlan.zhihu.com/p/38411575

【章节概览】

 

本章讨论了在Direct3D中渲染一个几何体的许多独特实例(Instance)的技术细节问题,对几何体实例(Geometry Instancing)的技术内幕进行了分析。

 

【核心要点】

 

使用几何体实例(Geometry Instancing)的优势在于可以对渲染性能进行优化(最小化花费在提交渲染批次上的CPU时间)。

想要使用应用程序最小化状态和纹理变化次数,并在一次Direct3D调用中把统一批次中的同一个三角形渲染多次。这样就能最小化花费在提交批次上的CPU时间。

这章描述了4种不同的技术来实现Geometry Batch:

  • 静态批次(Static batching)。最快的实例化几何体的方法。每个实例一旦转换到世界空间,则应用它的属性,然后每一帧把已经转换的数据发送给GPU。虽然简单,但静态批次是最不具灵活性的技术。(只一次转换)
  • 动态批次(Dynamic batching)。最慢的实例化几何体的方法。每个实例在每帧都流向GPU存储器,已经转换并应用了属性。动态批次无缝地支持蒙皮并提供了最灵活的实现。(每一帧都要转换数据并传输)
  • 顶点常量实例(Vertex constants instancing)。每个实例的几何体有多份副本一次复制到GPU存储器中的混合实现。然后实例属性在每一帧通过顶点常量设置,而由于顶点着色器完成几何体的实例化。

 

  • 通过几何体实例化API的批次(Batching with Geometry Instancing API)。使用DirectX等图形API提供并支持的几何体实例化,此实现提供了灵活快速的几何体实例化解决方案。与其他方法不同的是,这不需要在Direct3D顶点流中复制几何体包。

高效地渲染相同的几何体(静态批次、动态批次、顶点常量实例化,通过几何体实例化API的批次),他们各有优劣,根据应用和渲染的物体类型分别选取。一些建议:

有相同几何体的许多静态实例的室内场景,很少或从不移动的实例(比如墙壁或家具),采用静态批次较为理想。
有许多动画物体实例的一个室外景物,如策略游戏中有上百个士兵的大战场,在这种情况下,动态批次或许是最好的解决方案。
有许多植被和树以及许多粒子系统的室外场景,其中有很多经常需要修改的属性(例如,树和草随风摇摆),几何体实例API可能是最好的解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246265.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPU Gems2 - 4 分段缓冲(Segment Buffering)

文章参照该文 https://zhuanlan.zhihu.com/p/38411575 【章节概览】 本章介绍了一项可以明显减少一个显示帧中渲染的批次数目的技术——分段缓冲(segment buffering),以及其改进。 【核心要点】 分段缓冲(segment buffering&…

GPU Gems2 - 6 用多流来优化资源管理(Optimizing Resource Management with Multistreaming)

本文摘自https://zhuanlan.zhihu.com/p/38411575 【章节概览】 现代实时图形应用程序最困难的问题之一是必须处理庞大的数据。复杂的场景结合多通道的渲染,渲染起来往往会较为昂贵。 首先,多流(Multistreaming)技术由微软在Dire…

GameObject数组逐渐消失

GameObject数组逐渐消失 我做了10个物体需要每隔俩秒消失一个。 我是这样做的: 我先梳理出大概我需要怎么做的,第一步先引用预制体然后再创建一个数组最后是代码主体。 在start里先把起始时间设好,然后再看Nos方法time是让他时间自己在加&am…

Unity SRP自定义渲染管线 -- 1.Custom Pipeline

该篇是对Catlike Coding这篇文章的概要总结,本人能力有限,如果有不正确的地方欢迎指正 https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/custom-pipeline/ 通过这篇文章,你将学习到 Create a pipeline asset and i…

GPU Gems2 - 7 带位移映射的细分表面自适应镶嵌

文章参照该文 https://zhuanlan.zhihu.com/p/38411575 【章节概览】 这章介绍了如何使用可选的位移贴图(Displacement Mapping)执行Catmull-Clark细分曲面(Catmull-Clark Subdivision Surfaces)的视图相关的自适应镶嵌&#xff0…

GPU Gems2 - 8 使用距离函数的逐像素位移贴图

【章节概览】 距离贴图(distance map)是一种在像素着色器中给对象添加小范围位移映射的技术。这章中详细介绍了使用距离函数的逐像素位移贴图(Per-Pixel Displacement Mapping with Distance Functions)技术。 【核心要点】 这章中…

GPU Gems2 - 9 S.T.A.L.K.E.R.中的延迟着色(Deferred Shading in S.T.A.L.K.E.R.)

关于延迟着色的详细技术及最新渲染管线技术可以参考我的这篇文章: https://blog.csdn.net/yinfourever/article/details/90263638 【章节概览】 本章是对《S.T.A.L.K.E.R.》中所用渲染器的几乎两年的研究和开发的事后剖析。该渲染器完全基于延迟着色(De…

GPU Gems2 - 10 动态辐照度环境映射实时计算

【章节概览】 环境映射(Environment Maps)是常用的基于图像的渲染技术,用来表现以空间上不变的球面函数。本章描述了一种完全GPU加速的方法,来生成一个环境映射在图形上特别有趣的类型——辐照度环境映射(Irradiance …

GPU Gems2 - 11 近似的双向纹理函数(Approximate Bidirectional Texture Functions)

【章节概览】 本章介绍的内容关于如何较容易地采集和渲染的真实材质,如布料、羊毛和皮革等的技术。这些材质难以用早先的技术渲染,它们基本来与兼得的纹理映射。本章的目标是在采集上花费少量的努力,在渲染上花费少量的技术,但是仍…

GPU Gems2 - 12 基于贴面的纹理映射(Tile-Based Texture Mapping)

本文内容摘自https://zhuanlan.zhihu.com/p/38411575 【章节概览】 这章介绍了一个基于贴面的纹理映射(Tile-Based Texture Mapping)系统,用来从一组贴面生成一个大的虚拟纹理。 【核心要点】 使用纹理贴面(Texture Tiling&#…

一些图形学中的数学应用

包围体是一个简单的几何空间,里面包含着复杂形状的物体。为物体添加包围体的目的是快速的进行碰撞检测或者进行精确的碰撞检测之前进行过滤(即当包围体碰撞,才进行精确碰撞检测和处理)。包围体类型包括球体、轴对齐包围盒&#xf…

GPU Gems2 - 13 动态环境光遮蔽与间接光照(Dynamic Ambient Occlusion and Indirect Lighting)

本文摘自https://zhuanlan.zhihu.com/p/38411575 【章节概览】 这章在讲大家很熟知的环境光遮蔽(Ambient Occlusion , AO)。 文中的描述是,介绍了一种用于计算散射光传递的新技术,并演示如何用它来计算运动场景中的全局光照。主要…

解析Monte-Carlo算法(基本原理,理论基础,应用实践)

转载自https://www.cnblogs.com/leoo2sk/archive/2009/05/29/1491526.html 引言 最近在和同学讨论研究Six Sigma(六西格玛)软件开发方法及CMMI相关问题时,遇到了需要使用Monte-Carlo算法模拟分布未知的多元一次概率密度分布问题。于是花了几天…

Unity SRP自定义渲染管线 -- 3.Lights

Lights Single-Pass Forward Rendering 实现 diffuse shading.支持 directional(方向光), point(点光源), and spotlights(聚光灯).每帧可允许最多16个可见光参与渲染每个物体可以最多由4个像素光和4个顶…

Faceware 面部捕捉在Unity中的应用

官网软件下载:https://www.facewaretech.com/ 官网教程:http://support.facewaretech.com/ 官网素材下载:https://www.facewaretech.com/learn/free-assets Faceware Analyzer Faceware Retargeter(Maya) Unity 真…

Tone mapping进化论

转载自 https://zhuanlan.zhihu.com/p/21983679 这几年,随着拍摄设备、渲染方法和显示设备的发展,HDR慢慢会成为标配。照相机和摄像机可以捕捉到HDR的影响,渲染过程中可以产生HDR的画面。这些内容如果需要显示到LDR的设备上,就需…

坐标变换过程(vertex transformation)

原文:https://blog.csdn.net/wangdingqiaoit/article/details/51594408 在上面的图中,注意,OpenGL只定义了裁剪坐标系、规范化设备坐标系和屏幕坐标系,而局部坐标系(模型坐标系)、世界坐标系和照相机坐标系都是为了方便用户设计而…

三灯布光法

原文:https://zhuanlan.zhihu.com/p/62307736?utm_sourcewechat_session&utm_mediumsocial&utm_oi919394520523739136 如果将视频影像比喻成一幅画,光线就是画笔,光影造就了影像画面的立体感。本期圈圈就给大家简单介绍一下视频影像…

齐次坐标

本文是一些关于齐次坐标知识的整合。 https://www.sohu.com/a/258317807_100007727 http://www.songho.ca/math/homogeneous/homogeneous.html https://blog.csdn.net/VenoBling/article/details/87794400 https://www.cnblogs.com/csyisong/archive/2008/12/09/1351372.ht…

Unity SRP自定义渲染管线 -- 4.Spotlight Shadows

英文原文:https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/spotlight-shadows/ 渲染并且读取纹理从光空间(光源角度)渲染为阴影投射(shadow casters)添加一个着色器pass采样阴影贴图支持软阴影…