游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2162|回复: 6

DX10HLSL中定义了一个数组:Texture2D g_tex[10],访问数组出错?

[复制链接]

22

主题

47

帖子

136

积分

注册会员

Rank: 2

积分
136
发表于 2009-7-8 23:20:00 | 显示全部楼层 |阅读模式
Texture2D                g_TexArray[20];
struct VS_INPUT_MAT
{
        float4 PosOSITION;
        float3 Norm:NORMAL;
        float2 Tex:TEXCOORD0;
        uint   Index:TYPE;                        //纹理数组下标
       
};
struct PS_INPUT_MAT
{
        float4 Pos:SV_POSITION;
        float3 Norm:TEXCOORD0;
        float2 Tex:TEXCOORD1;
        uint        matIndex:SV_RenderTargetArrayIndex;//纹理数组下标
};

float4 PSMat(PS_INPUT_MAT input):SV_Target
{
       
        //这句老是报错,换成数字就正确
        //return g_TexArray[input.matIndex].Sample(saa,input.Tex);
        //这样就正确
        return g_TexArray[0].Sample(saa,input.Tex);
        
}

227

主题

1793

帖子

1866

积分

金牌会员

Rank: 6Rank: 6

积分
1866
发表于 2009-7-9 09:26:00 | 显示全部楼层

Re:DX10HLSL中定义了一个数组:Texture2D g_tex[10],访问数组出

uint matIndex改为int matIndex试试看

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2009-7-9 20:20:00 | 显示全部楼层

Re:DX10HLSL中定义了一个数组:Texture2D g_tex[10],访问数组出

静态的贴图数组不能动态索引,改用TextureArray来代替g_TexArray

22

主题

47

帖子

136

积分

注册会员

Rank: 2

积分
136
 楼主| 发表于 2009-7-10 14:02:00 | 显示全部楼层

Re:DX10HLSL中定义了一个数组:Texture2D g_tex[10],访问数组出

静态的贴图数组不能动态索引
--------------------------
这句话很深奥哦,能讲具体吗

22

主题

47

帖子

136

积分

注册会员

Rank: 2

积分
136
 楼主| 发表于 2009-7-10 14:03:00 | 显示全部楼层

Re:DX10HLSL中定义了一个数组:Texture2D g_tex[10],访问数组出

Texture2DArray 里面的纹理好像有限制的,宽度和高度必须相同

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2009-7-10 18:01:00 | 显示全部楼层

Re:DX10HLSL中定义了一个数组:Texture2D g_tex[10],访问数组出

静态的贴图数组就是Texture2D g_tex[10]这种形式的定义啊
实在不行你就多定义几个不同的贴图,然后用if来选择sample其中某个....

22

主题

47

帖子

136

积分

注册会员

Rank: 2

积分
136
 楼主| 发表于 2009-7-11 02:11:00 | 显示全部楼层

Re:DX10HLSL中定义了一个数组:Texture2D g_tex[10],访问数组出

多谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-19 19:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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