查看: 1242|回复: 3

shader应用的错误

[复制链接]

该用户从未签到

发表于 2009-10-21 11:44:50 | 显示全部楼层 |阅读模式
想实现一个圆环状的贴图。在某一范围内显示某种颜色。以下是片元着色器的代码。请教各位大侠,哪里出错了?
uniform sampler2D sampler0;
uniform sampler2D sampler1;
uniform float factor;
uniform float zfloor;
uniform vec4 suncolor;
void main(void)
{
{
  vec4 color1=texture2D(sampler0,gl_TexCoord[0].st);
  vec4 color2=texture2D(sampler1,gl_TexCoord[1].st);
  color1=factor*color1;
  color2=(1-factor)*color2;
  vec4 color=color1+color2;
  
  vec2 st1(gl_TexCoord[0].s,gl_TexCoord[0].t);
  vec2 org1(0.5,0.5);
  float stdist=distance(st1,org1);
  if(stdist=<0.5)
  {
   if(stdist>=zfloor)
    gl_FragColor=vec4(1,0,0,1);
   else
    gl_FragColor=color1;
  }
  }
}

该用户从未签到

发表于 2009-10-21 12:26:07 | 显示全部楼层
您的意思是让大家来猜谜吗?麻烦您至少提供这样的信息:是什么错误,控制台的错误提示是什么,或者渲染取得的结果是什么,与您的预期有什么不同。否则没有人能回答您的问题

该用户从未签到

 楼主| 发表于 2009-10-21 13:21:13 | 显示全部楼层
不好意思。我没说清楚。主要就是结果不对,加载之后跟固定管线功能一样。怀疑是语法错误,不过我不知道是哪错了。所以请教大家。不过现在知道哪里错了。问题已解决。感谢array!下次有问题我会说清楚点。

该用户从未签到

 楼主| 发表于 2009-10-21 13:22:18 | 显示全部楼层
vec2 st1(gl_TexCoord[0].s,gl_TexCoord[0].t);
  vec2 org1(0.5,0.5);
  float stdist=distance(st1,org1);
错误!低级错误,不好意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表