亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Opengl學習程序之圖元重啟動

2019-11-10 17:48:14
字體:
來源:轉載
供稿:網友

triangles.vert

#version 330layout(location = 0)in vec4 position;layout(location = 1)in vec4 color;out vec4 vs_fs_color;void main(void){ vs_fs_color = color; gl_Position = position;}

triangles.frag

#version 330in vec4 vs_fs_color;layout(location = 0)out vec4 color;void main(void){ color = vs_fs_color;}

實現程序:

#include "stdafx.h"#include<iostream>using namespace std;#include "vgl.h"#include "LoadShaders.h"#include "vmath.h"#define USE_PRIMITIVE_RESTART 1//設置立方體的8個角點,邊長為2,中心為原點static const GLfloat cube_positions[] ={ -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,};//每個頂點的顏色static const GLfloat cube_colors[] ={ 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f,};//三角形條帶的索引static const GLushort cube_indices[] ={ 0, 1, 2, 3, 6, 7, 4, 5, //第一組條帶 0xFFFF, //<<--這是重啟動的索引 2, 6, 0, 4, 1, 5, 3, 7 //第二組條帶};enum{ Arrayebo, Numebo };enum{ Arrayvao, Numvao };enum{ Arrayvbo, Numvbo };GLuint ebo[Numebo];GLuint vao[Numvao];GLuint vbo[Numvbo];void init(void){ ShaderInfo shaders[] = { { GL_VERTEX_SHADER, "triangles.vert" }, { GL_FRAGMENT_SHADER, "triangles.frag" }, { GL_NONE, NULL } }; GLuint program = LoadShaders(shaders); glUseProgram(program); //設置元素數組緩存 glGenBuffers(Numebo, ebo); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo[Arrayebo]); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(cube_indices), cube_indices, GL_STATIC_DRAW); //設置頂點屬性 glGenVertexArrays(Numvao, vao); glBindVertexArray(vao[Arrayvao]); glGenBuffers(Numvbo,vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo[Arrayvbo]); glBufferData(GL_ARRAY_BUFFER, sizeof(cube_positions) + sizeof(cube_colors), NULL, GL_STATIC_DRAW); glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(cube_positions), cube_positions); glBufferSubData(GL_ARRAY_BUFFER, sizeof(cube_positions), sizeof(cube_colors), cube_colors); glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, NULL); glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE, 0, (const GLvoid*)sizeof(cube_positions)); glEnableVertexAttribArray(0); glEnableVertexAttribArray(1);}void display(void){ glClear(GL_COLOR_BUFFER_BIT); //設置使用glDrawElements glBindVertexArray(vao[Arrayvao]); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo[Arrayebo]);#if USE_PRIMITIVE_RESTART //如果開啟了圖元重啟動,那么只需要調用一次繪制命令 glEnable(GL_PRIMITIVE_RESTART); //void glPrimitiveRestartIndex(GLuint index); //設置一個頂點數組元素的索引值,用來指定渲染過程中,從什么地方啟動新的圖元繪制。如果在處理定點數組元素索引的過程中 //遇到了一個符合該索引的數值,那么系統不會處理它對應的頂點數據,而是終止當前的圖元繪制,并且從下一個頂點重新開始渲染 //同一類型的圖元集合。 glPrimitiveRestartIndex(0xFFFF); glDrawElements(GL_TRIANGLE_STRip, 17,GL_UNSIGNED_SHORT, NULL);#else glDrawElements(GL_TRIANGLE_STRIP, 8, GL_UNSIGNED_SHORT, NULL); glDrawElements(GL_TRIANGLE_STRIP, 8, GL_UNSIGNED_SHORT, (const GLvoid*)(9*sizeof(GLushort)));#endif}int main(int argc, char** argv){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA); glutInitWindowSize(512, 512); glutInitContextVersion(3, 3); glutCreateWindow(argv[0]); glewExperimental = GL_TRUE; if (glewInit()) { cerr << "Unable to initialize GLEW ... exiting" << endl; exit(EXIT_FAILURE); } init(); glutDisplayFunc(display); glutMainLoop();}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情在线观看视频| 欧美高清第一页| 日韩在线视频二区| 亚洲成人激情在线观看| 在线日韩av观看| 欧美精品亚州精品| 亚洲欧洲国产一区| 日韩亚洲综合在线| 欧美精品一区二区免费| 久久99热精品| 亚洲欧美中文字幕| 美女性感视频久久久| 亚洲精品欧美日韩专区| 国产美女精彩久久| 亚洲91av视频| 国产一区二区三区视频在线观看| 日韩在线观看免费网站| 欧美噜噜久久久xxx| 成人免费视频在线观看超级碰| 一区二区av在线| 91精品国产色综合久久不卡98口| 日本一本a高清免费不卡| 4438全国成人免费| 欧美中文字幕精品| 欧美日韩国产成人在线观看| 国产精品678| 日韩av电影国产| 欧美成人第一页| 亚洲精品欧美日韩| 亚洲国产成人91精品| 视频直播国产精品| 欧美亚洲午夜视频在线观看| 中文字幕日韩精品在线| 欧美激情精品久久久久| 欧美人与性动交a欧美精品| 8050国产精品久久久久久| 日韩欧美aaa| 亚洲精品日韩在线| 久久久噜噜噜久久| 精品成人av一区| 午夜精品久久久久久久99热浪潮| 欧美激情aaaa| 中文字幕视频一区二区在线有码| 国产成人精品av| 日韩电影大全免费观看2023年上| 日韩视频免费大全中文字幕| 久久久久久久香蕉网| 精品免费在线视频| 奇米影视亚洲狠狠色| 宅男66日本亚洲欧美视频| 午夜精品久久久久久久久久久久久| 亚洲欧美国产精品va在线观看| 日韩亚洲成人av在线| 成人免费视频在线观看超级碰| www.亚洲一二| 国产精品入口免费视| 韩日欧美一区二区| 日韩美女在线观看| 亚洲精品免费av| 欧美激情精品久久久久久变态| 久久精品亚洲热| 欧美美女操人视频| 国产精品福利在线观看网址| 亚洲欧美日韩第一区| 992tv成人免费视频| 精品视频在线播放免| 中文字幕亚洲国产| 7777精品久久久久久| 92国产精品久久久久首页| 一区二区三区无码高清视频| 亚洲国产99精品国自产| 国产精品亚洲激情| 色中色综合影院手机版在线观看| 欧美一级淫片播放口| 97人洗澡人人免费公开视频碰碰碰| 久久av在线看| 亚洲日本中文字幕免费在线不卡| 亚洲第一区中文99精品| 久久国产精品免费视频| 欧美在线亚洲在线| 国产精品69久久久久| 国产精品爽爽爽| 福利微拍一区二区| 欧美性生交xxxxx久久久| 在线日韩欧美视频| 色妞色视频一区二区三区四区| 欧美成在线视频| 九九热精品视频在线播放| 一区二区欧美在线| 国产美女被下药99| 国产精品夜色7777狼人| 欧美另类精品xxxx孕妇| 亚洲一区www| 国产欧美精品一区二区三区-老狼| 欧美老少做受xxxx高潮| 午夜精品一区二区三区在线视频| 欧美成人黄色小视频| 国产精品久久久久久久久久久久| 最近中文字幕日韩精品| 亚洲高清久久网| 成人h片在线播放免费网站| 亚洲欧美国产一本综合首页| 美女撒尿一区二区三区| 日韩中文在线中文网在线观看| 国产自产女人91一区在线观看| 国产91精品高潮白浆喷水| 欧美激情18p| 亚洲一区免费网站| 欧美激情18p| 日韩欧美国产视频| 日韩最新av在线| 91av在线播放视频| 久久精品久久久久| 日韩av在线网页| 国产+人+亚洲| 欧美日韩国产页| 国产亚洲精品久久久| 亚洲淫片在线视频| 国产精品久久久久久久久久99| 欧美一级bbbbb性bbbb喷潮片| 黑人欧美xxxx| 亚洲精品久久久久久久久久久久久| 91精品啪aⅴ在线观看国产| 日韩最新免费不卡| 欧美肥臀大乳一区二区免费视频| 国产精品jvid在线观看蜜臀| 欧美日韩激情视频| 91精品视频在线播放| 九九久久综合网站| 精品久久久中文| 成人av电影天堂| 国产免费久久av| 国产午夜精品理论片a级探花| 亚洲欧美激情四射在线日| 亚洲已满18点击进入在线看片| 欧美精品国产精品日韩精品| 亚洲男人天堂2023| 亚洲国产成人精品久久久国产成人一区| 欧美成人亚洲成人日韩成人| 日本高清不卡在线| 精品无人区太爽高潮在线播放| 欧美色xxxx| 91久久精品国产91久久| 国产精品丝袜高跟| 91亚洲精品视频| 狠狠躁夜夜躁人人爽天天天天97| 久久天天躁狠狠躁夜夜爽蜜月| 日韩视频免费观看| 97在线日本国产| 亚洲国产精品成人精品| 国产精品久久久久久久久久久新郎| 日韩欧美中文免费| 日韩av在线免费观看| www.欧美精品| 日韩理论片久久| 国产精品日韩电影| 欧美综合国产精品久久丁香| 亚洲欧洲日本专区| 亚洲精品国产精品国产自| 日韩欧美成人免费视频| 日韩亚洲精品视频| 亚洲一区二区三区视频| 国产成人精品优优av| 精品国产自在精品国产浪潮|