loadPrcFileData("", "textures-power-2 none") import os import direct.directbase.DirectStart from Code.Globals import Globals Globals.load(base) from Code.RenderTarget import RenderTarget import shutil sz = 2048 target = RenderTarget() target.setSize(sz, sz) target.addColorTexture() target.setColorBits(16) target.prepareOffscreenBuffer() vertex_shader = """ #version 400 uniform mat4 p3d_ModelViewProjectionMatrix; in vec4 p3d_Vertex; out vec2 texcoord; void main() { gl_Position = vec4(p3d_Vertex.x, p3d_Vertex.z, 0, 1);
// vec3 cubeColor = texture(sourceMap, direction).xyz; resultColor = vec4(sum, 1); } """ shader = Shader.make(Shader.SLGLSL, vertexShader, fragmentShader) size = 1024 mipidx = 0 blurF = 0.5 while size > 1: size /= 2 blurF *= 1.5 target = RenderTarget("precompute cubemap") target.addColorTexture() target.setSize(size, size) target.prepareOffscreenBuffer() stex = target.getColorTexture() target.setShader(shader) target.setShaderInput("sourceMap", envmap) target.setShaderInput("mipIndex", mipidx) target.setShaderInput("blurFactor", blurF) for i in xrange(6): print "Generating face", i, "for mipmap", mipidx target.setShaderInput("directionIndex", i)