Я использую Qt3D (5.11), и у меня возникают утверждения, когда я пытаюсь установить значение QParameter
, которое будет использоваться пользовательским фрагментным шейдером.Вот фрагмент кода, который, кажется, не работает:
auto entity = new Qt3DRender::QEntity( mRootEntity );
auto material = new Qt3DRender::QMaterial( entity );
// Set up the custom geometry and material for the entity, which works
// fine in tests as long as the fragment shader does not use texture mapping
auto image = new Qt3DRender::QTextureImage( entity );
image->setSource( QString( "qrc:/image.png" ) );
auto texture = new Qt3DRender::QTexture2D( entity );
texture->addTextureImage( image );
material->addParameter( new QParameter( "imageTexture", texture, entity ) );
Я включил только биты кода, необходимые для этого вопроса:
Это правильный способустановить простой параметр текстуры?Если нет, то чего мне не хватает, чтобы установить простое изображение?
Обратите внимание, что qrc:/image.png
- это изображение 256x256, которое я без проблем использовал в другом месте этого проекта.
Код компилируется нормально, но когда я запускаю его, я получаю утверждение со следующим сообщением: ASSERT: "texture" in file texture\textureimage.cpp, line 94
Я использую VS2017 в Windows 10 с Qt 5.11.