自动纹理管理

d3d中的自动纹理管理

 

   纹理管理是在给定的时间确定哪些纹理需要渲染并保证那些纹理被加载到显存的过程。纹理管理算法可能非常复杂,但是它基本上都会包含下面三个主要步骤:

1. 跟踪可以获取到的显存的总量;

2.计算哪些纹理是渲染所必须的,哪些不是;

3.确定哪些显存中的纹理资源需要被另外的纹理图片替换;

 

    d3d实现了系统支持的纹理管理,保证了纹理加载的性能很快。d3d管理的纹理资源被叫做托管纹理。纹理管理通过给每个纹理加上时间戳即标记该纹理上次使用的时间,来管理纹理。它使用的是最近最少使用的算法来确定哪个纹理应该被删除。如果两个纹理的时间戳相同,则比较两个纹理的优先级。

 

    在创建纹理的时候使用D3DPOOL_MANAGEED标记,就可以创建托管纹理。不允许在创建托管纹理的时候进行指定纹理存储的位置,比如使用D3DPOOL_DEAFAULT和D3DPOOL_SYSTEMMEM标记。在创建完成后,可以调用SetTexture接口来制定纹理。

 

    可以通过IDirect3DResource9::SetPriority接口来为纹理表面来设置优先级。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值