游戏开发论坛

 找回密码
 立即注册
搜索
楼主: bowen

一个有关D3D9里的HLSL函数tex2D()用法的问题

[复制链接]

13

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
 楼主| 发表于 2004-10-31 12:04:00 | 显示全部楼层

Re:一个有关D3D9里的HLSL函数tex2D()用法的问题

我上面说的大概还不够清楚,那我再把我要做的事情描述一下。
我程序里定义的这张纹理不是用来帖图的,只是用来存放数据的,相当于一张查找表,当用到纹理里某个指定位置的数据时,把它读出来。纹理里每个像素里要存放的数据是4个正整数,范围为0-255,比如存放空间中一个正方形的4个顶点高度。不知道把纹理像素格式定义为D3DFMT_A8R8G8B8是否能达到目的?在取出数据的时候,纹理里要读数据的像素位置是知道的,但读出来的数大小不能变化,类型可以改变。用tex2D能否实现这一过程?还有没有其它方法?

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-10-31 14:00:00 | 显示全部楼层

Re:一个有关D3D9里的HLSL函数tex2D()用法的问题

在PS里要的到1以上的数,只有3种方法
1.用常量寄存器
2.自己乘
3.用浮点纹理

D3DFMT_A8R8G8B8只能得到0,1之间的数

13

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
 楼主| 发表于 2004-10-31 14:46:00 | 显示全部楼层

Re:一个有关D3D9里的HLSL函数tex2D()用法的问题

多谢指点,那可能我把数写进纹理的时候已经错了,但我用clear函数把0-255的数写进去编译怎么还可以通过啊?
我把数值写进去的时候是这样写的,比如把(3,3,2,2)写进纹理里坐标为(0,3)的位置:
D3DRECT rect2={0,3,0,3};
V( pd3dDevice->Clear( 1, &rect2, D3DCLEAR_TARGET, D3DCOLOR_RGBA(3,3,2,2), 0, 0 ) );
那在纹理中实际存放的数值是多少啊?
浮点纹理我没用过,怎么用能不能给我讲一下啊?
大概用到哪些函数,存进去后怎么读出来?
麻烦你了,深表感谢!

13

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
 楼主| 发表于 2004-10-31 23:56:00 | 显示全部楼层

Re:一个有关D3D9里的HLSL函数tex2D()用法的问题

大家快帮帮忙啊!

20

主题

473

帖子

502

积分

高级会员

Rank: 4

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

Re:一个有关D3D9里的HLSL函数tex2D()用法的问题

你有一个概念还没有搞清楚
在PS里,在纹理里面,使用的不是0~255之间的RGB值
而是使用的0~1之间的浮点值(浮点纹理可能会超过这个范围)
比如你在一个纹理里面使用纯红色(255,0,0),但是采样出来
得到的值就是(1,0,0)

13

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
 楼主| 发表于 2004-11-1 12:52:00 | 显示全部楼层

Re:一个有关D3D9里的HLSL函数tex2D()用法的问题

那我如果在纹理里写入10,读出来的值是不是10/255?我把读出来的结果乘以255后好象太大了。
tex2D( )函数的第二个参数是纹理空间的坐标,是不是必须为0-1的浮点数?我用正整数作为坐标,编译也可以通过的,搞不懂怎么回事。
我写的这张纹理不是用来帖图,是用来存放数据的,相当于一个查找表,用到某个位置的数据时把它取出来。
我在ps的fx文件里写了一个二维数组存放数据,用来代替纹理做查找表,编译可以通过,但运行是说调入effect文件出错,不知道是什么原因,是不是因为指令数太多,超出了GPU的处理范围?

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-11-1 17:15:00 | 显示全部楼层

Re:一个有关D3D9里的HLSL函数tex2D()用法的问题

最好把你FX FILE发上来看看

13

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
 楼主| 发表于 2004-11-2 10:29:00 | 显示全部楼层

Re:一个有关D3D9里的HLSL函数tex2D()用法的问题

文件比较大,我发你邮箱里了,有空看一下,谢谢!

13

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
 楼主| 发表于 2004-11-2 13:34:00 | 显示全部楼层

Re:一个有关D3D9里的HLSL函数tex2D()用法的问题

你那个邮箱是不是不能用了?
我发了一下被退回来了。

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-11-2 15:34:00 | 显示全部楼层

Re:一个有关D3D9里的HLSL函数tex2D()用法的问题

secondage@163.com
发这个
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-23 05:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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