資源簡介
交互式計算機圖形學 第六版 OpenGL源代碼
代碼片段和文件信息
//?Two-Dimensional?Sierpinski?Gasket???????
//?Generated?using?randomly?selected?vertices?and?bisection
#include?“Angel.h“
const?int?NumPoints?=?5000;
//----------------------------------------------------------------------------
void
init(?void?)
{
????vec2?points[NumPoints];
????//?Specifiy?the?vertices?for?a?triangle
????vec2?vertices[3]?=?{
????????vec2(?-1.0?-1.0?)?vec2(?0.0?1.0?)?vec2(?1.0?-1.0?)
????};
????//?Select?an?arbitrary?initial?point?inside?of?the?triangle
????points[0]?=?vec2(?0.25?0.50?);
????//?compute?and?store?N-1?new?points
????for?(?int?i?=?1;?i?????????int?j?=?rand()?%?3;???//?pick?a?vertex?at?random
????????//?Compute?the?point?halfway?between?the?selected?vertex
????????//???and?the?previous?point
????????points[i]?=?(?points[i?-?1]?+?vertices[j]?)?/?2.0;
????}
????//?Create?a?vertex?array?object
????GLuint?vao;
????glGenVertexArrays(?1?&vao?);
????glBindVertexArray(?vao?);
????//?Create?and?initialize?a?buffer?object
????GLuint?buffer;
????glGenBuffers(?1?&buffer?);
????glBindBuffer(?GL_ARRAY_BUFFER?buffer?);
????glBufferData(?GL_ARRAY_BUFFER?sizeof(points)?points?GL_STATIC_DRAW?);
????//?Load?shaders?and?use?the?resulting?shader?program
????GLuint?program?=?InitShader(?“vshader21.glsl“?“fshader21.glsl“?);
????glUseProgram(?program?);
????//?Initialize?the?vertex?position?attribute?from?the?vertex?shader
????GLuint?loc?=?glGetAttribLocation(?program?“vPosition“?);
????glEnableVertexAttribArray(?loc?);
????glVertexAttribPointer(?loc?2?GL_FLOAT?GL_FALSE?0
???????????????????????????BUFFER_OFFSET(0)?);
????glClearColor(?1.0?1.0?1.0?1.0?);?//?white?background
}
//----------------------------------------------------------------------------
void
display(?void?)
{
????glClear(?GL_COLOR_BUFFER_BIT?);?????//?clear?the?window
????glDrawArrays(?GL_POINTS?0?NumPoints?);????//?draw?the?points
????glFlush();
}
//----------------------------------------------------------------------------
void
keyboard(?unsigned?char?key?int?x?int?y?)
{
????switch?(?key?)?{
????case?033:
????????exit(?EXIT_SUCCESS?);
????????break;
????}
}
//----------------------------------------------------------------------------
int
main(?int?argc?char?**argv?)
{
????glutInit(?&argc?argv?);
????glutInitDisplayMode(?GLUT_RGBA?);
????glutInitWindowSize(?512?512?);
????//?If?you?are?using?freeglut?the?next?two?lines?will?check?if?
????//?the?code?is?truly?3.2.?Otherwise?comment?them?out
????
????glutInitContextVersion(?3?2?);
????glutInitContextProfile(?GLUT_CORE_PROFILE?);
????glutCreateWindow(?“Sierpinski?Gasket“?);
????glewInit();
????init();
????glutDisplayFunc(?display?);
????glutKeyboardFunc(?keyboard?);
????glutMainLoop();
????return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????971??2011-04-13?08:54??begin.html
?????文件???????34381??2015-09-22?09:13??CHAPTER02_CODE.zip
?????目錄???????????0??2017-05-18?09:45??CHAPTER02_CODE\
?????文件????????2752??2010-11-16?06:20??CHAPTER02_CODE\example1.cpp
?????文件????????3112??2010-11-16?06:20??CHAPTER02_CODE\example2.cpp
?????文件????????2618??2010-11-16?06:20??CHAPTER02_CODE\example3.cpp
?????文件????????5188??2010-11-16?06:20??CHAPTER02_CODE\example4.cpp
?????文件????????3886??2010-11-16?06:20??CHAPTER02_CODE\example4b.cpp
?????文件????????8128??2011-03-20?20:53??CHAPTER02_CODE\example5.cpp
?????文件??????????90??2010-11-10?14:14??CHAPTER02_CODE\fshader21.glsl
?????文件??????????89??2010-11-10?14:14??CHAPTER02_CODE\fshader22.glsl
?????文件??????????86??2010-11-10?14:14??CHAPTER02_CODE\fshader23.glsl
?????文件??????????84??2010-11-10?14:14??CHAPTER02_CODE\fshader24.glsl
?????文件??????????84??2010-11-10?14:14??CHAPTER02_CODE\fshader24b.glsl
?????文件??????????90??2010-11-10?14:14??CHAPTER02_CODE\fshader25.glsl
?????目錄???????????0??2017-05-18?09:45??CHAPTER02_CODE\MAC_VERSIONS\
?????文件???????18732??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\example1
?????文件????????2528??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\example1.cpp
?????文件???????18844??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\example2
?????文件????????3020??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\example2.cpp
?????文件???????26320??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\example5
?????文件????????8036??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\example5.cpp
?????文件??????????64??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\fshader21.glsl
?????文件??????????63??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\fshader22.glsl
?????文件??????????63??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\fshader25.glsl
?????文件?????????197??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\Makefile
?????文件??????????72??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\vshader21.glsl
?????文件??????????72??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\vshader22.glsl
?????文件?????????101??2011-03-21?19:05??CHAPTER02_CODE\MAC_VERSIONS\vshader25.glsl
?????文件????????1020??2010-11-07?19:23??CHAPTER02_CODE\Makefile
?????文件?????????716??2011-03-01?17:15??CHAPTER02_CODE\READEME
............此處省略150個文件信息
- 上一篇:c++ 畫圖(14Qt-XPS)
- 下一篇:basler相機圖像采集和顯示
評論
共有 條評論