当前位置: 首页>>代码示例>>Python>>正文


Python Shader.make_compute方法代码示例

本文整理汇总了Python中panda3d.core.Shader.make_compute方法的典型用法代码示例。如果您正苦于以下问题:Python Shader.make_compute方法的具体用法?Python Shader.make_compute怎么用?Python Shader.make_compute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在panda3d.core.Shader的用法示例。


在下文中一共展示了Shader.make_compute方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: transform_cubemap_coordinates

# 需要导入模块: from panda3d.core import Shader [as 别名]
# 或者: from panda3d.core.Shader import make_compute [as 别名]
compute_shader = Shader.make_compute(Shader.SL_GLSL, """
#version 430

layout (local_size_x = 16, local_size_y = 16) in;
uniform writeonly image2D DestTex;
uniform samplerCube SourceCubemap;
uniform int size;
uniform int blurSize;
uniform int effectiveSize;
uniform int faceIndex;


vec3 transform_cubemap_coordinates(vec3 coord) {
    return normalize(coord.xzy * vec3(1,-1,1));
}

vec3 get_transformed_coord(vec2 coord) {
    float f = 1.0;
    if (faceIndex == 1) return vec3(-f, coord);
    if (faceIndex == 2) return vec3(coord, -f);
    if (faceIndex == 0) return vec3(f, -coord.x, coord.y);
    if (faceIndex == 3) return vec3(coord.xy * vec2(1,-1), f);
    if (faceIndex == 4) return vec3(coord.x, f, coord.y);
    if (faceIndex == 5) return vec3(-coord.x, -f, coord.y);
    return vec3(0);
}

void main() {
    ivec2 coord = ivec2(gl_GlobalInvocationID.xy);
    ivec2 local_coord = coord - blurSize;
    vec2 local_texcoord = local_coord / float(size) * 2.0 - 1.0;

    vec3 direction = get_transformed_coord(local_texcoord);
    direction = transform_cubemap_coordinates(direction);
    vec3 sampled = texture(SourceCubemap, direction).xyz;

    imageStore(DestTex, coord, vec4(sampled, 1));
}
""")
开发者ID:MYheavyGo,项目名称:RenderPipeline,代码行数:41,代码来源:filter.py


注:本文中的panda3d.core.Shader.make_compute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。