У меня есть папка с изображениями, которые я хочу использовать в качестве фона для рендеринга сцены.Я использую класс OnscreenImage Panda3D, чтобы нарисовать их.У меня есть цикл for, в котором случайный индекс выбирается на каждой итерации и используется соответствующее ему изображение.Однако в последовательности сгенерированных изображений первое выбранное изображение остается во всех из них.Другими словами, фон первого изображения выбирается случайным образом, но затем он используется для всех изображений.
Я уже обеспечил правильное обновление моей индексной переменной, печатая ее при каждой итерации, поэтому я предполагаю, чтоЭта проблема напрямую связана с процедурой рендеринга Panda3D.У меня очень ограниченный опыт работы с Panda3D, поэтому я не совсем уверен, с чего начать отладку этой проблемы.
def renderToPNM():
base.graphicsEngine.renderFrame() # render the frame
image = PNMImage() # PNMImage is an image manipulation class provided by Panda3D
dr = base.camNode.getDisplayRegion(0)
dr.getScreenshot(image) # take a screenshot of the rendered window
return image
for i in range(10):
...
scene_id = random.randint(0,381) # randomly select an image number
background = OnscreenImage(parent = render2d, image = "maps/NBL_images/{}.png".format(scene_id)) # load background image
base.cam2d.node().getDisplayRegion(0).setSort(-1) # make sure it renders behind everything else
...
path = "Pictures/renders/images/scene_{}.jpg".format(i) # set the path to save the render to
renderToPNM().write(Filename(path)) # call the function to screencap the scene
Есть мысли?