设为首页 加入收藏

TOP

GLSL透视矩阵(C语言)(一)
2014-11-23 18:58:07 来源: 作者: 【 】 浏览:20
Tags:GLSL 透视 矩阵 语言

perspective.vert

#version 330

layout(location =0) in vec4 vertexPosition;
layout(location =1) in vec4 vertexColor;

smooth out vec4 theColor;

uniform vec2 offset;
uniform mat4 perspectiveMatrix;

void main()
{
	vec4 cameraPosition =vertexPosition +vec4(offset.x, offset.y, 0.0, 0.0);

	gl_Position =perspectiveMatrix *cameraPosition;
	theColor =vertexColor;
}

perspective.frag

#version 330

smooth in vec4 theColor;

out vec4 outputColor;

void main()
{
	outputColor =theColor;
}

perspective.c

////////////////////////////////////////////////////////////////////
///透视版本二:矩阵实现。
//调用库vmath
//作者:青丝成霜
/////////////////////////////////////////////////////
#include 
  
   
#include 
   
     #include 
    
      #include "readtext.h" #include "vmath.h" #ifdef _APPLE_ #include 
     
       #else #define FREEGLUT_STATIC #include 
      
        #endif #pragma comment(lib, "readtext.lib") #pragma comment(lib, "vmath.lib") int i; GLuint vShader, fShader, programHandle; GLint vaoHandle, vboHandles[2], positionBufferHandle, colorBufferHandle; Matrix44f M; //投影矩阵 GLint offsetUniformLocation; GLint perspectiveMatrixUniformLocation; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// int infoLogLength =0; int charWritten =0; char *infoLog; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// float positionData[] ={ 0.25f, 0.25f, -1.25f, 1.0f, 0.25f, -0.25f, -1.25f, 1.0f, -0.25f, 0.25f, -1.25f, 1.0f, 0.25f, -0.25f, -1.25f, 1.0f, -0.25f, -0.25f, -1.25f, 1.0f, -0.25f, 0.25f, -1.25f, 1.0f, 0.25f, 0.25f, -2.75f, 1.0f, -0.25f, 0.25f, -2.75f, 1.0f, 0.25f, -0.25f, -2.75f, 1.0f, 0.25f, -0.25f, -2.75f, 1.0f, -0.25f, 0.25f, -2.75f, 1.0f, -0.25f, -0.25f, -2.75f, 1.0f, -0.25f, 0.25f, -1.25f, 1.0f, -0.25f, -0.25f, -1.25f, 1.0f, -0.25f, -0.25f, -2.75f, 1.0f, -0.25f, 0.25f, -1.25f, 1.0f, -0.25f, -0.25f, -2.75f, 1.0f, -0.25f, 0.25f, -2.75f, 1.0f, 0.25f, 0.25f, -1.25f, 1.0f, 0.25f, -0.25f, -2.75f, 1.0f, 0.25f, -0.25f, -1.25f, 1.0f, 0.25f, 0.25f, -1.25f, 1.0f, 0.25f, 0.25f, -2.75f, 1.0f, 0.25f, -0.25f, -2.75f, 1.0f, 0.25f, 0.25f, -2.75f, 1.0f, 0.25f, 0.25f, -1.25f, 1.0f, -0.25f, 0.25f, -1.25f, 1.0f, 0.25f, 0.25f, -2.75f, 1.0f, -0.25f, 0.25f, -1.25f, 1.0f, -0.25f, 0.25f, -2.75f, 1.0f, 0.25f, -0.25f, -2.75f, 1.0f, -0.25f, -0.25f, -1.25f, 1.0f, 0.25f, -0.25f, -1.25f, 1.0f, 0.25f, -0.25f, -2.75f, 1.0f, -0.25f, -0.25f, -2.75f, 1.0f, -0.25f, -0.25f, -1.25f, 1.0f}; float colorData[] ={ 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.8f, 0.8f, 0.8f, 1.0f, 0.8f, 0.8f, 0.8f, 1.0f, 0.8f, 0.8f, 0.8f, 1.0f, 0.8f, 0.8f, 0.8f, 1.0f, 0.8f, 0.8f, 0.8f, 1.0f, 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.5f, 0.5f, 0.0f, 1.0f, 0.5f, 0.5f, 0.0f, 1.0f, 0.5f, 0.5f, 0.0f, 1.0f, 0.5f, 0.5f, 0.0f, 1.0f, 0.5f, 0.5f, 0.0f, 1.0f, 0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇c语言高级编程指南1 (翻译) 下一篇C优化篇之减少运算量

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: