gltfutils.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:python-gltf-experiments 作者: jzitelli 项目源码 文件源码
def setup_shaders(gltf, uri_path):
    """Loads and compiles all shaders defined or referenced in the given gltf."""
    shader_ids = {}
    for shader_name, shader in gltf['shaders'].items():
        uri = shader['uri']
        if uri.startswith('data:text/plain;base64,'):
            shader_str = base64.urlsafe_b64decode(uri.split(',')[1]).decode()
            _logger.debug('* decoded shader "%s":\n%s', shader_name, shader_str)
        else:
            filename = os.path.join(uri_path, shader['uri'])
            shader_str = open(filename).read()
            _logger.debug('* loaded shader "%s" (from %s):\n%s', shader_name, filename, shader_str)
        shader_id = gl.glCreateShader(shader['type'])
        gl.glShaderSource(shader_id, shader_str)
        gl.glCompileShader(shader_id)
        if not gl.glGetShaderiv(shader_id, gl.GL_COMPILE_STATUS):
            raise Exception('failed to compile shader "%s":\n%s' % (shader_name, gl.glGetShaderInfoLog(shader_id).decode()))
        _logger.debug('* compiled shader "%s"', shader_name)
        shader_ids[shader_name] = shader_id
    return shader_ids
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号