游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3537|回复: 9

pixel shader(像素着色)输出问题

[复制链接]

10

主题

53

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2008-8-13 18:01:00 | 显示全部楼层 |阅读模式
像素着色输出可以输出哪些东西?COLOR可以输出几个,有什么用,以下这段来自MSDN的代码是什么意思
struct PS_OUTPUT
{
    float4 Color[4] : COLOR0;
    float  Depth  : DEPTH;
};

PS_OUTPUT main(void)
{
    PS_OUTPUT out;

   // Shader statements
   ...

  // Write up to four pixel shader output colors
  out.Color[0] =  ...
  out.Color[1] =  ...
  out.Color[2] =  ...
  out.Color[3] =  ...

  // Write pixel depth
  out.Depth =  ...

    return out;
}
为什么输出的COLOR0会是一个float4的数组,有什么作用呢

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2008-8-13 18:15:00 | 显示全部楼层

Re:pixel shader(像素着色)输出问题

参考MSDN的HLSL的Semantic部分

10

主题

53

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2008-8-13 19:07:00 | 显示全部楼层

Re:pixel shader(像素着色)输出问题

输出COLOR0、COLOR1又是干什么用的,或者说在什么时候要输出COLOR0、COLOR1等,难道说是为了多纹理而准备的吗

10

主题

53

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2008-8-13 19:47:00 | 显示全部楼层

Re:pixel shader(像素着色)输出问题

哪位大仙帮忙解惑一下

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2008-8-13 22:10:00 | 显示全部楼层

Re:pixel shader(像素着色)输出问题

这个叫做Multiple render targets,允许ps把结果输出到多个渲染目标
在deferred shading和卡通渲染中用的比较多,非常有用的技术

2

主题

132

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2008-8-13 22:45:00 | 显示全部楼层

Re:pixel shader(像素着色)输出问题

就是在设备上使用了SetRenderTarget( 0, ... );
SetRenderTarget( 1, .. );

之后,输出的COLOR0 , COLOR1就分别到那些文理上了。
就是多渲染目标。

10

主题

53

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2008-8-14 01:43:00 | 显示全部楼层

Re:pixel shader(像素着色)输出问题

一次性输出4个float4的vector也是为了多渲染目标的吗,那么它跟color0,color1,color2,color3是不是等价的呢

10

主题

53

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2008-8-14 10:24:00 | 显示全部楼层

Re:pixel shader(像素着色)输出问题

struct PS_OUTPUT
{
    float4 Color[4] : COLOR0;
};

strcut PS_OUTPUT
{
    float Color1 : COLOR0;
    float Color2 : COLOR1;
    float Color3 : COLOR2;
    float Color4 : COLOR3;
};
这两种写法是一样的,还是不一样的,谁能帮忙解释一下

2

主题

132

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2008-8-14 12:43:00 | 显示全部楼层

Re:pixel shader(像素着色)输出问题

是等价的, 呵呵.

10

主题

53

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2008-8-14 13:03:00 | 显示全部楼层

Re: Re:pixel shader(像素着色)输出问题

Fenger: Re:pixel shader(像素着色)输出问题

是等价的, 呵呵.

原来如此,总算弄明白了,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 16:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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