Practical, Dynamic Visibility for Games(可实现动态显示技术)
2024-10-06 22:44:54
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
最新文章
- 【转】silverlight telerik RadGridView 列头显示其他控件
- WS之cxf的权限拦截器应用
- 【TFS】增加组员,以及用户权限分配
- png、jpg、gif三种图片格式的区别
- setTimeout 倒计时
- Servlet init()
- iOS键盘事件实现、控制
- Vue项目搭建与部署
- Cookie 简单设置使用
- Hadoop记录-技术网站
- 【BZOJ2246】[SDOI2011]迷宫探险(搜索,动态规划)
- MonGoDB 常见操作, 设置管理员和用户登入
- Mybatis特殊值Enum类型转换器-ValuedEnumTypeHandler
- Android中的安全与访问权限控制
- 使用pidstat监控资源使用
- React Native 基础报错及解决方案记录
- 解题:USACO12FEB Nearby Cows
- hive中创建表失败
- 阿帕奇web服务器下载部署安装运行
- java数据结构-HashMap
热门文章
- Java开源网页抓取工具httpClient以及jsoup
- Jmeter之Dummy Sampler
- spring 的工厂类
- C# HttpWebRequest向远程地址Post文件
- exclipe怎么设置编码为UTF-8
- 使用SSH连接AWS服务器
- CentOS7安装Docker-CE并部署项目
- 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.
- 帝国cms 通过栏目获取某个栏目的详情
- 收下这波 JS 技巧,从此少加班