def __init__(self, src, actor=None): Component.__init__(self, actor) # TODO Include a mesh name (e.g. 'Dragon') as ID as well as src (e.g. '../res/models/Dragon.obj') self.src = src self.filepath = Context.getInstance().getResourcePath('models', src) # OpenGL version-dependent code (NOTE assumes major version = 3) self.vao = None if Context.getInstance().GL_version_minor > 0: # 3.1 (or greater?) self.vao = glGenVertexArrays(1) else: # 3.0 (or less?) self.vao = GLuint(0) glGenVertexArrays(1, self.vao) glBindVertexArray(self.vao) self.loadModel(self.filepath) self.vbo = VBO(self.meshData, GL_STATIC_DRAW) self.vbo.bind() glEnableVertexAttribArray(0) glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6*4, self.vbo+0) glEnableVertexAttribArray(1) glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 6*4, self.vbo+12) self.ebo = glGenBuffers(1) glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, self.ebo) glBufferData(GL_ELEMENT_ARRAY_BUFFER, len(self.elements)*4, self.elements, GL_STATIC_DRAW)
def __init__(self, src, actor=None): Component.__init__(self, actor) # TODO Include a mesh name (e.g. 'Dragon') as ID as well as src (e.g. '../res/models/Dragon.obj') self.src = src self.filepath = Context.getInstance().getResourcePath('models', src) # OpenGL version-dependent code (NOTE assumes major version = 3) self.vao = None if Context.getInstance().GL_version_minor > 0: # 3.1 (or greater?) self.vao = glGenVertexArrays(1) else: # 3.0 (or less?) self.vao = GLuint(0) glGenVertexArrays(1, self.vao) glBindVertexArray(self.vao) self.loadModel(self.filepath) self.vbo = VBO(self.meshData, GL_STATIC_DRAW) self.vbo.bind() glEnableVertexAttribArray(0) glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * 4, self.vbo + 0) glEnableVertexAttribArray(1) glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 6 * 4, self.vbo + 12) self.ebo = glGenBuffers(1) glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, self.ebo) glBufferData(GL_ELEMENT_ARRAY_BUFFER, len(self.elements) * 4, self.elements, GL_STATIC_DRAW)
def __init__(self, vertexFileName, fragmentFileName): #Read in the vertex shader from file with open(vertexFileName, "r") as f: vertexSource = f.read() f.close() #Read in the fragment shader from file with open(fragmentFileName, "r") as f: fragmentSource = f.read() f.close() # OpenGL version-dependent code (NOTE shader source must be version 150) if Context.getInstance().GLSL_version_string != "150": print "Shader.__init__(): Changing shader source version to {}".format( Context.getInstance().GLSL_version_string) vertexSource = vertexSource.replace( "150", Context.getInstance().GLSL_version_string, 1) fragmentSource = fragmentSource.replace( "150", Context.getInstance().GLSL_version_string, 1) # TODO put special version placeholder in shader source files instead of "150" #Create and compile the vertex shader vertexShader = glCreateShader(GL_VERTEX_SHADER) glShaderSource(vertexShader, vertexSource) glCompileShader(vertexShader) self.printShaderInfoLog(vertexShader) #Create and compile the fragment shader fragmentShader = glCreateShader(GL_FRAGMENT_SHADER) glShaderSource(fragmentShader, fragmentSource) glCompileShader(fragmentShader) self.printShaderInfoLog(fragmentShader) #Link the vertex and fragment shader into a shader program self.shaderProgram = glCreateProgram() glAttachShader(self.shaderProgram, vertexShader) glAttachShader(self.shaderProgram, fragmentShader) glBindAttribLocation(self.shaderProgram, 0, "position") glBindAttribLocation(self.shaderProgram, 1, "normal") glBindFragDataLocation(self.shaderProgram, 0, "outColor") glLinkProgram(self.shaderProgram) self.printProgramInfoLog(self.shaderProgram) glUseProgram(self.shaderProgram) #Flag the vertex and fragment shaders for deletion when not in use glDeleteShader(vertexShader) glDeleteShader(fragmentShader)
def __init__(self, vertexFileName, fragmentFileName): #Read in the vertex shader from file with open (vertexFileName, "r") as f: vertexSource = f.read() f.close() #Read in the fragment shader from file with open (fragmentFileName, "r") as f: fragmentSource = f.read() f.close() # OpenGL version-dependent code (NOTE shader source must be version 150) if Context.getInstance().GLSL_version_string != "150": print "Shader.__init__(): Changing shader source version to {}".format(Context.getInstance().GLSL_version_string) vertexSource = vertexSource.replace("150", Context.getInstance().GLSL_version_string, 1) fragmentSource = fragmentSource.replace("150", Context.getInstance().GLSL_version_string, 1) # TODO put special version placeholder in shader source files instead of "150" #Create and compile the vertex shader vertexShader = glCreateShader(GL_VERTEX_SHADER) glShaderSource(vertexShader, vertexSource) glCompileShader(vertexShader) self.printShaderInfoLog( vertexShader ) #Create and compile the fragment shader fragmentShader = glCreateShader(GL_FRAGMENT_SHADER) glShaderSource(fragmentShader, fragmentSource) glCompileShader(fragmentShader) self.printShaderInfoLog( fragmentShader ) #Link the vertex and fragment shader into a shader program self.shaderProgram = glCreateProgram() glAttachShader(self.shaderProgram, vertexShader) glAttachShader(self.shaderProgram, fragmentShader) glBindAttribLocation( self.shaderProgram, 0, "position") glBindAttribLocation( self.shaderProgram, 1, "normal") glBindFragDataLocation(self.shaderProgram, 0, "outColor") glLinkProgram(self.shaderProgram) self.printProgramInfoLog(self.shaderProgram) glUseProgram(self.shaderProgram) #Flag the vertex and fragment shaders for deletion when not in use glDeleteShader(vertexShader); glDeleteShader(fragmentShader);
def __init__(self): """ Initialize task-specific variables, load scene fragments, find tools. Derived classes must call through to Task.__init__(self). NOTE: Context must be initialized at this point. """ self.context = Context.getInstance() self.logger = logging.getLogger(__name__) self.active = False
def __init__(self): self.context = Context.getInstance() # NOTE must contain renderer assert hasattr(self.context, 'renderer') and isinstance(self.context.renderer, Renderer), "Context does not contain renderer of correct type" self.logger = logging.getLogger(__name__) self.hideCube = False self.transform = hm.identity() self.light = Light(self.context.renderer) self.actorFactory = ActorFactory(self.context.renderer) self.actors = [] self.actorsById = dict()
def __init__(self): self.context = Context.getInstance() # NOTE must contain renderer assert hasattr(self.context, 'renderer') and isinstance( self.context.renderer, Renderer), "Context does not contain renderer of correct type" self.logger = logging.getLogger(__name__) self.hideCube = False self.transform = hm.identity() self.light = Light(self.context.renderer) self.actorFactory = ActorFactory(self.context.renderer) self.actors = [] self.actorsById = dict()
def __init__(self): self.context = Context.getInstance() # NOTE must be initialized self.logger = logging.getLogger(__name__) self.windowWidth = 640 self.windowHeight = 480 self.initialize() self.colorShader = Shader(self.context.getResourcePath('shaders', 'ADS.vert'), self.context.getResourcePath('shaders', 'ADS.frag')) self.proj = hm.perspective(hm.identity(), 35, float(self.windowWidth) / self.windowHeight, 1.0, 1000.0) self.view = hm.lookat(hm.identity(), np.array([0.0, 0.0, 0.0, 1.0], dtype = np.float32), np.array([0.0, 0.0, 1.0, 1.0], dtype = np.float32), np.array([0.0, -1.0, 0.0, 1.0], dtype = np.float32)) self.cameraMatrix = np.dot(self.proj, self.view) self.setCameraMatrix(self.cameraMatrix)
def __init__(self): self.context = Context.getInstance() # NOTE must contain scene self.timer = time.clock() #self.wheelPosition = glfw.GetMouseWheel() self.oldMouseX, self.oldMouseY = glfw.GetMousePos() self.curMouseX = self.oldMouseX self.curMouseY = self.oldMouseY self.leftPressed = False self.rightPressed = False self.manualControl = False self.doQuit = False # flag to signal stop condition self.quitting = False # to prevent multiple key-presses
def __init__(self): self.context = Context.getInstance() # NOTE must contain scene self.timer = time.clock() # self.wheelPosition = glfw.GetMouseWheel() self.oldMouseX, self.oldMouseY = glfw.GetMousePos() self.curMouseX = self.oldMouseX self.curMouseY = self.oldMouseY self.leftPressed = False self.rightPressed = False self.manualControl = False self.doQuit = False # flag to signal stop condition self.quitting = False # to prevent multiple key-presses
def __init__(self): self.context = Context.getInstance() # NOTE must be initialized self.logger = logging.getLogger(__name__) self.windowWidth = 640 self.windowHeight = 480 self.initialize() self.colorShader = Shader( self.context.getResourcePath('shaders', 'ADS.vert'), self.context.getResourcePath('shaders', 'ADS.frag')) self.proj = hm.perspective(hm.identity(), 35, float(self.windowWidth) / self.windowHeight, 1.0, 1000.0) self.view = hm.lookat( hm.identity(), np.array([0.0, 0.0, 0.0, 1.0], dtype=np.float32), np.array([0.0, 0.0, 1.0, 1.0], dtype=np.float32), np.array([0.0, -1.0, 0.0, 1.0], dtype=np.float32)) self.cameraMatrix = np.dot(self.proj, self.view) self.setCameraMatrix(self.cameraMatrix)
def __init__(self): """Initialize tool-specific behavior here.""" self.context = Context.getInstance() self.logger = logging.getLogger(__name__) self.active = False