游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5495|回复: 14

千古难题,被我碰上了!

[复制链接]

24

主题

161

帖子

179

积分

注册会员

Rank: 2

积分
179
发表于 2004-12-1 08:47:00 | 显示全部楼层 |阅读模式
还是几个月前的老问题!

在4200显卡下编程怎么就是不爽呢?

9100显卡怎么编都爽呢?

一个多月都没在4200下调试程序,都是在9100上写的,vs、ps用得很顺手,都达到了目的,可昨天上了4200上一测试,晕死,贴图全不对,尽是白块块晃啊晃,怎么看都没超过4200对shader的限制,怎么改都不行,尤其debug版,有的贴图根本就不显示出来(release版可以显示)!

下了最最最最最新的nvdia驱动,好,白块块总算没了,可debug版的一个关键贴图还是显示不出来(release版可以)!

我发现4200是一块奇烂的dx8显卡!

这里有对nvdia显卡编程熟悉的人吗?请告诉我是怎么回事?不是总要下最最最最最新的驱动才能解决问题吧?

如果有购机或升级显卡的朋友,千万别碰4200! [em17] [em17] [em17]

17

主题

454

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2004-12-1 09:29:00 | 显示全部楼层

Re:千古难题,被我碰上了!

我只感觉ATI的驱动有够烂的.你还是检查一下你自己的程序吧.

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-12-1 10:16:00 | 显示全部楼层

Re:千古难题,被我碰上了!

4200怎么都应该比9100强...
不妨把你的SHADER代码放上来看看

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2004-12-1 10:26:00 | 显示全部楼层

Re:千古难题,被我碰上了!

4200的速度还是不错的,而ATI对R2xx系列的驱动支持也确实不怎么理想。
记得以前的NV驱动对于4200的pixelshader似乎有‘math-ins-slot用满8个并且最后一个使用co-issue情况下该指令被忽略’的问题,但是大概现在应该解决了吧。
另外楼主需要注意的是对于9100和4200的ps寄存器的数值范围是不一样的,不注意的话会出现未预期的clamp导致画面错误。

24

主题

161

帖子

179

积分

注册会员

Rank: 2

积分
179
 楼主| 发表于 2004-12-2 08:48:00 | 显示全部楼层

Re:千古难题,被我碰上了!

关于驱动的事我不想多说,只记得nv的驱动有一版(5xxx)在玩cs1.5时如用d3d驱动则按esc退出再进游戏时墙就透明了,就是这块4200上发生的事。

光放shader代码是没有用的,还有一大堆c代码辅助,不可能放到网上来。

我是严格按vs1.1和ps1.3的标准进行编程的,这两块显卡都是完全支持的(官方说明),不可能是代码错,只会是4200或nv的驱动有问题。

200比9100强?可能速度快点,但画质比9100差太多。我画了1万多个点,9100上各点清晰可见,4200有些点糊住了,显示器是一样的。

我用的9100是原装卡,4200是杂牌卡。

即使nv的驱动在4200上确有些问题,我想nv也不会在这个几年前的卡上下气力改进。

现在4200驱动换了,贴图座标已正确了,但debug版有一个地方不对,而它的release版全对了,问题就在这里。

18

主题

579

帖子

583

积分

高级会员

Rank: 4

积分
583
发表于 2004-12-2 11:18:00 | 显示全部楼层

Re:千古难题,被我碰上了!

。。。。

1

主题

60

帖子

60

积分

注册会员

Rank: 2

积分
60
发表于 2004-12-2 11:33:00 | 显示全部楼层

Re: Re:千古难题,被我碰上了!

现在4200驱动换了,贴图座标已正确了,但debug版有一个地方不对,而它的release版全对了,问题就在这里。


冲这句话,90%就是楼主自己程序的问题。

24

主题

161

帖子

179

积分

注册会员

Rank: 2

积分
179
 楼主| 发表于 2004-12-2 15:10:00 | 显示全部楼层

Re:千古难题,被我碰上了!

楼上对9100上如何解释?9100上两个版本全部正确。

50

主题

992

帖子

1012

积分

金牌会员

Rank: 6Rank: 6

积分
1012
发表于 2004-12-2 15:48:00 | 显示全部楼层

Re:千古难题,被我碰上了!

我种问题我遇到得多了,多数是程序问题,不过也可能是系统问题,比如主板太烂,特别是用VIA芯片的老主板对Nvidia的支持有够臭的

24

主题

161

帖子

179

积分

注册会员

Rank: 2

积分
179
 楼主| 发表于 2004-12-8 11:35:00 | 显示全部楼层

Re:千古难题,被我碰上了!

现在找到了两块显卡在贴图性能上的区别了,用dx9带的工具capsview看的:
9100上:
D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE值为真
4200上:
D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE值为假,没有这一项
查dx9c,有说明如下
The interpretation of MaxTextureRepeat is also affected by the D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE capability bit. When this bit is set, the value in the MaxTextureRepeat member of D3DCAPS9 is used precisely as described. However, when D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE is not set, texture repeating limitations depend on the size of the texture indexed by the texture coordinates. In this case, MaxTextureRepeat must be scaled by the current texture size at the largest level of detail to compute the valid texture coordinate range. For example, given a texture dimension of 32 and MaxTextureRepeat value of 512, the actual valid texture coordinate range is 512/32 = 16, so the texture coordinates for this device must be within the range of -16.0 to +16.0.
英文在大好,只能看懂,不能翻出
4200的问题我想应当是出在这上面。
贴图不正确的地方是使用的贴图的负座标,可能超出了范围,但在最近的一次试验中只在shader中改变贴图座标,并限制座标范围,却发现出现的现象是4200贴图好象不接受座标为负数的情况,我需要将贴图在渲染的时候变化贴图座标,只要是涉及到这方面的时候,4200就错误地进行贴图,很难看。

希望解决了此问题的高手给个意见参考一下。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-23 16:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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