请问有关深度缓存

antiMight 2012-07-10 05:23:41
D3DRS_ZWRITEENABLE这个是设置对深度缓存的读写,那么如果我clear深度为1.0f后,设置D3DRS_ZWRITEENABLE 为FALSE,再画三角形到非1.0f深度,就不会显示了是吗?
问题是,红龙书里Firework粒子系统中,在渲染梨子系统前,将D3DRS_ZWRITEENABLE 设置为了FALSE,那么应当画不出来了不是吗?这样做的用意是什么呢?
...全文
356 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
antiMight 2012-07-10
  • 打赏
  • 举报
回复
知道了,看了MSDN,发现我对此参数理解有偏差
If FALSE, depth comparisions are still made according to the render state D3DRS_ZFUNC, assuming that depth buffering is taking place, but depth values are not written to the buffer.
也就是说虽然没有改写深度缓存,但是深度比较测试还是进行了的。所以此参数设定为FALSE后的一切绘制相当于与FALSE前深度缓存做比较,因为每次测试成功就绘制,相应地帧缓存改变,而深度缓存没变,以关闭写缓存前的深度值为基准,我们看到的就是分为两部分,远离深度部分,深度测试总失败,重叠部分不绘制,比原深度更靠近部分,深度测试总成功,所以总绘制,所以这部分看到的深度效果是与渲染顺序有关的,只要大于原深度,越靠后的就越靠上。这个过程中深度缓存没有改变,但帧缓存一直在改变。所以我猜测,帧缓存的更新是在深度缓存之前的,在深度测试时每次对比点深度都会将近的点的像素写到帧缓存,但不一定写到深度缓存,写不写就取决于D3DRS_ZWRITEENABLE了,不管写不写,下次深度测试依旧进行,依旧将新的点更新到帧缓存(只不过不写深度缓存的话,对比对象没有变),如此推测,在关掉写深度缓存后,帧缓存与深度缓存是不同步的,而且是很可能。不知我猜测的对否
antiMight 2012-07-10
  • 打赏
  • 举报
回复
还有,我想弄明白的是,帧缓存是否是随深度缓存同步更新的?(保留离屏幕最近的点),是的话,关掉写深度缓存,深度缓存不更新,那么帧缓存也不更新了吗?这到底是怎么个顺序呢?求解答啊各位。
antiMight 2012-07-10
  • 打赏
  • 举报
回复
自己顶个,我刚测试了下,画两个三角形的时候,对离屏幕近的三角形设置了ZWRITEENABLE 为FALSE,但显示的还是近的这个为什么呢?既然深度缓存不会被改写,那么保留的应该还是原来的Z才对啊,那么绘制的不应当是刚刚的三角形吗?
现在我的疑惑就是深度缓存中存的是否是要被绘制的点的深度值?如果是的话,D3DRS_ZWRITEENABLE设置为FALSE后,相当于绘制的深度被锁定了?那么关掉写缓存后再绘制的图像在它上面还是特殊的规则呢?
内容概要:本文提出了一种基于“空调-电动汽车”联合虚拟储能的海岛微电网优化调度方法,旨在解决海岛地区可再生能源消纳难与电力供应不稳定的问题。通过充分利用空调负荷的热惰性与电动汽车的灵活充放电能力,构建联合虚拟储能系统,等效替代物理储能装置,实现对风电、光伏等间歇性电源出力波动的平抑。研究建立了融合需求响应机制与多时间尺度调度框架的优化模型,并采用Matlab进行仿真验证。结果表明,该策略能够有效提升微电网对分布式能源的接纳能力,降低系统综合运行成本,增强供电可靠性与能源利用效率。; 适合人群:具备一定电力系统分析、优化建模及Matlab编程基础,从事微电网、综合能源系统、虚拟储能、需求响应等领域研究的科研人员与工程技术人员,特别适合研究生及以上学历的研究者。; 使用场景及目标:①应用于海岛、偏远孤岛等孤立微电网场景,提升可再生能源渗透率与系统韧性;②为高比例新能源接入的配电网提供低成本、高灵活性的虚拟储能解决方案;③实现空调与电动汽车等柔性负荷的协同优化,达成削峰填谷、降低能耗与运行成本的目标; 阅读建议:建议结合Matlab代码深入理解模型构建与求解过程,重点关注虚拟储能建模逻辑、温控负荷动态特性刻画、电动汽车充放电约束处理以及多时间尺度滚动优化的实现机制,可进一步拓展至碳交易、绿证激励等复合政策情景下的优化调度研究。

8,324

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧