⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 GLSL tutorial with sourcecode
💻 CPP
字号:
// ************************************************
// Tutorial 3: Send uniform to Fragment Program
// 
// Vertex Program: transform vertices
//                 
//
// Fragment Program: 
//                 Color = send to Program
//
// (c) 2003-2004 by Martin Christen.
// ************************************************

#include "../cwc/aGLSL.h" 
#include <GL/glut.h>
#include <iostream>

using namespace std;

//Shader and Program Objects:
aShaderManager  shadermanager;
aShaderObject* myShader = 0;  


void AppInit(void)
{ 
   myShader = shadermanager.loadfromFile("tutorial3.vert","tutorial3.frag");
   
   if (myShader == 0)
   {
        cout << "Can't create shader object. Exiting now.\n";
        exit(-1);
   }
}

//*************************************************************
//Draw one Frame (don't Swap Buffers)
float rr = 0.5f;
float gg = 0.3f;
float bb = 0.0f;


void DrawFrame(void)
{
   rr+=0.01; if (rr > 1.0) rr = 0.5;

   myShader->begin();

   // Draw a Teapot
   myShader->sendUniform3f("myColor", rr, gg, bb);
   glutSolidTeapot(1.0); 
   
   // Draw a 2nd Teapot with different Uniform:
   myShader->sendUniform3f("myColor", 1.0f-rr, gg, bb);
   glTranslatef(2.0f,0.0f,0.0f);
   glutSolidTeapot(0.5);

   myShader->end();
}

//*************************************************************
// use App Exit to clean up
void AppExit(void)
{
}

//*************************************************************
//END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -