资源简介
交互式计算机图形学 第六版 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 < NumPoints; ++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相机图像采集和显示
相关资源
- VC++基于OpenGL模拟的一个3维空间模型
- 数据结构教程李春葆第五版书中例题
- 三次样条插值类源代码!
- diy写字机grbl v1.1源代码
- C语言常用算法源代码
- 关于LED制作的源代码合集(38套)
-
STM32-ba
se64加密源代码 - 51超声波避障源代码
- opengl绘制汽车.cpp
- 一个C++实现的源代码行数统计工具
- ZZULIOJ部分答案C语言免费.7z
- 吉他调音软件源代码
- 连连看源代码C语言版
- AVR单片机SPI通讯程序 (C语言源代码)
- Visual+C++数字图像处理-谢凤英-源代码
- 大富翁源代码
- VC++ 中国象棋经典游戏源代码
- C语言斗地主源代码
- C++程序源代码--21点的扑克牌游戏
- 循环冗余校验码(CRC)计算源代码合
- 可解码所有jpeg格式图片的开源JPEG解码
- 通用弹道仿真计算程序(简版)V1.0
- 数据结构算法与应用--C++语言描述 书
- c++ 飞机订票系统设计及分析包含源代
- opengl实现水流效果sph
- FPS射击游戏《林海雪原》完整c++源代
- Visual C++ 网络高级编程PDF 源代码
- opengl源代码,全是精华!
- ffmpeg for MFC 1.2 源代码
- online judge在线判题系统源代码
评论
共有 条评论