Clustered Shading架构实现步骤
最终决定越过Forward+,一步到位,直接调整至更先进的Clustered架构。步骤如下:
里程碑1:以CPU方式实现Light Culling,旨在理念验证,并与D3D10兼容
里程碑2:以GPU CS shader方式实现高度并行化的Light Culling,舍弃D3D10,仅支持D3D11及以上
其中里程碑1又包括:
1. 实现Clustered Frustum的创建,及第三人称网格调试显示
2. 实现光源体的创建,及第三人称网格调试显示
3. 实现光源体在Clustered Frustum中的相交性测试,及第三人称调试显示
4. 规范坐标变换体系,完善系统流程,实现Light Culling结果的第一人称调试显示
5. 提升光源与Cluster相交性测试的性能及准确程度
6. 实现逐Cluster的相关光源列表生成,并输出给shader
7. 最终在Ps shader中实现Cluster相交光源列表的引用及光照、着色计算
步骤配图:
a) 相交性测试调试界面(第三人称)

b) 第一人称与第三人称显示对准

c) 光源裁剪结果显示,坐标系变换校准

4) 最终光照测试效果,DONE!

Clustered Shading架构实现步骤的更多相关文章
- Forward+ Shading架构
Forward+ = Tile based Light Culling + Tile based Forward Rendering 整体渲染架构分为如下3大步骤: 1.PrePass将场景的min ...
- Spark 宏观架构&执行步骤
Spark 使用主从架构,有一个中心协调器和许多分布式worker. 中心协调器被称为driver.Driver 和被称为executor 的大量分布式worker 通信 Driver 运行在它自己的 ...
- 一.把传统服务做成dubbo分布式服务架构的步骤
1.把传统服务按照一定原则(根据项目的业务逻辑和场景)拆分成多个服务(主要服务是服务提供者和服务消费者,服务提供者或服务消费者的公共部分也可以拆分成其他服务,如公共DAO.公共工具类.公共实体,公共w ...
- 企业SOA架构设计理论
SOA简介 SOA(Service-Oriented Architecture,面向服务架构)是一种将信息系统模块化为服务的架构风格.拥有了服务之后,我们就可以迅速地将这些服务按不同方式重新组合,从而 ...
- asp.net三层架构详解
一.数据库 /*==============================================================*/ /* DBMS name: Microsof ...
- SQL Server 2005 中实现通用的异步触发器架构
在SQL Server 2005中,通过新增的Service Broker可以实现异步触发器的处理功能.本文提供一种使用Service Broker实现的通用异步触发器方法. 在本方法中,通过Serv ...
- VLC播放器架构剖析
VLC采用多线程并行解码架构,线程之间通过单独的一个线程控制所有线程的状态,解码器采用filter模式.组织方式为模块架构 模块简述:libvlc 是VLC的核心部分 ...
- MySQL架构备份之双机热备
M--S架构:实现双机热备(AB复制) 1.可以降低master读压力 2.可以对数据库做“热备”,热备只能解决硬件master硬件故障,软件故障等重大故障问题,但无法解决人为误操作导致的逻辑故障(列 ...
- MySQL架构备份之M-S-S级联备份
M--S1--S2 级联复制 master—>slave1—>slave2 master需要开启二进制日志 中间的slave1也需要打开二进制日志,但是它默认不把应用master的操作记录 ...
随机推荐
- hibernate update 只更新部分字段的3种方法(转载)
hibernate 中如果直接使用 Session.update(Object o); 会把这个表中的所有字段更新一遍. 比如: public class Teacher Test { @Test p ...
- java过滤防止sql注入过滤
/** * 过滤特殊字符 * @author: Simon * @date: 2017年8月31日 下午1:47:56 * @param str * @return */ public static ...
- hdu 1622 Trees on the level(二叉树的层次遍历)
题目链接:https://vjudge.net/contest/209862#problem/B 题目大意: Trees on the level Time Limit: 2000/1000 MS ( ...
- Windows环境下 PHP调用R脚本
写在前面的: 由于是windows平台实现的,只要保证脚本命令能在cmd控制台运行,则可以在php中利用system()实现. 注意事项: (1).保证system的路径中无汉字和空格 !! (亲身 ...
- 潭州课堂25班:Ph201805201 并发 第九课 (课堂笔记)
TCP/IP 1,建立连接(三次握手) 1,客户端发起请求 2,服务器请求回应 3,请求确认,双方建立连接 2,数据传输 3,断开连接(四次挥手) 1,客户端请求断开 连接 2,服务器回应请求 3,服 ...
- Docker 停止容器
查看运行的容器 [root@node3 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f070c6924656 ...
- 喵哈哈村的魔法考试 Round #10 (Div.2) 题解
喵哈哈村与哗啦啦村的大战(一) 最大值就是全部+3,最小值就是全部-3,注意不能降为负数. #include<bits/stdc++.h> using namespace std; con ...
- 使用HttpClient实现并发请求
在.Net 4.0之前,一直是依靠HttpWebRequest实现Http操作的.它默认有一个非常保守的同一站点下最大2并发数限制,导致默认情况下HttpWebRequest往往得不到理想的速度,必须 ...
- ie6定位absolute bug触发layout解决
IE6中很多Bug都可以通过触发layout得到解决,以上的解决方法无论是设置zoom:1还是设置width和height其实都是为了触发layout.下列的CSS属性或取值会让一个元素获得layou ...
- winform 中 给DataGridView的表头添加CheckBox
在C/S架构中,给DataGridView的表头添加CheckBox控件: 添加类: /// <summary> /// 给DataGridView添加全选 / ...