当前位置: 首页>>代码示例>>C++>>正文


C++ ModelData::getBoneWeightsVBO方法代码示例

本文整理汇总了C++中ModelData::getBoneWeightsVBO方法的典型用法代码示例。如果您正苦于以下问题:C++ ModelData::getBoneWeightsVBO方法的具体用法?C++ ModelData::getBoneWeightsVBO怎么用?C++ ModelData::getBoneWeightsVBO使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ModelData的用法示例。


在下文中一共展示了ModelData::getBoneWeightsVBO方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: 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);
}
开发者ID:BarstoolStudios,项目名称:Settlement,代码行数:63,代码来源:Villager.cpp


注:本文中的ModelData::getBoneWeightsVBO方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。