游戏开发论坛

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

我用着色器写画的一个三角形顶点只接受到r颜色值啊,晕

[复制链接]

64

主题

272

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
发表于 2008-1-2 21:54:00 | 显示全部楼层 |阅读模式
顶点是这样定义的
Vertex(float _x, float _y, float _z,float _r, float _g, float _b);
fvf是FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE;

vertices[0] = Vertex(-0.8f, 0.8f, 1.0f,1.0f, 1.0f, 0.0f);//这里只有第4个参数的颜色值被画出来
vertices[1] = Vertex( 0.8f, 0.8f, 1.0f, 0.0f, 0.4f, 0.0f);//这里只有第4个参数的颜色值被画出来
vertices[2] = Vertex( 0.0f, -0.8f, 0.0f, 0.0f, 0.0f, 0.4f);//这里只有第4个参数的颜色值被画出来

程序运行的结果是只有第四个参数的值会影响颜色,其他两个值都没影响T_T,我昨天不知道怎么的弄好了,今天改写其他功能的时候不知道怎样又这样的……超郁闷啊……
///////////////////////顶点着色器///////////////////////////////////////////////////////////
struct VS_OUTPUT {
        float4 position                : POSITION;
        float4 diffuse                : COLOR;
};

VS_OUTPUT vs(        float4 position : POSITION,
                float4 color : COLOR)
{
        VS_OUTPUT output = (VS_OUTPUT) 0;
       
        output.position = position;
        output.diffuse = color;

        return output;
}
//////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////像素着色器///////////////////////////////////////////////////////////
struct PS_OUTPUT {
        float4 color : COLOR;
};

PS_OUTPUT ps(        float4 color : COLOR)
{
        PS_OUTPUT OUT = (PS_OUTPUT) 0;
        OUT.color = color;//只是简单的接收输入的颜色

        return OUT;
}
[em6]

64

主题

272

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
 楼主| 发表于 2008-1-3 11:57:00 | 显示全部楼层

Re:我用着色器写画的一个三角形顶点只接受到r颜色值啊

对了,还想问一下,如果我的顶点结构是D3DFVF_XYZ | D3DFVF_DIFFUSE

这样的结构应该是有7个顶点的,不过我的顶点定义成Vertex(x,y,z,r,g,b),能正确把数据区分开来吗?

而且我的顶点着色器的输入是不是一定要跟FVF对应,或者(float2 position : POSITION, float4 color : COLOT)这样也可以

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2008-1-3 22:09:00 | 显示全部楼层

Re:我用着色器写画的一个三角形顶点只接受到r颜色值啊

对于 pfp 的顶点格式声明,请使用 ID3DVertexDeclare.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-19 09:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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