游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2672|回复: 5

D3D里有类似OPENGL里的 pushAttrib()保存现场状态的方法吗?

[复制链接]

26

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2006-11-26 23:11:00 | 显示全部楼层 |阅读模式
OPENGL里,可以使用以下方法保存现场,然后设置某些渲染状态,然后执行相关渲染语句,之后退出,回到原来的渲染状态.
...
glPushAttrib(...);
glPushMatrix();

setSomeAttrib();//设置的属性,包括矩阵,纹理,透明度,等等渲染相关的属性,
renderSomeThing();

glPop();
glPopAttrib();
...
D3D里也有类似的用法吗?是什么函数呢?````
目前我只看见ID3DXMatrixStack:op()和Push();,但这只能保存矩阵的属性吧?!
[em2]

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-11-26 23:57:00 | 显示全部楼层

Re:D3D里有类似OPENGL里的 pushAttrib()保存现场状态的方

IDIRECT3DSTATEBLOCK

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-11-27 11:26:00 | 显示全部楼层

Re:D3D里有类似OPENGL里的 pushAttrib()保存现场状态的方

用 ID3DXEffect ,什么都帮你做了。

26

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
 楼主| 发表于 2006-11-27 11:59:00 | 显示全部楼层

Re:D3D里有类似OPENGL里的 pushAttrib()保存现场状态的方

谢谢~

IDIRECT3DSTATEBLOCK!!...没用过~貌似很对口哦,呵呵`去研究下~``
ID3DXEffect !!这个不是要结合shader使用的吗?要是我不用SHADER...也能解决我这问题啊?

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2006-11-27 12:23:00 | 显示全部楼层

Re:D3D里有类似OPENGL里的 pushAttrib()保存现场状态的方

这种保存所有现场状态的操作代价一般都比较高
频繁使用性能损失太大
最好自己编写代码
保存所需的状态就可以了

26

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
 楼主| 发表于 2006-11-27 13:25:00 | 显示全部楼层

Re:D3D里有类似OPENGL里的 pushAttrib()保存现场状态的方

哦~!这样啊,~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 23:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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