openGl超级宝典学习笔记 (1)第一个三角形「建议收藏」

openGl超级宝典学习笔记 (1)第一个三角形

大家好,又见面了,我是全栈君。

openGl超级宝典学习笔记 (1)第一个三角形「建议收藏」
执行效果

代码及解析:
//
//  Triangle.cpp
//  Triangle
//
//  Created by fengsser on 15/6/20.
//  Copyright (c) 2015年 fengsser. All rights reserved.
//

#include <GLTools.h>//用作掩盖不同平台的差异,建立窗体等工作
#include <GLShaderManager.h>
#ifdef __APPLE__
#include <glut/glut.h>
#else
#define FREEGLUT_STATIC
#endif

GLBatch triangleBatch;
GLShaderManager shaderManager;

//窗体大小改变时接受新的宽度和高度,參数单位为象数
void ChangeSize(int w,int h)
{
    //完毕从目的坐标系到屏幕坐标系的映射,Glint x,Glint y为viewPort在窗体中左下角的坐标。veiwPort是渲染区域。
    glViewport(0, 0, w, h);
}


//set render-context
void SetupRC()
{
    //设置背影颜色 r,g,b,a
    glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
    //初始化着色管理器
    shaderManager.InitializeStockShaders();
    //设置三角形。当中数组vVert包括全部3个顶点的x,y,z,笛卡尔坐标(就是初中高中学的坐标系)。

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();}//開始渲染void RenderScene(void){ //清除缓冲区:颜色|深度|模板 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); //设置一组浮点数来表示红色 GLfloat vRed[] = {1.0f,0.0f,0.0f,1.0f}; //传送颜色到存储着色器,即GLT_SHADER_IDENTITY着色器,这个着色器仅仅是使用指定颜色以默认笛卡尔坐标第在屏幕上渲染几何图形 shaderManager.UseStockShader(GLT_SHADER_IDENTITY,vRed); //提交几何图形着色器 triangleBatch.Draw(); //将在后台缓冲区进行渲染。然后在结束时交换到前台 glutSwapBuffers();}int main(int argc,char* argv[]){ gltSetWorkingDirectory(argv[0]);//设置当前工作文件夹。针对MAC OS X glutInit(&argc, argv); //传输命令行參数并初始化GLUT库 //告诉GLUT库在创建窗体时使用哪种显示模式,GLUT_DOUBLE:双缓冲窗体。GLUT_RGBA:RGBA颜色模式;GLUT_DEPTH:深度測试GLUT_STENCIL:模板測试 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL); glutInitWindowSize(800, 600);//GLUT窗体大小,标题窗体 glutCreateWindow("Triangle");//创建以Triangle为标题的窗体 //注冊侦听,在出循环中会发出事件,窗体大小改变和openGl渲染 glutReshapeFunc(ChangeSize); glutDisplayFunc(RenderScene); //初始化openGL驱动程序中丢失的入口点glewInit,并检查初始化是否出现故障。 GLenum err = glewInit(); if (GLEW_OK != err) { fprintf(stderr, "glew error:%s\n",glewGetErrorString(err)); return 1; } SetupRC();//RC-Render context glutMainLoop();//開始主循环 return 0;}

openGl超级宝典学习笔记 (1)第一个三角形「建议收藏」
关键流程


关于视口(viewPort)及窗体:
openGl超级宝典学习笔记 (1)第一个三角形「建议收藏」

视口。渲染(绘制)区域。

一般与窗体等大。视口用于从逻辑笛卡尔坐标系统映射到物理屏幕的像素坐标。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116433.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • powershell校验哈希值_哈希校验什么意思

    powershell校验哈希值_哈希校验什么意思  在不安装任何第三方软件的情况下,我们也可在Windows中直接使用Powershell校验文件多种算法的哈希值,其中就包括:SHA1、SHA256、SHA384、SHA512、MACTripleDES、MD5、RIPEMD160算法。  使用起来也非常简单,大家可以参考如下示例:Get-FileHash[-Path文件路径][-Algorithm算法]…

  • 福利吧简约朴素网站地址发布页源码

    福利吧简约朴素网站地址发布页源码介绍:大方简约的地址发布页面HTML源码,可用于发布网站最新地址,留住用户必备方便找到回家的路,就单单一个html页面,需要的朋友下载吧!网盘下载地址:https://zijiewangpan.com/Lgv39T6zCtT图片:…

  • 泰国80亿互联网记录数据库泄漏,疑遭黑客攻击[通俗易懂]

    泰国80亿互联网记录数据库泄漏,疑遭黑客攻击[通俗易懂]泰国最大的蜂窝网络AIS已使数据库脱机,疑遭黑客攻击,这使达80亿实时互联网记录泄漏到数百万泰国互联网用户上,该事件震惊整个泰国。全球著名白帽黑客、东方联盟创始人郭盛华博客文章中说,他在互联网上没有密码就找到了包含DNS查询和Netflow数据的数据库。通过访问该数据库,任何人都可以“快速描绘”互联网用户(或其家庭)的实时行为。他表示:“在数据库中找到的记录只能来自能够监视Internet流量在网络上流动的人。但是,没有一种简单的方法可以区分数据库是属于Internet提供商还…

  • IntelliJ IDEA 2018.1.5 安装和破解教程[通俗易懂]

    1.首先下载IntelliJIDEA,下载链接:http://www.jetbrains.com/idea/download/#section=windows;记得一定要选择UItimate版!2.下载完成后进行安装。傻瓜式安装(都懂得)。3.安装完成后进行破解。首先下载破解所需要的jar包,下载地址:https://download.csdn.net/download/m0_38075425/…

  • javaee框架整合开发入门到实战源码_java底层框架

    javaee框架整合开发入门到实战源码_java底层框架kunJkunJ框架,是基于HK2框架的一个自实现注入框架,功能比较简单,重在探索依赖注入的实现原理。实现细节1.自定义3个注解,Access,Inject,Service2.在Servi

  • c++入门教程–-22类构造函数 & 析构函数

    c++入门教程–-22类构造函数 & 析构函数

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号