Practical, Dynamic Visibility for Games(可实现动态显示技术)

原文地址

1引言

游戏场景越来越复杂,包含的内容越来越多,动态显示技术很需要。
本文介绍2种互补的方法,大场景、低开销、高速。

2实例介绍

PSV(Potentially Visible Sets)潜在渲染集合

  • 1 static PSV

    • 实现方法: BSP(二叉空间分割), grid(网格)
    • 缺点:无法解决空间物体发生改变的情况
  • 2 dynamic PSV
    • 实现方法:hardware OQS(硬件遮挡检测) 绘制带深度的子集
    • 优点:动态(包括外形可变的物体)

3检测阶段存在的问题(缺点)

3.1 定量问题

3.2 潜在性

缩放空间,通过BVH(层次包含)或八叉树,对祖先进行搜索
每帧会有很多CPU-GPU的同步,延时高。

3.3 突发问题

利用OQS制造一个缓存,牺牲一些准确性提高效能。

潜在问题:

1.如b移动的同时 camera后移,A原来不在视野中会进入视野。

2.相机视野的改变

3.4 GPU开销

GPU资源很宝贵,不能保证尽可能多的GPU都能做渲染。所以不能太依赖GPU

3.5 可变成本

OQS的时候,如果发生改变,最坏情况,需要全部检测,可以通过一致性,既多帧更新的变化,控制可变成本

4.希望完成的工作

OQS改进

  • 不用预处理
  • 适用性高
  • 封堵器的融合(?)
  • 低功耗
  • 降低CPU-GPU依赖
  • 高质量
  • 简单

解决方法

参考细胞分裂游戏中,使用的 HZB(分层Zbuffer)

5.1 实现过程

  • 1.渲染场景一个子集深度,和OQS一样。
  • 2.创建深度层次。在一个4通道深度集中,找出最大深度的对象
  • 3.HZB几何、像素渲染
  • 4.数据返回CPU

Practical, Dynamic Visibility for Games(可实现动态显示技术)的更多相关文章

  1. C#中Dynamic的妙用及代码重构

    应用场景:检查几个表的特定字段是否为空,字段是否为空是在数据库中进行配置的.前台根据数据中字段的设置,进行动态检查. 原始人版: private string CheckFieldNull(MONTH ...

  2. iOS Programming Dynamic Type 1

    iOS Programming Dynamic Type 1  Dynamic Type is a technology introduced in iOS 7 that helps realize ...

  3. 基于OpenGL的三维曲面动态显示实现

    在使用Visual C++的MFC AppWizard建立应用程序框架后,生成了多个类,与OpenGL编程相关的类是视图类,主要的显示任务都在其中完成. 1.基于OpenGL绘图的基本设置 1.1 设 ...

  4. 由C# dynamic是否装箱引发的思考

    前言 前几天在技术群里看到有同学在讨论关于dynamic是否会存在装箱拆箱的问题,我当时第一想法是"会".至于为啥会有很多人有这种疑问,主要是因为觉得dynamic可能是因为有点特 ...

  5. (转) [it-ebooks]电子书列表

    [it-ebooks]电子书列表   [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...

  6. pixi.js tools

    pixi群 881784250 Awesome pixi.js tools A list of useful libs/resources/tools for renowned html5 rende ...

  7. 利用动态图层实现数据的实时显示(arcEngine IDynamiclayer)

    marine 原文利用动态图层实现数据的实时显示(arcEngine IDynamiclayer) 说明:最近一个项目用到这方面知识,文章主要来至网络,后期会加入自己的开发心得.(以下的代码实例中,地 ...

  8. 【转】分析Linux和windows动态库

    原文地址:http://www.cnblogs.com/chio/archive/2008/11/13/1333119.html 摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Lin ...

  9. CUDA Memories--CUDA记忆体(翻译+整理+测试)

    一边学习一边记录(本文中英结合,专业名词统统不翻译) 在CUDA里,host和devices有不同的记忆体空间. 首先呢,CUDA的memory有很多种类啦 1. Global memory 2. C ...

随机推荐

  1. 基于JAVA Socket的底层原理分析及工具实现

    前言 在工作开始之前,我们先来了解一下Socket 所谓Socket,又被称作套接字,它是一个抽象层,简单来说就是存在于不同平台(os)的公共接口.学过网络的同学可以把它理解为基于传输TCP/IP协议 ...

  2. acm 2015北京网络赛 F Couple Trees 树链剖分+主席树

    Couple Trees Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/problemset/problem/123 ...

  3. Web安全微专业正式课 大纲(图片)

    如果想报名学习,可以联系我.QQ:1097321785.

  4. 交替方向乘子法(ADMM)的原理和流程的白话总结

    交替方向乘子法(ADMM)的原理和流程的白话总结 2018年08月27日 14:26:42 qauchangqingwei 阅读数 19925更多 分类专栏: 图像处理   作者:大大大的v链接:ht ...

  5. Winform 5种皮肤小结(内含丰富的下载实例)

    软件界面就是指软件中面向操作者而专门设计的用于操作使用及反馈信息的指令部分. 优秀的软件界面有简便易用,突出重点,容错高等特点. 1.东日IrisSkin  使用IrisSkin只能是对单一的控件重绘 ...

  6. [转载]Flex的文件规则

    原文在:https://blog.csdn.net/hczhiyue/article/details/20483209 文章中给的一个定义很明白,对于初学者来说很有帮助: 什么是 FLEX?它是一个自 ...

  7. CSS模块化:less

    less的安装与基本使用 less的语法及特性 一.本地使用less的方法 Less (Leaner Style Sheets 的缩写) 是一门向后兼容的 CSS 扩展语言.是一种动态样式语言,属于c ...

  8. 百度 Ueditor 使用及规则

    UMeditor 官网::https://ueditor.baidu.com/website/download.html#ueditor文档::http://fex.baidu.com/ueditor ...

  9. 关于学习电信nb-iot的小结

    关于这几天对nb-iot的学习的总结和遇到的坑 初步学习nb-iot,了解到了nb-iot对于传感器数据传输功能的强大: 废话不多说,对于nb-iot我们选择的有人的模块,选择B5频段也就是电信的nb ...

  10. img 图像底部留白的原因以及解决方法

    有时候,我们在添加图片img标签后并没有给该标签设置magrin属性的margin-bottom值,在有些浏览器中打开就会出现图像底部留白,为什么为造成这个原因?下面就来进行分析:由于img元素默认为 ...