本文整理汇总了C++中tree::genTree方法的典型用法代码示例。如果您正苦于以下问题:C++ tree::genTree方法的具体用法?C++ tree::genTree怎么用?C++ tree::genTree使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tree
的用法示例。
在下文中一共展示了tree::genTree方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setup
// Initialization routine.
void setup(void)
{
cout <<"Seed: " << SEED << endl;
DiamondSquareSetup();
genSeaBox();
pos = Tree.genTree(treeVertices, 0, 8, 40, 40, 15);
genTreePosition();
posBush = Bush.genTree(treeVertices, pos.leafFinish + 1, 8, 120, 120,5);
glClearColor(135.0f/255, 206.0f / 255, 250.0f / 255, 0.0);
#pragma region Shader
// Create shader program executable - read, compile and link shaders
char* vertexShader = readTextFile("vertexShader.glsl");
vertexShaderId = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vertexShaderId, 1, (const char**)&vertexShader, NULL);
glCompileShader(vertexShaderId);
char* fragmentShader = readTextFile("fragmentShader.glsl");
fragmentShaderId = glCreateShader(GL_FRAGMENT_SHADER);
glShaderSource(fragmentShaderId, 1, (const char**)&fragmentShader, NULL);
glCompileShader(fragmentShaderId);
programId = glCreateProgram();
glAttachShader(programId, vertexShaderId);
glAttachShader(programId, fragmentShaderId);
glLinkProgram(programId);
glUseProgram(programId);
cout << "Vertex:" << endl;
shaderCompileTest(vertexShaderId);
cout << "Fragment:" << endl;
shaderCompileTest(fragmentShaderId);
///////////////////////////////////////////////////////////////////////////
#pragma endregion
#pragma region Buffer
// Create vertex array object (VAO) and vertex buffer object (VBO) and associate data with vertex shader.
glGenVertexArrays(3, vao);
glGenBuffers(3, buffer);
//Terrain
glBindVertexArray(vao[SQUARE]);
glBindBuffer(GL_ARRAY_BUFFER, buffer[SQUARE_VERTICES]);
glBufferData(GL_ARRAY_BUFFER, sizeof(terrainVertices), terrainVertices, GL_STATIC_DRAW);
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(terrainVertices[0]), 0);
glEnableVertexAttribArray(0);
glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE, sizeof(terrainVertices[0]), (GLvoid*)sizeof(terrainVertices[0].coords));
glEnableVertexAttribArray(1);
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, sizeof(terrainVertices[0]),(GLvoid*)(sizeof(terrainVertices[0].coords) + sizeof(terrainVertices[0].normals)));
glEnableVertexAttribArray(2);
//Sky
glBindVertexArray(vao[SEA]);
glBindBuffer(GL_ARRAY_BUFFER, buffer[SEA_VERTICES]);
glBufferData(GL_ARRAY_BUFFER, sizeof(seaVertices), seaVertices, GL_STATIC_DRAW);
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(seaVertices[0]), 0);
glEnableVertexAttribArray(0);
glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE, sizeof(seaVertices[0]), (GLvoid*)sizeof(seaVertices[0].coords));
glEnableVertexAttribArray(1);
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, sizeof(seaVertices[0]), (GLvoid*)(sizeof(seaVertices[0].coords) + sizeof(seaVertices[0].normals)));
glEnableVertexAttribArray(2);
glBindVertexArray(vao[TREE]);
glBindBuffer(GL_ARRAY_BUFFER, buffer[TREE_VERTICES]);
glBufferData(GL_ARRAY_BUFFER, sizeof(treeVertices), treeVertices, GL_STATIC_DRAW);
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(treeVertices[0]), 0);
glEnableVertexAttribArray(0);
glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE, sizeof(treeVertices[0]), (GLvoid*)sizeof(treeVertices[0].coords));
glEnableVertexAttribArray(1);
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, sizeof(treeVertices[0]), (GLvoid*)(sizeof(treeVertices[0].coords) + sizeof(treeVertices[0].normals)));
glEnableVertexAttribArray(2);
glVertexAttribPointer(3, 4, GL_FLOAT, GL_FALSE, sizeof(treeVertices[0]), (GLvoid*)(sizeof(treeVertices[0].coords) + sizeof(treeVertices[0].normals) + sizeof(treeVertices[0].texCoords)));
glEnableVertexAttribArray(3);
///////////////////////////////////////
#pragma endregion
#pragma region Uniform
glUniform4fv(glGetUniformLocation(programId, "terrainFandB.ambRefl"), 1,&terrainFandB.ambRefl[0]);
glUniform4fv(glGetUniformLocation(programId, "terrainFandB.difRefl"), 1,&terrainFandB.difRefl[0]);
glUniform4fv(glGetUniformLocation(programId, "terrainFandB.specRefl"), 1,&terrainFandB.specRefl[0]);
glUniform4fv(glGetUniformLocation(programId, "terrainFandB.emitCols"), 1,&terrainFandB.emitCols[0]);
glUniform1f(glGetUniformLocation(programId, "terrainFandB.shininess"),terrainFandB.shininess);
glUniform4fv(glGetUniformLocation(programId, "globAmb"), 1, &globAmb[0]);
glUniform4fv(glGetUniformLocation(programId, "light0.ambCols"), 1,&light0.ambCols[0]);
glUniform4fv(glGetUniformLocation(programId, "light0.difCols"), 1,&light0.difCols[0]);
glUniform4fv(glGetUniformLocation(programId, "light0.specCols"), 1,&light0.specCols[0]);
glUniform4fv(glGetUniformLocation(programId, "light0.coords"), 1,&light0.coords[0]);
//.........这里部分代码省略.........