- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OpenGL分屏代码
图具体如下:
// FBOM.cpp : 定义控制台应用程序的入口点。
//
#include stdafx.h
#include GLTools.h
#include GLMatrixStack.h
#include GLGeometryTransform.h
#include GLFrustum.h
#include GLShaderManager.h
#include GLFrame.h
#include GLBatch.h
#include GLTriangleBatch.h
#include iostream
//本程序的目标是在shader里画图并读入到FBO中。然后在进行展示,分三屏。
using namespace std;
#ifdef __APPLE__
#include glut/glut.h
#else
#define FREEGLUT_STATIC
#include gl/glut.h
#endif
//各种int
#include StopWatch.h
GLfloat vWhite[]={1.0,1.0,1.0,1.0};
GLfloat vRed[]={1.0,0.0,0.0,1.0};
GLfloat vGreen[]={0.0,1.0,0.0,1.0};
GLfloat vBlue[]={0.0,0.0,1.0,1.0};
GLfloat vLightPos[]={3.0,3.0,3.0,1.0};
GLfloat vAmbient[]={0.02,0.02,0.02,1.0};
GLfloat vDiffuse[]={0.3,0.3,0.3,1.0};
GLfloat vSpecular[]={0.3,0.3,0.3,1.0};
//程序的标志位
GLuint screenWidth;
GLuint screenHeight;
GLboolean uFBO=GL_FALSE;
//初始化窗口组件
GLMatrixStack modelViewMatrix;
GLMatrixStack projectionMatrix;
GLGeometryTransform transformPipline;
GLFrustum viewFrustum;
GLFrame viewFrame;
GLShaderManager shaderManager;
//创建shader
GLuint fboShader;
GLuint locMVP;
GLuint locMV;
GLuint locNormal;
GLuint locLight;
GLuint locDiffuse;
GLuint locAmbient;
GLuint locSpecular;
GLuint locTexture;
GLuint locLumicurve;
GLuint RfboShader;
GLuint RlocMVP;
GLuint RlocMV;
GLuint RlocNormal;
GLuint RlocLight;
GLuint RlocDiffuse;
GLuint RlocAmbient;
GLuint RlocSpecular;
GLuint RlocTexture;
GLuint RlocLumicurve;
//创建FBO一系列
GLuint FBObj[1];
GLuint colorBObj[3];
GLuint depthBObj[1];
GLuint texBObj[3];
GLuint texBOTexture[1];
GLint lum=2;
static const GLenum drawWindow[]={GL_BACK_LEFT};
static const GLenum drawBuff[]={GL_COLOR_ATTACHMENT0,GL_COLOR_ATTACHMENT1,GL_COLOR_ATTACHMENT2};
//创建所画的图形
GLBatch floorBatch;
GLTriangleBatch sphereBatch;
GLuint floorTex;
GLuint ballTex;
float* LoadDATAFile(const char* szFile,int* count)
{
GLint lineCount=0;
FILE* fp;
float* data=0;//
fp=fopen(szFile,r);
if (fp!=NULL)
{
char szFloat[1024];
while (fgets(szFloat,sizeof szFloat,fp))
{
lineCount++;
}
rewind(fp);
data
文档评论(0)