游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4231|回复: 3

c++ 中使用shader

[复制链接]

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2007-11-5 09:29:00 | 显示全部楼层 |阅读模式
在c++中使用shader,使用vs2005,编译shader,
效果文件如下:
float4 PS() : COLOR {
        float color1=        float3(0.45f, 0.65f, 1.0f);
        return float4(0.45f, 0.65f, 1.0f,0.5f);
}

technique TShader {
    pass P0 {
                // States
                AlphablendEnable = true;
                SrcBlend = SrcAlpha;
                DestBlend = InvSrcAlpha;
                AlphaTestEnable = false;
   
        // Compile Shaders
        PixelShader  = compile ps_2_0 PS();
    }
}

如果写成这样子,可以渲染。
但是如果写成下面这样子:
float color1=        float3(0.45f, 0.65f, 1.0f);
float4 PS() : COLOR {
                return float4(0.45f, 0.65f, 1.0f,0.5f);
}

technique TShader {
    pass P0 {
                // States
                AlphablendEnable = true;
                SrcBlend = SrcAlpha;
                DestBlend = InvSrcAlpha;
                AlphaTestEnable = false;
   
        // Compile Shaders
        PixelShader  = compile ps_2_0 PS();
    }
}
使用tv3d6.5进行编译,编译可以通过,但是渲染时出错,为那个mesh指定的该shader,那么这个mesh.render就会出错。
很恶心的一个问题,上官网也问过了,只有一个人回复。
那位了解阿? [em7]

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2007-11-5 11:36:00 | 显示全部楼层

Re:c++ 中使用shader

现在程序可以运行了。
但是很诡异的是,debug和release生成后,f5运行,都会错误。
只有直接从exe运行,才正确。

11

主题

145

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2007-11-6 17:22:00 | 显示全部楼层

Re:c++ 中使用shader

没有6.5的使用经验,一直在用6.2引擎,6.2下的shader文件不是这种写法的。

82

主题

782

帖子

798

积分

高级会员

Rank: 4

积分
798
发表于 2007-11-17 20:47:00 | 显示全部楼层

Re:c++ 中使用shader

我估计是你的显卡布支持你的Shader模式。
不过看样子你的Shader是2.0的,应该可以吧?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 10:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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