为什么Blender导出的着色器(* .frag,* .vert)在Irrlicht

时间:2016-01-06 13:47:55

标签: opengl glsl shader irrlicht

我遇到了#34;官方tuto 10 Shader"在Irrlicht 1.8.3中,我修改了这个官方示例以使用我使用插件从Blender导出的着色器:http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Game_Engine/Export_GLSL

导出的材质只是由简单的漫反射和镜面反射颜色组成,根本不是黑色,但在Irrlicht中它看起来是黑色

以下是Irrlicht SDK中着色器tuto的一部分(我刚刚修改了加载的着色器的名称),假设没有使用CG,并且使用了高级Shader。

case video::EDT_OPENGL:
    if (UseHighLevelShaders)
    {
        if (!UseCgShaders)
        {
            /**I MODIFIED NAMES OF THE ORIGINAL FRAG VERT FILES BELOW*/
            psFileName = "../../media/mat_Material.frag";//opengl.frag";
            vsFileName = "../../media/mat_Material.vert";//opengl.vert";
        }
        else
        {
            // Use HLSL syntax for Cg
            psFileName = "../../media/d3d9.hlsl";
            vsFileName = psFileName; // both shaders are in the same file
        }
    }
    else
    {
        psFileName = "../../media/opengl.psh";
        vsFileName = "../../media/opengl.vsh";
    }
    break;
}

1 个答案:

答案 0 :(得分:3)

查看您发布的着色器文件问题很明显:Blender Game Engine使用的制服和Irrlicht使用的制服非常不同(不同的名称,不同的语义)。您不能简单地将任意着色器文件拖放到现有引擎中,并期望它只是"只是"工作。您必须对其进行调整,使其与加载它的主机渲染代码相匹配。