IDE: xcode
系统: MacOS
我的project [repo]就在我成功完成skybox [tutorial link]工作的时候,但是我在assimp's model loading [tutorial link]上苦苦挣扎。
我没有收到任何错误。即使我在cout << vertices.data() << endl;
[github line link]的相应行中添加了model.h
[github line link],但在将其main.cpp
[github line link]初始化并打印0x106e6b000
之后,该模型仍未加载到窗口中所以模型顶点正在加载。
但是,除了背景色以外,窗口保持空白。 In the tutorial [youtube video link with timestamp](我忠实地遵循)正在运行。
我正在尝试渲染证明为红色的模型nanosuit.obj
。ourModel.Draw( shader );
应该绘制它,但是不显示或不显示它。
由于某种原因,尽管没有出现无法找到数据或触发异常的错误,但仍未显示。
我想给出一个MCVE,但是它的代码非常相互联系,因此是github链接。
据我所言,除非有抱怨,否则应该绘制模型。
// Draw the loaded model
glm::mat4 model;
model = glm::translate( model, glm::vec3( 0.0f, -1.75f, 0.0f ) ); // Translate it down a bit so it's at the center of the scene
model = glm::scale( model, glm::vec3( 0.2f, 0.2f, 0.2f ) ); // It's a bit too big for our scene, so scale it down
glUniformMatrix4fv( glGetUniformLocation( shader.Program, "model" ), 1, GL_FALSE, glm::value_ptr( model ) );
ourModel.Draw( shader );
我尝试过的东西:
.obj
我正在尝试不对转储进行代码编码,因此会产生线路链接。随时告诉我您是否想要代码段。我对这里为什么发生感到迷茫。
@Botje建议我尝试以下操作:
modelLoading.frag
[repo, line link]使用红色代替纹理,以尽量减少模型纹理出现问题的风险。无效。仍然没有模型。 void main( )
{
//color = vec4( texture( texture_diffuse, TexCoords ));
color = vec4( 1.0f, 0.0f, 0.0f, 1.0f);
}
在model.h
中,编辑的cout << vertices.size() << endl;
[repo, line link]打印件对本教程中的nanosuit.obj
模型是正确的。我在那里有一个行星,但它不是本教程的一部分,因此是之前的0x106e6b000
。我现在得到vertices.size()
:
156 15222 19350 78 6804 7248 8316
因此,模型肯定正在加载,只是没有渲染。问题必须在模型加载后但渲染之前出现。
答案 0 :(得分:2)
知道了。模型从未初始化。该教程是在2018年之前的,那时GLM不再进行自动初始化。
在我发布的代码段中是错误消息。
应该是:
// Draw the loaded model
glm::mat4 model = glm::mat4(1.0f);
代替:
// Draw the loaded model
glm::mat4 model;
我的GLM版本是0.9.9.3
,而教程肯定是0.9.9.0
之前的版本,而他们更改了该版本。
注意,很多教程都使用此代码。
一个I worked with不是change it either。
您可以通过单击以下项目中的xcode检查您的GLM版本 您的文件浏览器,在“项目”列表中选择“应用”,然后
构建设置>搜索路径>标头搜索路径
双击以打开列表。