游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8471|回复: 3

请教这两个标志D3DLOCK_NOOVERWRITE。D3DLOCK_DISCARD

[复制链接]

15

主题

56

帖子

56

积分

注册会员

Rank: 2

积分
56
发表于 2008-4-10 10:19:00 | 显示全部楼层 |阅读模式
一个是追加写入一个是丢弃吗?但是我搞不懂二者有何不同,主要是使用场合,我把D3DLOCK_NOOVERWRITE 改成 D3DLOCK_DISCARD也可以用。那就都用discard不就好了?弄不清。

11

主题

36

帖子

36

积分

注册会员

Rank: 2

积分
36
发表于 2008-4-10 11:22:00 | 显示全部楼层

Re:请教这两个标志D3DLOCK_NOOVERWRITE。D3DLOCK_DISCARD

前者是向Buffer里面再添加数据,并且能在修改数据的时候继续渲染
后者使用对象是Dynamic,像Dynamic Texture,Dynamic Vertex buffer等等
且在修改数据时,能使用原来的数据进行渲染。当修改里面数据完成时,调用Unlock后,就以新的buffer数据进行渲染

如果不使用任何标志进行Lock的话,将会打断CPU和GPU的并行流水线,使GPU处于Idle状态,直到调用Unlock才会使其(GPU)继续工作

15

主题

56

帖子

56

积分

注册会员

Rank: 2

积分
56
发表于 2008-4-10 15:45:00 | 显示全部楼层

Re:请教这两个标志D3DLOCK_NOOVERWRITE。D3DLOCK_DISCARD

前者也是锁定动态的么,书上这么写的。至少我没看出两者实际中效果差别。

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2008-4-11 04:18:00 | 显示全部楼层

Re:请教这两个标志D3DLOCK_NOOVERWRITE。D3DLOCK_DISCARD

效果当然没差别,渲染效率提高了.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 21:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表