0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

网格着色器的最佳实践

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-04-01 16:47 次阅读

网格着色器是最近添加到编程管道中的一种,旨在克服经典几何管道使用的固定布局的瓶颈。本文介绍了 DirectX 和 Vulkan 开发人员的最佳实践。

图 1 网格着色器替代几何体管道

推荐

分割数据时,使用 64 个唯一顶点和 126 个三角形基本体的值,中间甜点为 40 和 84 。这里的重点是组织实现,以便直接使用不同的分段进行实验。

尽可能减少放大和网格着色器中的有效负载大小:

使用位压缩和量化表示

用重心替换属性,并允许像素着色器获取和插值属性

网格和放大着色器阶段为 LoD 选择和进一步剔除策略提供了机会。这些可在不同粒度下实现,例如:

在 AS 阶段:剔除簇或进行管道 LoD 决策

在 MS 阶段:剔除单个原语

如果很简单,可以提前做出决策,并使用应用程序中可用的推断数据。这样可以节省大量的工作。请记住,不需要模拟更复杂的剔除方案,默认情况下,硬件会有效地模拟这些方案。

在处理程序实例化时,依赖放大着色器和网格着色器,例如头发或植被、 iso 曲面(流体模拟、医学成像中的体素数据)、从 3D 扫描获得的资源、 LOD 以及 CAD 应用程序中经常遇到的一般详细模型。

考虑特殊网格的拓扑连通性。与显示稀疏拓扑的网格(如粒子)相比,我有单独的实现来处理密集拓扑。

请注意,放大着色器阶段会增加开销,尽管通常这可以忽略不计。

Vulkan:

与 DX 相比,VK_NV_mesh_shader中的网格着色器允许对网格输出进行任意读写访问,这些输出是预先分配的。您可以通过直接使用或重新调整这些输出的用途来获得性能,并避免额外的共享内存分配。

不推荐:

避免放大着色器的大输出,因为这会导致严重的性能损失。通常,我们鼓励灵活的实现,允许微调。考虑到这一点,有许多通用因素会影响性能:

有效载荷的大小。 AS 有效负载最好保持在 108 / 236 字节以下。

放大着色器的调用次数。

由相应放大着色器发射的网格着色器数(放大率)。

不要尝试使用放大和网格着色器模拟固定函数管道,因为这可能会增加冗余。

避免在每一帧的新网格中分割,并考虑脱机烘焙这些数据,这允许在空间或顶点重用中优化网格。

关于作者

wnger:

Ana Mihut 是 NVIDIA 的图形开发工程师,她专注于游戏引擎中新渲染技术的优化和集成。在 NVIDIA 之前,她在 Foundry 担任渲染软件工程师,致力于电影 VFX 渲染。安娜拥有博士学位。纽卡斯尔大学计算机科学专业

Christoph Kubisch 是 NVIDIA 公司的高级开发技术工程师,专注于 OpenGL 和 Vulkan 实时渲染技术,适用于 CAD / DCC 和科学应用。他与外部合作伙伴和 NVIDIA 的内部团队合作,优化当前和未来的渲染算法。在加入 NVIDIA 之前, Christoph 是马格德堡 Otto von Guericke 大学医学数据集硬件加速可视化技术的研究人员。此外,他还作为技术艺术家创作游戏艺术、技术和 DCC 插件开发。

Manuel Kraemer 目前在 NVIDIA 担任图形软件工程师,专注于高性能几何图形处理。在此之前,他曾在皮克斯、迪士尼动画、双底片和英国广播公司担任多个电影、动画和电视项目的技术总监。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4929

    浏览量

    102790
收藏 人收藏

    评论

    相关推荐

    4G模组之UDP应用的最佳实践

    今天说的是4G模组之UDP应用,展示最佳实践,送你参考。
    的头像 发表于 11-08 09:24 171次阅读
    4G模组之UDP应用的<b class='flag-5'>最佳</b><b class='flag-5'>实践</b>!

    MES系统的最佳实践案例

    效率、降低成本、保证产品质量。 MES系统的最佳实践案例 引言 在当今竞争激烈的制造业环境中,企业必须不断寻求创新和改进的方法来保持竞争力。MES系统作为一种关键的信息技术工具,已经被广泛应用于各种制造行业,以实现生产过程的优化和管理。本文将探讨MES系统的
    的头像 发表于 10-27 09:33 534次阅读

    边缘计算架构设计最佳实践

    边缘计算架构设计最佳实践涉及多个方面,以下是一些关键要素和最佳实践建议: 一、核心组件与架构设计 边缘设备与网关 边缘设备 :包括各种嵌入式设备、传感
    的头像 发表于 10-24 14:17 341次阅读

    云计算平台的最佳实践

    云计算平台的最佳实践涉及多个方面,以确保高效、安全、可扩展和成本优化的云环境。以下是一些关键的最佳实践: 一、云成本优化 详细分析云使用情况 :通过细致的监控和分析,识别低ROI(投资
    的头像 发表于 10-24 09:17 300次阅读

    TMCS110x 布局挑战和最佳实践

    电子发烧友网站提供《TMCS110x 布局挑战和最佳实践.pdf》资料免费下载
    发表于 09-12 09:23 0次下载
    TMCS110x 布局挑战和<b class='flag-5'>最佳</b><b class='flag-5'>实践</b>

    衰减 AMC3301 系列辐射发射 EMI 的最佳实践

    电子发烧友网站提供《衰减 AMC3301 系列辐射发射 EMI 的最佳实践.pdf》资料免费下载
    发表于 09-11 09:59 0次下载
    衰减 AMC3301 系列辐射发射 EMI 的<b class='flag-5'>最佳</b><b class='flag-5'>实践</b>

    毫米波雷达器件的放置和角度最佳实践应用

    电子发烧友网站提供《毫米波雷达器件的放置和角度最佳实践应用.pdf》资料免费下载
    发表于 09-09 09:57 1次下载
    毫米波雷达器件的放置和角度<b class='flag-5'>最佳</b><b class='flag-5'>实践</b>应用

    电机驱动电路板布局的最佳实践

    电子发烧友网站提供《电机驱动电路板布局的最佳实践.pdf》资料免费下载
    发表于 09-05 11:33 10次下载
    电机驱动<b class='flag-5'>器</b>电路板布局的<b class='flag-5'>最佳</b><b class='flag-5'>实践</b>

    MSP430 FRAM技术–使用方法和最佳实践

    电子发烧友网站提供《MSP430 FRAM技术–使用方法和最佳实践.pdf》资料免费下载
    发表于 08-23 09:23 0次下载
    MSP430 FRAM技术–使用方法和<b class='flag-5'>最佳</b><b class='flag-5'>实践</b>

    RTOS开发最佳实践

    基于RTOS编写应用程序时,有一些要注意事项。在本节中,您将学习RTOS开发最佳实践,例如POSIX合规性、安全性和功能安全认证。
    的头像 发表于 08-20 11:24 401次阅读

    热烈恭贺|开盛晖腾入围APEC•ESCI最佳实践奖候选

    喜讯!固德威智慧能源合作伙伴开盛晖腾成功入围APEC能源智慧社区倡议最佳实践奖候选名单。在智能电网类中,全国仅4个项目入围! 04:3 APEC ESCI是于2010年由亚太经济合作组织
    的头像 发表于 04-29 17:31 370次阅读
    热烈恭贺|开盛晖腾入围APEC•ESCI<b class='flag-5'>最佳</b><b class='flag-5'>实践</b>奖候选

    鸿蒙原生应用元服务开发-WebGL网页图形库开发着色器绘制彩色三角形

    着色器绘制彩色三角形 使用WebGL开发时,为保证界面图形显示效果,请使用真机运行。 此场景为使用WebGL绘制的彩色三角形图形(GPU绘制)。开发示例如下: 创建页面布局。index.hml示例
    发表于 03-13 15:22

    鸿蒙原生应用元服务开发-WebGL网页图形库开发无着色器绘制2D图形

    着色器绘制2D图形 使用WebGL开发时,为保证界面图形显示效果,请使用真机运行。 此场景为未使用WebGL绘制的2D图形(CPU绘制非GPU绘制)。开发示例如下: 1.创建页面布局
    发表于 03-12 15:42

    鸿蒙原生应用元服务开发-WebGL网页图形库开发概述

    。 一、 着色器 可以理解为运行在显卡中的指令和数据。在WebGL中,着色器是用OpenGL ES着色语言(GLSL)编写的。 完整的着色器包括顶点
    发表于 03-08 14:24

    鸿蒙开发【WebGL】简单了解

    着色器 可以理解为运行在显卡中的指令和数据。在WebGL中,着色器是用OpenGL ES着色语言(GLSL)编写的。 完整的着色器包括顶点着色器
    发表于 02-25 21:56