zoukankan      html  css  js  c++  java
  • 学习OpenGL:笔记五

    绘制一个正方体

    正方体其实就是由6个矩形组成的几何体,X,Y,Z轴上各两个矩形。

    先绘制X轴上两个矩形

    - (void)drawXPlanes {
        static GLfloat triangleData[] = {
    // X轴0.5处的平面
          0.5,  -0.5,    0.5f, 1,  0,  0,
          0.5,  -0.5f,  -0.5f, 1,  0,  0,
          0.5,  0.5f,   -0.5f, 1,  0,  0,
          0.5,  0.5,    -0.5f, 1,  0,  0,
          0.5,  0.5f,    0.5f, 1,  0,  0,
          0.5,  -0.5f,   0.5f, 1,  0,  0,
    // X轴-0.5处的平面
          -0.5,  -0.5,    0.5f, 1,  0,  0,
          -0.5,  -0.5f,  -0.5f, 1,  0,  0,
          -0.5,  0.5f,   -0.5f, 1,  0,  0,
          -0.5,  0.5,    -0.5f, 1,  0,  0,
          -0.5,  0.5f,    0.5f, 1,  0,  0,
          -0.5,  -0.5f,   0.5f, 1,  0,  0,
        };
        [self bindAttribs:triangleData];
        glDrawArrays(GL_TRIANGLES, 0, 12);
    }

    效果如下图:
                                                      

    接下来绘制Y轴和Z轴上的两个矩形:

    - (void)drawYPlanes {
        static GLfloat triangleData[] = {
            -0.5,  0.5,  0.5f, 0,  1,  0,
            -0.5f, 0.5, -0.5f, 0,  1,  0,
            0.5f, 0.5,  -0.5f, 0,  1,  0,
            0.5,  0.5,  -0.5f, 0,  1,  0,
            0.5f, 0.5,   0.5f, 0,  1,  0,
            -0.5f, 0.5,  0.5f, 0,  1,  0,
             -0.5, -0.5,   0.5f, 0,  1,  0,
             -0.5f, -0.5, -0.5f, 0,  1,  0,
             0.5f, -0.5,  -0.5f, 0,  1,  0,
             0.5,  -0.5,  -0.5f, 0,  1,  0,
             0.5f, -0.5,   0.5f, 0,  1,  0,
             -0.5f, -0.5,  0.5f, 0,  1,  0,
        };
        [self bindAttribs:triangleData];
        glDrawArrays(GL_TRIANGLES, 0, 12);
    }
    
    - (void)drawZPlanes {
        static GLfloat triangleData[] = {
            -0.5,   0.5f,  0.5,   0,  0,  1,
            -0.5f,  -0.5f,  0.5,  0,  0,  1,
            0.5f,   -0.5f,  0.5,  0,  0,  1,
            0.5,    -0.5f, 0.5,   0,  0,  1,
            0.5f,  0.5f,  0.5,    0,  0,  1,
            -0.5f,   0.5f,  0.5,  0,  0,  1,
            -0.5,   0.5f,  -0.5,   0,  0,  1,
            -0.5f,  -0.5f,  -0.5,  0,  0,  1,
            0.5f,   -0.5f,  -0.5,  0,  0,  1,
            0.5,    -0.5f, -0.5,   0,  0,  1,
            0.5f,  0.5f,  -0.5,    0,  0,  1,
            -0.5f,   0.5f,  -0.5,  0,  0,  1,
        };
        [self bindAttribs:triangleData];
        glDrawArrays(GL_TRIANGLES, 0, 12);
    }

    效果如图:

                                                 

    练习的代码

  • 相关阅读:
    【Android 应用开发】 Android 相关代码规范 更新中 ...
    【IOS 开发】Object
    【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
    【IOS 开发】Object
    Unity3D 学习教程 14 C# 旋转镜头
    Unity3D 学习教程 13 C# 销毁炮弹
    Unity3D 学习教程 12 C# 发射炮弹
    Unity3D 学习教程 11 c#脚本控制摄像头
    Unity3D 学习教程 10 复制物体
    Unity3D 学习教程 9 旋转 放大 移动 物体
  • 原文地址:https://www.cnblogs.com/neverMore-face/p/10143359.html
Copyright © 2011-2022 走看看