首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高多数模型的绘制技术

高多数模型的绘制技术
EN

Computer Graphics用户
提问于 2019-06-27 10:25:41
回答 2查看 114关注 0票数 1

我想知道在图形API中使用栅格化(例如OpenGL或Vulkan )来渲染大型模型的常见技术是什么。

例如,如果我有一个大于1000万三角形的模型,并且渲染整个模型太慢,那么我可以使用什么优化步骤或技术?

我目前知道:

  • 果肉剔除
  • 遮挡剔除

我不知道如何将水果剔除应用于一个单一的模型。我知道它可以用于多种型号:

代码语言:javascript
复制
for( int i=0; i < numObjects; i++ )
{
    if( insideFrustrum( objects[i] )
    {
        addModelToBeRendered( objects[i] );
    }
}
  1. 果肉剔除是否适用于单一模型/网格?
  2. 在呈现大型数据集时,除了这两种技术之外,还可以使用哪些其他技术?
EN

回答 2

Computer Graphics用户

回答已采纳

发布于 2019-06-27 16:14:56

直截了当的解决方案是简单,根本不渲染高聚模型。有一个较低的细节模型,一旦模型太远,您就可以切换到它,这样就不会有什么不同了。在绘制20个三角形时没有任何意义,这些三角形最终都位于同一个像素中。

下一个选项是对模型进行分区,然后裁剪各个部分。您还可以使每个(一组)修补程序具有不同级别的详细信息。

这个分区可以采取补丁的形式,这些补丁大多是平面的。这样,你就可以在整个组中使用背面剔除,方法是取平均法线的点积,并将其与外观向量进行比较,如果它太大,只会显示背面,而渲染该补丁没有任何意义。

票数 1
EN

Computer Graphics用户

发布于 2019-06-28 00:47:17

我的第一个想法(除了剔除)是执行某种基于距离的层次细节算法。我以前听说过一些系统可以有选择地删除边缘和合并面,从而在单个网格上生成较低的细节部分,但大多数系统都倾向于采用一种简单得多的方法,即一旦较高的细节模型离摄像机足够远,就简单地加载到一个完全独立的较低细节模型中。

票数 0
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/8947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档