Exemplo n.º 1
0
void Cube::initialize() {
	program.link();
	color = glm::vec3(0.5, 0.5, 0.5);
	std::cout << "Cube: " << glGetError() << "\n";
	initPoints();
	initIndicies();
	initNormals();

	glBindVertexArray(vao);
		glBindBuffer(GL_ARRAY_BUFFER, vbo);
		glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat) * numPoints * 3, points, GL_STATIC_DRAW);
		glVertexAttribPointer(program.getAttribLocation("vVertex"), 3, GL_FLOAT, GL_FALSE, 0, 0);
		glEnableVertexAttribArray(program.getAttribLocation("vVertex"));
		std::cout << "Cube: " << glGetError() << "\n";
		if (program.getAttribLocation("vNormal") > 0) {
			glBindBuffer(GL_ARRAY_BUFFER, vbn);
			glBufferData(GL_ARRAY_BUFFER, sizeof(glm::vec3) * 12, (const GLvoid *)sideNormals, GL_STATIC_DRAW);
			glVertexAttribPointer(program.getAttribLocation("vNormal"), 3, GL_FLOAT, GL_FALSE, 0, 0);
			glEnableVertexAttribArray(program.getAttribLocation("vNormal"));
		}
		std::cout << "Cube: " << glGetError() << "\n";
		glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vbi);
		glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(GLuint) * numIdx, indicies, GL_STATIC_DRAW);
		std::cout << "Cube: " << glGetError() << "\n";
	glBindVertexArray(0);
}
Exemplo n.º 2
0
bool cScene::Init(FILE* fd) {

	maxHeight = 0;
	minHeight = SCENE_HEIGHT;
	int randomseed = 0;
	int amplitude = SCENE_HEIGHT/2;
	PerlinNoise noise = PerlinNoise(0.1,1,amplitude,8,randomseed);
	
	for(int z=0;z<SCENE_DEPTH;z++){
		for(int x=0;x<SCENE_WIDTH;x++){
			int alt = amplitude + (int)noise.GetHeight(x,z);
			int y;
			for (y = 0; y < alt; y++){
				mapa[y][x][z] = 1;
				nCubes[y]++;
			}
			minHeight = min(y,minHeight);
			maxHeight = max(y,maxHeight);
			heightMap[x][z] = y;
			for(;y<SCENE_HEIGHT;y++){
				mapa[y][x][z] = 0;
			}
		}
	}
	//fprintf(fd,"min-->%d\nmax-->%d\n",minHeight,maxHeight);
	initVBO();
	initNormals();

	unsigned long len = 0;
	
	if(shader.loadShader("vertexShader.vert", &len, VERTEX_SHADER) != OK) return false;
	if(shader.loadShader("fragmentShader.frag", &len, FRAGMENT_SHADER) != OK) return false;
	
	if(shader.compileShader(VERTEX_SHADER) != OK) {
		GLchar *log = shader.getCompilationLog(VERTEX_SHADER);
		return false;
	}
	if(shader.compileShader(FRAGMENT_SHADER) != OK) {
		GLchar *log = shader.getCompilationLog(FRAGMENT_SHADER);
		return false;
	}
	
	if(shader.linkShader(VERTEX_SHADER) != OK) {
		GLchar *log = shader.getLinkingLog(VERTEX_SHADER);
		return false;
	}
	if(shader.linkShader(FRAGMENT_SHADER) != OK) {
		GLchar *log = shader.getLinkingLog(FRAGMENT_SHADER);
		return false;
	}
	
	if(shader.useShader(VERTEX_SHADER) != OK) return false;
	//if(shader.useShader(FRAGMENT_SHADER) != OK) return false;

	return true;
}
Exemplo n.º 3
0
void ObjectModel::restCube()
{
    initNormals();

    m_cloudPoints = vector< vector<Point3f> >(6, vector<Point3f>());

    m_pointStatus = vector< vector<FatoStatus> >(6,vector<FatoStatus>());

    m_faceDescriptors = vector<Mat>(6, Mat());

    m_faceKeypoints = vector< vector<KeyPoint> >(6, vector<KeyPoint>());

    m_relativePointsPos = vector< vector<Point3f> >(6, vector<Point3f>());
}
Exemplo n.º 4
0
ObjectModel::ObjectModel() :
	m_center(),
	m_width(0),
	m_height(0),
	m_depth(0),
	m_isLearned(6, false),
	m_appearanceRatio(6, 0),
	m_eigNormals(6, 3)
{
	

	initNormals();

	m_cloudPoints = vector< vector<Point3f> >(6, vector<Point3f>());

	m_pointStatus = vector< vector<FatoStatus> >(6,vector<FatoStatus>());

	m_faceDescriptors = vector<Mat>(6, Mat());

	m_faceKeypoints = vector< vector<KeyPoint> >(6, vector<KeyPoint>());

	m_relativePointsPos = vector< vector<Point3f> >(6, vector<Point3f>());

}