os.chdir(curr_dir) import sys sys.path.insert(0, "../../") from panda3d.core import * loadPrcFile("../../Config/configuration.prc") loadPrcFileData("", "textures-power-2 none") loadPrcFileData("", "window-type offscreen") loadPrcFileData("", "win-size 100 100") grain_shader = Shader.load( Shader.SL_GLSL, "../../Shader/DefaultPostProcess.vert.glsl", "GrainShader.fragment.glsl") import direct.directbase.DirectStart from Code.RenderTarget import RenderTarget target = RenderTarget() target.set_size(1024, 1024) target.add_color_texture(bits=8) target.prepare_offscreen_buffer() target.set_shader(grain_shader) base.graphicsEngine.render_frame() base.graphicsEngine.extract_texture_data(target["color"], base.win.get_gsg()) target["color"].write("grain.png")
vec3 samp = texture(SourceTex, scoord).xyz; result = vec4(samp, 1.0); } """ target['color'].set_minfilter(Texture.FT_nearest) target['color'].set_magfilter(Texture.FT_nearest) target['color'].set_wrap_u(Texture.WM_border_color) target['color'].set_wrap_v(Texture.WM_border_color) target['color'].set_border_color(Vec4(1,0, 0, 1)) target.set_shader(Shader.make(Shader.SLGLSL, vertex_shader, fragment_shader)) target_stitch.set_shader(Shader.make(Shader.SLGLSL, vertex_shader, stitch_frag)) target_stitch.set_shader_input("SourceTex", target["color"]) base.graphicsEngine.render_frame() k = target_stitch['color'] base.graphicsEngine.extractTextureData(k, base.win.get_gsg()) p = PNMImage() k.store(p) p.set_num_channels(1) p.write("NormalQuantizationTex-" + str(mip) + ".png") mip += 1