[OpenGL]从零开始写一个Android平台下的全景视频播放器——4.3 怎么都搞不清楚的几个坐标系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的Python代码,它使用OpenGL在世界坐标系下渲染一个图像: ```python from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * # 定义顶点 vertices = ((-1, -1, 0), (1, -1, 0), (1, 1, 0), (-1, 1, 0)) # 定义纹理坐标 texcoords = ((0, 0), (1, 0), (1, 1), (0, 1)) # 定义索引 indices = ((0, 1, 2), (0, 2, 3)) # 定义纹理图像 image = [ [255, 0, 0, 255], [ 0, 255, 0, 255], [ 0, 0, 255, 255], [255, 255, 255, 255], ] def init(): glClearColor(0.0, 0.0, 0.0, 1.0) glEnable(GL_DEPTH_TEST) glEnable(GL_TEXTURE_2D) def display(): glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) # 设置投影矩阵 glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(60.0, 1.0, 0.1, 100.0) # 设置模型视图矩阵 glMatrixMode(GL_MODELVIEW) glLoadIdentity() gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) # 绑定纹理 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 0, GL_RGBA, GL_UNSIGNED_BYTE, image) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR) # 开始绘制 glBegin(GL_TRIANGLES) for i in range(len(indices)): for j in range(len(indices[i])): glTexCoord2fv(texcoords[indices[i][j]]) glVertex3fv(vertices[indices[i][j]]) glEnd() glutSwapBuffers() if __name__ == '__main__': glutInit() glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH) glutInitWindowSize(400, 400) glutCreateWindow("OpenGL Window") glutDisplayFunc(display) init() glutMainLoop() ``` 这个代码中,我们创建了一个窗口,并在其中使用OpenGL绘制了一个带有纹理的正方形。我们使用顶点、纹理坐标和索引来定义几何形状,然后将纹理与之关联,最后用OpenGL来绘制形状。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值