查看: 685|回复: 3

关于着色器的问题

[复制链接]

该用户从未签到

发表于 2017-7-28 17:17:06 | 显示全部楼层 |阅读模式
顶点着色器:
void main(void)
{
        gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}

片元着色器:
uniform sampler2D baseTexture;
void main(void)
{
    vec4 color = texture2D( baseTexture, gl_TexCoord[0].st );
    gl_FragColor = color ;
}

程序很简单,加载了一个带有纹理贴图的模型,使用了上面的两个着色器之后模型颜色被更改了,但是如果只加载片元着色器不加载顶点着色器,则模型颜色还是原来的纹理颜色,有大神能帮忙解答一下吗?

该用户从未签到

发表于 2017-8-1 10:23:38 | 显示全部楼层
片元着色用到的数据需要顶点说涩琪传递,不给顶点着色器,片元无法孤立存在。

该用户从未签到

发表于 2017-8-1 14:15:35 | 显示全部楼层
必须同时使用

该用户从未签到

发表于 2017-8-3 11:40:22 | 显示全部楼层
如果你在节点的父节点中曾使用过,默认是会继承父节点的属性,即使两个着色器都没有添加,也会正常的;还有一个情况,那就是你PC机上面测试的时候,如果shader加载失败,机器会使用opengl直接渲染的。建议你在移动去测试,因为移动端只支持opengl es;如果是PC端的话,可以通过修改片元着色器测试,比如,将颜色强制修改为其它的颜色,通过比较颜色来确定是否正常。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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