游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1940|回复: 5

请教大虾 HLSL 简单问题

[复制链接]

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-6-2 11:36:00 | 显示全部楼层 |阅读模式
小弟想实现 2D 渲染中 PixelShade

伪代码 实现如下

if ( texture = null )
    return g_color; // 如果texture为空,则返回g_color变量的值
return tex2d( texture, v.texcoord ) * g_color; // 如果texture不为空,则混合g_color和当前texture的颜色。

小弟的问题是,HLSL中,如何判断texture变量是否为空。

还有就是 感觉 这样的效率还不如固定管线..  这是为什么呀..?

请众位大虾解答..

11

主题

650

帖子

651

积分

高级会员

Rank: 4

积分
651
发表于 2009-6-2 12:53:00 | 显示全部楼层

Re:请教大虾 HLSL 简单问题

2D渲染?指卡通风格渲染么?
什么叫怎么判断 就是if判断呀 == ?
固定管线能卡通渲染么?能的话也很麻烦吧

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2009-6-2 13:01:00 | 显示全部楼层

Re: Re:请教大虾 HLSL 简单问题

resplendence: Re:请教大虾 HLSL 简单问题

2D渲染?指卡通风格渲染么?
什么叫怎么判断 就是if判断呀 == ?
固定管线能卡通渲染么?能的话也很麻烦吧

你好,其实我的问题特别初级,不是什么卡通渲染,就是写这样一个Shader。
我不知道 在 Shader中 如何 判断 一个texture变量是否为空。
写 if ( tex != 0 ) ...; 这样的语句会报错。

11

主题

650

帖子

651

积分

高级会员

Rank: 4

积分
651
发表于 2009-6-2 13:07:00 | 显示全部楼层

Re:请教大虾 HLSL 简单问题

?辶恕N掖永疵幌牍?馕侍 因为我觉得既然要用到纹理 肯定要里面有,不至于如果有纹理就输出纹理的 没有就只输出一种颜色过……

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-6-2 17:09:00 | 显示全部楼层

Re:请教大虾 HLSL 简单问题

尽量不要在shader里做if ( texture = null )的判断,而且sm2.0以下的ps不支持这样的动态分支
用return tex2d( texture, v.texcoord ) * g_color;
用一张1*1大小的白色纹理代替空纹理的情况

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2009-6-2 17:46:00 | 显示全部楼层

Re: Re:请教大虾 HLSL 简单问题

clayman: Re:请教大虾 HLSL 简单问题

尽量不要在shader里做if ( texture = null )的判断,而且sm2.0以下的ps不支持这样的动态分支
用return tex...

受教,谢谢.. :-)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 04:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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