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

最新文章

  1. 【转】silverlight telerik RadGridView 列头显示其他控件
  2. WS之cxf的权限拦截器应用
  3. 【TFS】增加组员,以及用户权限分配
  4. png、jpg、gif三种图片格式的区别
  5. setTimeout 倒计时
  6. Servlet init()
  7. iOS键盘事件实现、控制
  8. Vue项目搭建与部署
  9. Cookie 简单设置使用
  10. Hadoop记录-技术网站
  11. 【BZOJ2246】[SDOI2011]迷宫探险(搜索,动态规划)
  12. MonGoDB 常见操作, 设置管理员和用户登入
  13. Mybatis特殊值Enum类型转换器-ValuedEnumTypeHandler
  14. Android中的安全与访问权限控制
  15. 使用pidstat监控资源使用
  16. React Native 基础报错及解决方案记录
  17. 解题:USACO12FEB Nearby Cows
  18. hive中创建表失败
  19. 阿帕奇web服务器下载部署安装运行
  20. java数据结构-HashMap

热门文章

  1. Java开源网页抓取工具httpClient以及jsoup
  2. Jmeter之Dummy Sampler
  3. spring 的工厂类
  4. C# HttpWebRequest向远程地址Post文件
  5. exclipe怎么设置编码为UTF-8
  6. 使用SSH连接AWS服务器
  7. CentOS7安装Docker-CE并部署项目
  8. Access to XMLHttpRequest at 'http://localhost:8090/user/getotp' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
  9. 帝国cms 通过栏目获取某个栏目的详情
  10. 收下这波 JS 技巧,从此少加班