游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2018|回复: 2

简单的纹理混合,HLSL代替纹理阶段,帧率居然掉了一半。

[复制链接]

4

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2008-9-12 10:19:00 | 显示全部楼层 |阅读模式
是不是有啥设置不对的呢?

uniform texture Tex0;
uniform texture Tex1;

uniform float4x4 WorldViewProj        :        WORLDVIEWPROJECTION;

struct VS_OUTPUT
{
        float4 pos                :        POSITION;
        float2 texCoord        :        TEXCOORD0;
};

VS_OUTPUT VS(
        float4 Pos                :        POSITION,
        float2 texCoord        :        TEXCOORD0)
{
        VS_OUTPUT Out = (VS_OUTPUT)0;
       
        // transform Position
        Out.pos = mul(Pos, WorldViewProj);
        Out.texCoord = texCoord;
        return Out;
}

sampler Sampler = sampler_state
{
        Texture = (Tex0);
        MipFilter = LINEAR;
        MinFilter = LINEAR;
        MagFilter = LINEAR;
};

sampler Sampler1 = sampler_state
{
        Texture = (Tex1);
        MipFilter = LINEAR;
        MinFilter = LINEAR;
        MagFilter = LINEAR;       
};

float4 PS( VS_OUTPUT In ) : COLOR
{
        float4 f = tex2D(Sampler, In.texCoord);
        float4 f1 = tex2D(Sampler1, In.texCoord);
        float4 f3 = f * (1.0f - f1) + f1;
        return f3;
}

technique RenderNormal
{
        pass P0
        {
                VertexShader = compile vs_2_0 VS();
                PixelShader = compile ps_2_0 PS();
        }
}

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2008-9-12 21:32:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

4

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2008-9-13 10:03:00 | 显示全部楼层

Re:简单的纹理混合,HLSL代替纹理阶段,帧率居然掉了一

好像没问题哎,就当成是4个1.0f了。用ASM重新写了比这个快很多,比原来直接texturestagestate的还是稍微慢一点。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 08:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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