openglscene.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:car-detection 作者: mmetcalfe 项目源码 文件源码
def draw(self, program, model=None, rawVertices=False):
        scale = np.eye(4, dtype=np.float32)
        scale[0,0] = self.scale[0]
        scale[1,1] = self.scale[1]
        scale[2,2] = self.scale[2]

        if not rawVertices:
            if model == None:
                orient = lookAtTransform(self.pos, self.pos + self.dir, self.up, square=True)
                # model = np.linalg.inv(orient)*scale
                model = np.linalg.inv(orient)*scale
            else:
                orient = lookAtTransform(self.pos, self.pos + self.dir, self.up, square=True)
                # model = model*np.linalg.inv(orient)*scale
                model = model*np.linalg.inv(orient)*scale
        else:
            model = np.eye(4, dtype=np.float32)
        program.setUniformMat4('model', model)

        # for mesh in self.aiModel.meshes:
        #     for i in range(0, len(mesh.vertices)):
        #         # print 'model', model
        #         vert = np.row_stack([np.matrix(mesh.vertices[i]).T, np.array([1])])
        #         worldVert = model*vert
        #         eyeVert = proj*worldVert
        #         ndcVert = eyeVert[:3]/eyeVert[3]
        #         print 'worldVert:', worldVert.T
        #         # print '   m->w', worldVert.T
        #         print '   w->e', eyeVert.T
        #         print '   e->n', ndcVert.T

        glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)

        for mesh in self.meshBuffers:
            mesh.draw(program)

        glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号