游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3445|回复: 9

d3d9 中的纹理可以用 fill 接口来填充,那 d3d8 中要怎么办

[复制链接]

42

主题

418

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
发表于 2006-8-30 00:06:00 | 显示全部楼层 |阅读模式
如题

42

主题

418

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
 楼主| 发表于 2006-8-30 00:08:00 | 显示全部楼层

Re:d3d9 中的纹理可以用 fill 接口来填充,那 d3d8 中要怎么

我试过将其作为渲染目标绘制一个矩形色块,但这只对不透明的颜色有效,透明色怎么办那。。。

33

主题

128

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2006-8-30 04:06:00 | 显示全部楼层

Re: d3d9 中的纹理可以用 fill 接口来填充,那 d3d8 中要怎么

把矩形4个顶点的颜色,设为想要的颜色

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-8-30 09:39:00 | 显示全部楼层

Re:d3d9 中的纹理可以用 fill 接口来填充,那 d3d8 中要怎么

float4 ps(vs_out in)
{
    return float4(你想要的颜色);
}

13

主题

74

帖子

74

积分

注册会员

Rank: 2

积分
74
发表于 2006-8-30 13:20:00 | 显示全部楼层

Re:d3d9 中的纹理可以用 fill 接口来填充,那 d3d8 中要怎么

楼上的如果显卡不支持PS怎么板,嘿嘿。。。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-8-30 14:52:00 | 显示全部楼层

Re:d3d9 中的纹理可以用 fill 接口来填充,那 d3d8 中要怎么

自己lock呗……

42

主题

418

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
 楼主| 发表于 2006-8-30 22:20:00 | 显示全部楼层

Re:d3d9 中的纹理可以用 fill 接口来填充,那 d3d8 中要怎么

呵呵,谢谢各位的回答。本来俺也是向楼上说的那样 lock 纹理的,但不知道到为什么老是 lock 失败,无奈之下俺找了一个临时的替代办法。
把要填充的纹理表面做为渲染目标,关闭 alpha 混合(这里是关键,呵呵^_^),然后渲染一个矩形色块(颜色设为要填充的颜色)。因为 alpha 混合已经关闭,所以颜色会直接渲染到表面上(包括透明色),这样也算是完成填充了。由于还没正式测试过,不知道效率怎么样,不过至少可以先去做其他的功能,而不是一直卡在这边了

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-8-30 22:29:00 | 显示全部楼层

Re:d3d9 中的纹理可以用 fill 接口来填充,那 d3d8 中要怎么

渲染目标在显存中,当然不能lock了,你可以先create一张内存图,lock之后再用updatesurface刷到渲染目标里面去

42

主题

418

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
 楼主| 发表于 2006-8-31 21:37:00 | 显示全部楼层

Re:d3d9 中的纹理可以用 fill 接口来填充,那 d3d8 中要怎么

只是填充纹理的话这种方法的消耗感觉会不会大了一些?不过还是非常感谢 jk20012001 提供的方法^_^

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-9-1 09:30:00 | 显示全部楼层

Re:d3d9 中的纹理可以用 fill 接口来填充,那 d3d8 中要怎么

fill和lock的消耗是一样的。。。因为fill就是用lock做的-_-
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 05:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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