2019独角兽企业重金招聘Python工程师标准>>>

typedef struct _vertex{
    GLfloat  position[2];
    GLfloat  colors[4];
} Vertex; //定义顶点

GLfloat  positions[NumVertices][2] = {
        { -0.90, -0.90 },  // Triangle 1
        {  0.85, -0.90 },
        { -0.90,  0.85 },
        {  0.90, -0.85 },  // Triangle 2
        {  0.90,  0.90 },
        { -0.85,  0.90 }
    };
    
    GLfloat  colors[NumVertices][4] = {
        {  1.0, 0.0, 0.0, 1.0},  // Triangle 1
        {  1.0, 0.0, 0.0, 1.0},
        {  1.0, 0.0, 0.0, 1.0},
        {  1.0, 0.0, 0.0, 1.0},  // Triangle 2
        {  0.0, 1.0, 0.0, 1.0},
        {  0.0, 0.0, 1.0, 1.0}
    };
    
    Vertex vertexs[NumVertices];
    
    for(int i=0;i<NumVertices;i++){
        vertexs[i].position[0] = positions[i][0];
        vertexs[i].position[1] = positions[i][1];
        
        vertexs[i].colors[0] = colors[i][0];
        vertexs[i].colors[1] = colors[i][1];
        vertexs[i].colors[2] = colors[i][2];
        vertexs[i].colors[3] = colors[i][3];
    }
    
    glGenBuffers(NumBuffers, Buffers);
    glBindBuffer(GL_ARRAY_BUFFER, Buffers[ArrayBuffer]);
    
    glBufferData(GL_ARRAY_BUFFER, sizeof(vertexs),vertexs, GL_STATIC_DRAW);
    
    
    GLuint prog = Program::Load( vert, frag );
    glUseProgram( prog );
    
    glEnableVertexAttribArray( 0 );
    glVertexAttribPointer( 0, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (GLvoid*) offsetof(Vertex, position));

    
    // colors
    glEnableVertexAttribArray( 1 );
    glVertexAttribPointer( 1, 4, GL_FLOAT, GL_FALSE, sizeof(Vertex), (GLvoid*) offsetof(Vertex, colors));

这样,在vertex shader中就可以通过

attribute vec4 a_position;
attribute vec4 a_color;

来接收属性了。

转载于:https://my.oschina.net/yizhangxyz/blog/701692

OpenGL vertext shader 属性设置相关推荐

  1. Learn OpenGL(三)——顶点着色器(Vertext Shader)

    顶点着色器是几个着色器中的一个, 它是可编程的. 现代OpenGL需要我们至少设置一个顶点着色器和一个片段着色器, 如果我们打算做渲染的话. 我们会简要介绍一下着色器以及配置两个非常简单的着色器来绘制 ...

  2. 【Modern OpenGL】Shader

    Shaders 正如在上一篇教程中提到的,shader是在GPU中运行的小程序.如上一个教程中实现的最简单的vertex shader和fragment shader,一个shader基本上负责图形渲 ...

  3. OpenGL与shader区别(三十一)

    一.OpenGL: Open Graphics Library -- 开放图形库 用于渲染2D.3D矢量图形的跨语言.跨平台的应用程序编程api.由近350个不同的函数调用组成,用来绘制从简单的图形到 ...

  4. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板

    写在之前 Shader变体.Shader属性定义技巧.自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用 ...

  5. android查看控件的xml属性,006 Android XML 控件属性设置技巧汇总

    1.textview 组件文本实现替换(快速实现字符资源的调用) android 应用资源位置在 project(工程名)--->app--->res--->values 在stri ...

  6. pthread_create()之前的属性设置

    一.pthread_create()之前的属性设置 1.线程属性设置 我们用pthread_create函数创建一个线程,在这个线程中,我们使用默认参数,即将该函数的第二个参数设为NULL.的确,对大 ...

  7. 列标题 如何删除gridcontrol_DEV控件GridControl常用属性设置(转)

    1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView.Ad ...

  8. Android webview 写入cookie的解决方法以及一些属性设置

    Android webview 写入cookie的解决方法以及一些属性设置 参考文章: (1)Android webview 写入cookie的解决方法以及一些属性设置 (2)https://www. ...

  9. Xamarin XAML语言教程使用使用Progress属性设置当前进度

    Xamarin XAML语言教程使用使用Progress属性设置当前进度 开发者除了可以在XAML中使用Progress属性设置进度条的当前进度外,还可以在代码隐藏文件中使用Progress属性来设置 ...

最新文章

  1. python if判断字符串_python之条件判断、循环和字符串格式化
  2. 笔记6 | 从源码理解分析mScrollX和mScrollY,scrollTo()和scrollBy(),smoothScrollTo和smoothScrollBy...
  3. UVA - 11437 Triangle Fun(简单几何)
  4. Java Micro-Benchmarking:如何编写正确的基准
  5. 强大的jQuery图片查看器插件Viewer.js
  6. mysql 多实例 独立配置文件_三、安装配置多实例MYSQL5.6-多独立配置文件方法
  7. ACCESS的System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误
  8. endnote如何导入txt文件_python如何处理txt及excel文件
  9. ShadeGraph教程之节点详解2:Channel Nodes
  10. 查看linux系统版本,内核,CPU,MEM,位数的相关命令
  11. c语言运算符优先级表(c语言中各种运算符的优先级)
  12. linux 如何停止mysql,linux下如何启动/停止/重启mysql:
  13. python视频人脸检测_OpenCV + python 实现人脸检测(基于照片和视频进行检测)
  14. 投资高手三十年投资经验总结的18条真谛
  15. RGB的光的三原色、品红黄青颜料的三原色
  16. 学渣的刷题之旅 leetcode刷题 26. 删除排序数组中的重复项
  17. 你真正做到敏捷了吗?
  18. ansible常用模块 -- fial模块 -- 自定义消息失败
  19. 【爱生活】人生箴言 一
  20. pyqt5做了一个无线网连接器,与君共勉

热门文章

  1. 探索强化学习算法背后的思想起源!
  2. 「AI科技」机器学习算法之K-means算法原理及缺点改进思路
  3. 到2020年,智能手机将拥有十项AI功能,有些可能会出乎你意料
  4. 深入理解argparse模块中的add_argument的参数(如action等)
  5. 并行计算与分布式计算
  6. 复杂科学2021年度精选:从诺贝尔奖到未来科学
  7. 柳进军 | 城市大脑的逻辑模型
  8. 福布斯发布2019全球品牌价值100强:华为上榜苹果夺冠
  9. 微软亚研院20周年独家撰文:数据智能的现在与未来
  10. 那一年,让我整个人升华的 C++ BERT 项目