資源簡介
9-6trirotate.rar
代碼片段和文件信息
#define?_CRT_SECURE_NO_WARNINGS
#define?BMP_Header_Length?54??//圖像數(shù)據(jù)在內(nèi)存塊中的偏移量
#include?
#include?
#include?
#include?
#include?“MatrixUtils.h“
GLuint?texGround1?texGround2;
GLfloat?mixValue?=?0.3f;?//?紋理混合參數(shù)
GLfloat?angle?=?0.0f;
void?renderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT?|?GL_DEPTH_BUFFER_BIT);
float?vertices[]?=?{
//?所需要的所有頂點集合
?-0.5f?-0.5f?0.0f?1.0f?0.0f?0.0f0.0f?0.0f??//?0
0.5f??-0.5f?0.0f?0.0f?1.0f?0.0f1.0f?0.0f??//?1
0.5f??0.5f??0.0f?0.0f?0.0f?1.0f1.0f?1.0f??//?2
-0.5f?0.5f??0.0f?1.0f?1.0f?0.0f0.0f?1.0f???//?3
};
//?索引數(shù)據(jù)?需要的點的組合
unsigned?int?indices[]?=?{
0?1?2??//?第一個三角
0?2?3???//?第二個三角
};
//?VBO對象將頂點從內(nèi)存接受并在顯存中管理
unsigned?int?VBO?VAO?EBO;
glGenVertexArrays(1?&VAO);?//?生成頂點數(shù)組對象VAO
glGenBuffers(1?&VBO);??//??根據(jù)int類型的VBO這個ID生成一個VBO對象
glGenBuffers(1?&EBO);
//?綁定頂點數(shù)組對象VAO
glBindVertexArray(VAO);
//?綁定頂點緩沖對象VBO
glBindBuffer(GL_ARRAY_BUFFER?VBO);?//??綁定VBO到某個緩沖類型
glBufferData(GL_ARRAY_BUFFER?sizeof(vertices)?vertices?GL_STATIC_DRAW);??//?初始化緩存后將數(shù)據(jù)拷貝此步驟后?數(shù)據(jù)被復制到在顯存中
//?綁定元素緩沖對象EBO
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER?EBO);?//?綁定EBO到某個緩沖類型
glBufferData(GL_ELEMENT_ARRAY_BUFFER?sizeof(indices)?indices?GL_STATIC_DRAW);
//?頂點屬性指針(位置值幾個分量值類型是否標準化步長偏移量)
//?頂點位置屬性
glVertexAttribPointer(0?3?GL_FLOAT?GL_FALSE
8?*?sizeof(GL_FLOAT)?(GLvoid*)0);
glEnableVertexAttribArray(0);
//?頂點顏色屬性
glVertexAttribPointer(1?3?GL_FLOAT?GL_FALSE
8?*?sizeof(GL_FLOAT)?(GLvoid*)(3?*?sizeof(GL_FLOAT)));
glEnableVertexAttribArray(1);
//?頂點紋理坐標
glVertexAttribPointer(2?2?GL_FLOAT?GL_FALSE
8?*?sizeof(GL_FLOAT)?(GLvoid*)(6?*?sizeof(GL_FLOAT)));
glEnableVertexAttribArray(2);
//glVertexAttribPointer(0?3?GL_FLOAT?GL_FALSE?3?*?sizeof(float)?(void*)0);
//glEnableVertexAttribArray(0);???//?啟動定點屬性
//?調(diào)用glVertexAttribPointer函數(shù)注冊VBO為定點屬性的綁定VBO之后就可以安全解除綁定.
glBindBuffer(GL_ARRAY_BUFFER?0);
//?VAO處于活動狀態(tài)下啊不要解綁EBO
//glBindBuffer(GL_ELEMENT_ARRAY_BUFFER?0);
//?你可以解綁VAO這樣就不能改變VAO(這樣的用法很少見)修改其他VAO需要glBindVertexArray所以一般不解綁VAOVBO除非明確需求.
glBindVertexArray(0);
//?填充模式(默認)
glPolygonMode(GL_FRONT_AND_BACK?GL_FILL);
//?線框模式(只繪制線)
//glPolygonMode(GL_FRONT_AND_BACK?GL_LINE);
//?循環(huán)渲染要求退出則為1取反為0循環(huán)終止.
//?渲染背景設置清空
glClearColor(0.2f?0.3f?0.3f?1.0f);
glClear(GL_COLOR_BUFFER_BIT);
//?渲染三角形
glBindVertexArray(VAO);?//綁定VAO時自動保存EBO的綁定
glDrawElements(GL_TRIANGLES?6?GL_UNSIGNED_INT?0);????//頂點數(shù)EBO偏移量.
//?雙緩沖后臺渲染完后一次性與前臺交換力求一次呈現(xiàn).
//?釋放資源
glDeleteVertexArrays(1?&VAO);
glDeleteBuffers(1?&VBO);
glDeleteBuffers(1?&EBO);
//?結(jié)束GLFW
glutSwapBuffers();
}
void?changeSize(int?w?int?h)?{
//?Prevent?a?divide?by?zero?when?window?is?too?short
//?(you?cant?make?a?window?of?zero?width).
if?(h?==?0)
h?=?1;
//printf(“w?is?%d?h?is?%d“?w?h);
//float?ratio?=?1.0*?w?/?h;
//?Reset?the?coordinate?system?before?mo
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A..H.?????49664??2018-09-11?11:34??9-6trirotate\.vs\9-6trirotate\v15\.suo
?????文件???48103424??2018-09-11?11:34??9-6trirotate\.vs\9-6trirotate\v15\Browse.VC.db
?????文件???11796480??2018-09-06?17:35??9-6trirotate\.vs\9-6trirotate\v15\ipch\25a67ae791437d38.ipch
?????文件???11796480??2018-09-11?09:13??9-6trirotate\.vs\9-6trirotate\v15\ipch\AutoPCH\2adc46de111a5960\MATRIXUTILS.ipch
?????文件???34668544??2018-09-11?10:29??9-6trirotate\.vs\9-6trirotate\v15\ipch\AutoPCH\b551f1a5ab37a120\9-6TRIROTATE.ipch
?????文件???11468800??2018-09-06?17:35??9-6trirotate\.vs\9-6trirotate\v15\ipch\AutoPCH\dba754898e433ee0\MATRIXUTILS.ipch
?????文件????????317??2018-09-06?17:03??9-6trirotate\9-6trirotate\1.vert
?????文件????????320??2018-09-06?11:42??9-6trirotate\9-6trirotate\2.frag
?????文件??????20404??2018-09-06?17:57??9-6trirotate\9-6trirotate\9-6trirotate.cpp
?????文件???????9667??2018-09-06?17:35??9-6trirotate\9-6trirotate\9-6trirotate.vcxproj
?????文件???????1490??2018-09-06?17:35??9-6trirotate\9-6trirotate\9-6trirotate.vcxproj.filters
?????文件????????165??2018-09-06?13:57??9-6trirotate\9-6trirotate\9-6trirotate.vcxproj.user
?????文件???????1050??2018-08-31?18:12??9-6trirotate\9-6trirotate\ba
?????文件????????464??2018-09-06?17:57??9-6trirotate\9-6trirotate\Debug\9-6trirotate.log
?????文件??????45232??2018-09-06?17:57??9-6trirotate\9-6trirotate\Debug\9-6trirotate.obj
?????文件????????196??2018-09-06?17:57??9-6trirotate\9-6trirotate\Debug\9-6trirotate.tlog\9-6trirotate.lastbuildstate
?????文件???????2764??2018-09-06?17:57??9-6trirotate\9-6trirotate\Debug\9-6trirotate.tlog\CL.command.1.tlog
?????文件??????17458??2018-09-06?17:57??9-6trirotate\9-6trirotate\Debug\9-6trirotate.tlog\CL.read.1.tlog
?????文件???????1268??2018-09-06?17:57??9-6trirotate\9-6trirotate\Debug\9-6trirotate.tlog\CL.write.1.tlog
?????文件???????3692??2018-09-06?17:57??9-6trirotate\9-6trirotate\Debug\9-6trirotate.tlog\li
?????文件???????3278??2018-09-06?17:57??9-6trirotate\9-6trirotate\Debug\9-6trirotate.tlog\li
?????文件????????502??2018-09-06?17:57??9-6trirotate\9-6trirotate\Debug\9-6trirotate.tlog\li
?????文件??????29982??2018-09-06?17:35??9-6trirotate\9-6trirotate\Debug\MatrixUtils.obj
?????文件?????191488??2018-09-06?17:57??9-6trirotate\9-6trirotate\Debug\vc141.idb
?????文件?????102400??2018-09-06?17:57??9-6trirotate\9-6trirotate\Debug\vc141.pdb
?????文件???????8321??2018-09-06?16:59??9-6trirotate\9-6trirotate\MatrixUtils.c
?????文件???????8181??2018-09-06?17:35??9-6trirotate\9-6trirotate\MatrixUtils.cpp
?????文件???????2628??2018-08-31?18:12??9-6trirotate\9-6trirotate\MatrixUtils.h
?????文件????????225??2018-09-06?13:59??9-6trirotate\9-6trirotate\packages.config
?????文件?????151254??2018-08-31?16:45??9-6trirotate\9-6trirotate\test.bmp
............此處省略79個文件信息
評論
共有 條評論