MCPcopy
hub / github.com/shunsukesaito/PIFu / __init__

Method __init__

lib/renderer/gl/render.py:10–151  ·  view source on GitHub ↗
(self, width=1600, height=1200, name='GL Renderer',
                 program_files=['simple.fs', 'simple.vs'], color_size=1, ms_rate=1, egl=False)

Source from the content-addressed store, hash-verified

8# NOTE: Render class assumes GL context is created already.
9class Render:
10 def __init__(self, width=1600, height=1200, name='GL Renderer',
11 program_files=['simple.fs', 'simple.vs'], color_size=1, ms_rate=1, egl=False):
12 self.width = width
13 self.height = height
14 self.name = name
15 self.use_inverse_depth = False
16 self.egl = egl
17
18 glEnable(GL_DEPTH_TEST)
19
20 glClampColor(GL_CLAMP_READ_COLOR, GL_FALSE)
21 glClampColor(GL_CLAMP_FRAGMENT_COLOR, GL_FALSE)
22 glClampColor(GL_CLAMP_VERTEX_COLOR, GL_FALSE)
23
24 # init program
25 shader_list = []
26
27 for program_file in program_files:
28 _, ext = os.path.splitext(program_file)
29 if ext == '.vs':
30 shader_list.append(loadShader(GL_VERTEX_SHADER, program_file))
31 elif ext == '.fs':
32 shader_list.append(loadShader(GL_FRAGMENT_SHADER, program_file))
33 elif ext == '.gs':
34 shader_list.append(loadShader(GL_GEOMETRY_SHADER, program_file))
35
36 self.program = createProgram(shader_list)
37
38 for shader in shader_list:
39 glDeleteShader(shader)
40
41 # Init uniform variables
42 self.model_mat_unif = glGetUniformLocation(self.program, 'ModelMat')
43 self.persp_mat_unif = glGetUniformLocation(self.program, 'PerspMat')
44
45 self.vertex_buffer = glGenBuffers(1)
46
47 # Init screen quad program and buffer
48 self.quad_program, self.quad_buffer = self.init_quad_program()
49
50 # Configure frame buffer
51 self.frame_buffer = glGenFramebuffers(1)
52 glBindFramebuffer(GL_FRAMEBUFFER, self.frame_buffer)
53
54 self.intermediate_fbo = None
55 if ms_rate > 1:
56 # Configure texture buffer to render to
57 self.color_buffer = []
58 for i in range(color_size):
59 color_buffer = glGenTextures(1)
60 multi_sample_rate = ms_rate
61 glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, color_buffer)
62 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)
63 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)
64 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
65 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
66 glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, multi_sample_rate, GL_RGBA32F, self.width, self.height, GL_TRUE)
67 glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, 0)

Callers

nothing calls this directly

Calls 3

init_quad_programMethod · 0.95
loadShaderFunction · 0.85
createProgramFunction · 0.85

Tested by

no test coverage detected