OpenGL学习(一) 绘制三角形
2018-03-03 16:26
309 查看
GLTools: 一些有用且可复用的函数
GLEW: OpenGL API的一些扩展机制
GLUT: OpenGL Utility toolkit, OpenGL跨平台相关,隐藏平台相关细节
RC代表渲染环境(Rendering Context),是运行中的OpenGL状态机句柄
使用OpenGL绘制三角形:
配置好的Github工程:
https://github.com/jiayayao/opengl_samples-vs_2010
GLEW: OpenGL API的一些扩展机制
GLUT: OpenGL Utility toolkit, OpenGL跨平台相关,隐藏平台相关细节
RC代表渲染环境(Rendering Context),是运行中的OpenGL状态机句柄
使用OpenGL绘制三角形:
// Triangle.cpp // Our first OpenGL program that will just draw a triangle on the screen. #include <GLTools.h> // OpenGL toolkit #include <GLShaderManager.h> // Shader Manager Class #ifdef __APPLE__ #include <glut/glut.h> // OS X version of GLUT #else #define FREEGLUT_STATIC #include <GL/glut.h> // Windows FreeGlut equivalent #endif GLBatch triangleBatch; GLShaderManager shaderManager; /////////////////////////////////////////////////////////////////////////////// // Window has changed size, or has just been created. In either case, we need // to use the window dimensions to set the viewport and the projection matrix. void ChangeSize(int w, int h) { glViewport(0, 0, w, h); } /////////////////////////////////////////////////////////////////////////////// // This function does any needed initialization on the rendering context. // This is the first opportunity to do any OpenGL related tasks. void SetupRC() { // Blue background glClearColor(0.0f, 0.0f, 1.0f, 1.0f ); shaderManager.InitializeStockShaders(); // Load up a triangle GLfloat vVerts[] = { -0.5f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f }; triangleBatch.Begin(GL_TRIANGLES, 3); triangleBatch.CopyVertexData3f(vVerts); triangleBatch.End(); } /////////////////////////////////////////////////////////////////////////////// // Called to draw scene void RenderScene(void) { // Clear the window with current clearing color glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f }; shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed); triangleBatch.Draw(); // Perform the buffer swap to display back buffer glutSwapBuffers(); } /////////////////////////////////////////////////////////////////////////////// // Main entry point for GLUT based programs int main(int argc, char* argv[]) { gltSetWorkingDirectory(argv[0]); glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL); glutInitWindowSize(1920, 1080); glutCreateWindow("Triangle"); glutReshapeFunc(ChangeSize); glutDisplayFunc(RenderScene); GLenum err = glewInit(); if (GLEW_OK != err) { fprintf(stderr, "GLEW Error: %s\n", glewGetErrorString(err)); return 1; } SetupRC(); glutMainLoop(); return 0; }
配置好的Github工程:
https://github.com/jiayayao/opengl_samples-vs_2010
相关文章推荐
- OpenGL4.x学习之使用绘制三角形
- 【学习OpenGL】Hello Triangle 绘制三角形
- Android OpenGL学习笔记(二)之----三角形的绘制.
- OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形
- opengl es3.0游戏开发学习笔记1-绘制旋转的三角形
- OpenGL学习--02--绘制一个红色三角形
- 基于Qt的OpenGL可编程管线学习(1)- 绘制一个三角形
- 在macOS上学习OpenGL | 环境配置并绘制三角形
- OpenGL学习之绘制三角形
- OpenGL学习脚印: 绘制一个三角形
- OpenGL学习脚印: 绘制一个三角形
- Android OpenGL学习笔记(二)之----三角形的绘制.
- Android OpenGL学习笔记(二)之----三角形的绘制.
- 【转】我的opengl编程学习(一)(简介、绘制图像、三维观
- OpenGL2.0学习笔记【二】——(第二章)矩形的绘制
- cocos2D-X源码分析之从cocos2D-X学习OpenGL(5)---绘制基本图形
- opengl绘制一个简单三角形
- OpenGL学习(2)基本图形绘制
- openGL学习之三角形等分
- OpenGL入门学习——第三课 绘制几何图形的一些细节问题