本文整理汇总了C++中ModelData::getNormalsVBO方法的典型用法代码示例。如果您正苦于以下问题:C++ ModelData::getNormalsVBO方法的具体用法?C++ ModelData::getNormalsVBO怎么用?C++ ModelData::getNormalsVBO使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ModelData
的用法示例。
在下文中一共展示了ModelData::getNormalsVBO方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadResources
//==============================================================================
// Loads Model Data into OpenGL and Stores Handles in Static Variables
//==============================================================================
void Tree::loadResources() {
shaderProgram = ShaderUtil::createProgram("Tree", std::vector < GLenum > {GL_VERTEX_SHADER, GL_FRAGMENT_SHADER}, true);
sPositionHandle = glGetAttribLocation(shaderProgram, "iPosition");
sNormalHandle = glGetAttribLocation(shaderProgram, "iNormal");
sSunHandle = glGetUniformLocation(shaderProgram, "uSunDirection");
sMVPHandle = glGetUniformLocation(shaderProgram, "uMVP");
sNormalMatrixHandle = glGetUniformLocation(shaderProgram, "uNormalMatrix");
ModelData data = ShaderUtil::loadModel("tree");
verticesVBO = data.getVerticesVBO();
normalsVBO = data.getNormalsVBO();
vertCount = data.getVertCount();
glGenVertexArrays(1, &VAO);
glBindVertexArray(VAO);
glUseProgram(shaderProgram);
//------------------------------------------------------------------------------
// Load Vertex Data
//------------------------------------------------------------------------------
glBindBuffer(GL_ARRAY_BUFFER, verticesVBO);
glEnableVertexAttribArray(sPositionHandle);
glVertexAttribPointer(sPositionHandle, 3, GL_FLOAT, GL_FALSE, 0, NULL);
//------------------------------------------------------------------------------
// Load Normal Data
//------------------------------------------------------------------------------
glBindBuffer(GL_ARRAY_BUFFER, normalsVBO);
glEnableVertexAttribArray(sNormalHandle);
glVertexAttribPointer(sNormalHandle, 3, GL_FLOAT, GL_FALSE, 0, NULL);
glUseProgram(0);
glBindVertexArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
}
示例2: loadResources
void Villager::loadResources() {
ModelData data = ShaderUtil::loadModel("villager");
verticesVBO = data.getVerticesVBO();
normalsVBO = data.getNormalsVBO();
boneWeightsVBO = data.getBoneWeightsVBO();
boneIndicesVBO = data.getBoneIndicesVBO();
vertCount = data.getVertCount();
baseSkeleton = data.getSkeleton();
std::vector<GLenum> shadersUsed {GL_VERTEX_SHADER, GL_FRAGMENT_SHADER};
shaderProgram = ShaderUtil::createProgram("Villager", shadersUsed, true);
sMVPHandle = glGetUniformLocation(shaderProgram, "uMVP");
sSunHandle = glGetUniformLocation(shaderProgram, "uSunDirection");
sNormalMatrixHandle = glGetUniformLocation(shaderProgram, "uNormalMatrix");
sBoneWeightsHandle = glGetAttribLocation(shaderProgram, "iBoneWeights");
sBoneIndicesHandle = glGetAttribLocation(shaderProgram, "iBoneIndices");
sPositionHandle = glGetAttribLocation(shaderProgram, "iPosition");
sNormalHandle = glGetAttribLocation(shaderProgram, "iNormal");
sBoneMatricesHandle = glGetUniformLocation(shaderProgram, "uBoneMatrices");
glGenVertexArrays(1, &VAO);
glBindVertexArray(VAO);
glUseProgram(shaderProgram);
//------------------------------------------------------------------------------
// Load Vertex Data
//------------------------------------------------------------------------------
glBindBuffer(GL_ARRAY_BUFFER, verticesVBO);
glEnableVertexAttribArray(sPositionHandle);
glVertexAttribPointer(sPositionHandle, 3, GL_FLOAT, GL_FALSE, 0, NULL);
//------------------------------------------------------------------------------
// Load Normal Data
//------------------------------------------------------------------------------
glBindBuffer(GL_ARRAY_BUFFER, normalsVBO);
glEnableVertexAttribArray(sNormalHandle);
glVertexAttribPointer(sNormalHandle, 3, GL_FLOAT, GL_FALSE, 0, NULL);
//------------------------------------------------------------------------------
// Load Bone Weight Data
//------------------------------------------------------------------------------
glBindBuffer(GL_ARRAY_BUFFER, boneWeightsVBO);
glEnableVertexAttribArray(sBoneWeightsHandle);
glVertexAttribPointer(sBoneWeightsHandle, 3, GL_FLOAT, GL_FALSE, 0, NULL);
//------------------------------------------------------------------------------
// Load Bone Indices Data
//------------------------------------------------------------------------------
glBindBuffer(GL_ARRAY_BUFFER, boneIndicesVBO);
glEnableVertexAttribArray(sBoneIndicesHandle);
glVertexAttribPointer(sBoneIndicesHandle, 3, GL_FLOAT, GL_FALSE, 0, NULL);
glUseProgram(0);
glBindVertexArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
}