2016-03-10 3 views
0

Я только начинаю с простого программирования OpenGL/GLSL и ошибаюсь. Я хочу построить структуру для моих данных, которые я использую. Я хотел бы сохранить его части в vec3 или vec4 и т. Д. Но я всегда получаю ошибку vec3/vec2, которая не определена. Что мне здесь не хватает? Помощь была бы оценена. После небольшого примера, где я получаю сообщение об ошибке.Vec3 в OpenGl/Glew/GLSL не определен

#include <Windows.h> 
#include <GL\glew.h> 
#include <GL\freeglut.h> 
#include <iostream> 
#include <fstream> 


using namespace std; 
int windowWidth = 1280; 
int windowHeight = 800; 
int windowStartX = 100; 
int windowStartY = 25; 

struct HairData { 
    vec3 position; 
    vec2 uv; 
}; 

void render() 
{ 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
// Left window 
glViewport(0,0,windowWidth/2,windowHeight); 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
gluOrtho2D(0, windowWidth/2, windowHeight, 0); 
glScissor(0, 0, windowWidth/2, windowHeight); 

// Right window 
glViewport(windowWidth/2, 0, windowWidth, windowHeight); 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
gluPerspective(45.0, (GLfloat)(windowWidth)/(GLfloat)(windowHeight), 0.1f, 500.0); 

glutSwapBuffers(); 
} 

int main(int argc, char* argv[]) { 
    glutInit(&argc, argv); 
    glutInitWindowPosition(windowStartX, windowStartY); 
    glutInitWindowSize(windowWidth, windowHeight); 
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); 
    glutCreateWindow("Simple Hair Program"); 
    glEnable(GL_SCISSOR_TEST); 
    glutDisplayFunc(render); 
    glutMainLoop(); 
return 0; 
} 

`

+1

Нет таких «стандартных» типов для OpenGL или библиотек GLEW и GLUT. Вам нужно использовать другую библиотеку, такую ​​как [GLM] (http://glm.g-truc.net/0.9.7/index.html) или сами определить эти типы и их операции. –

ответ

2

vec3 доступен только в GLSL, то есть в шейдеров, а не в коде CPU.

Чтобы заменить его, вы можете определить свои собственные типы данных или использовать библиотеку, например GLM, которая определяет похожие типы данных.