Как визуализировать разные текстуры на разных сторонах куба? (ВТК Питон) ⇐ Python
-
Anonymous
Как визуализировать разные текстуры на разных сторонах куба? (ВТК Питон)
Я пытался визуализировать разные текстуры на разных сторонах куба.
Есть ли для этого функция vtk? Или мне следует объединить 6 разных самолетов? Также я не нашел примеров UV-Mapping куба в VTK. Могу ли я получить помощь в общем направлении?
Я пробовал использовать vtkCubeSource, но он обновляет текстуру для всего куба.
Этот подход сработал для рендеринга одной текстуры со всех 6 сторон.
импортировать vtk # Загрузите изображение image_reader = vtk.vtkJPEGReader() # Заменить на подходящую программу чтения в зависимости от формата изображения image_reader.SetFileName("images.jpg") # Замените на путь к изображению image_reader.Обновить() # Создаём куб с помощью vtkCubeSource CubeSource = vtk.vtkCubeSource() CubeSource.SetCenter(0, 0, 0) CubeSource.SetXLength(1) CubeSource.SetYLength(1) CubeSource.SetZLength(1) кубИсточник.Обновление() # Создаем объект текстуры текстура = vtk.vtkTexture() текстура.SetInputData(image_reader.GetOutput()) # Создаем картограф для куба картограф = vtk.vtkPolyDataMapper() Mapper.SetInputConnection(cubeSource.GetOutputPort()) Mapper.SetColorModeToDirectScalars() Mapper.SetScalarModeToUsePointData() # Создаем актера для куба актер = vtk.vtkActor() актер.SetMapper(сопоставитель) актер.SetTexture(текстура) # Создаём рендерер и окно рендеринга рендерер = vtk.vtkRenderer() рендерер.AddActor(актер) рендерер.SetBackground(0.1, 0.2, 0.4) renderWindow = vtk.vtkRenderWindow() renderWindow.AddRenderer(рендерер) renderWindow.SetSize(640, 480) # Создаем интерактор интерактор = vtk.vtkRenderWindowInteractor() Interactor.SetRenderWindow(renderWindow) # Инициализируем и запускаем визуализацию рендерWindow.Render() интерактор.Старт()
Я пытался визуализировать разные текстуры на разных сторонах куба.
Есть ли для этого функция vtk? Или мне следует объединить 6 разных самолетов? Также я не нашел примеров UV-Mapping куба в VTK. Могу ли я получить помощь в общем направлении?
Я пробовал использовать vtkCubeSource, но он обновляет текстуру для всего куба.
Этот подход сработал для рендеринга одной текстуры со всех 6 сторон.
импортировать vtk # Загрузите изображение image_reader = vtk.vtkJPEGReader() # Заменить на подходящую программу чтения в зависимости от формата изображения image_reader.SetFileName("images.jpg") # Замените на путь к изображению image_reader.Обновить() # Создаём куб с помощью vtkCubeSource CubeSource = vtk.vtkCubeSource() CubeSource.SetCenter(0, 0, 0) CubeSource.SetXLength(1) CubeSource.SetYLength(1) CubeSource.SetZLength(1) кубИсточник.Обновление() # Создаем объект текстуры текстура = vtk.vtkTexture() текстура.SetInputData(image_reader.GetOutput()) # Создаем картограф для куба картограф = vtk.vtkPolyDataMapper() Mapper.SetInputConnection(cubeSource.GetOutputPort()) Mapper.SetColorModeToDirectScalars() Mapper.SetScalarModeToUsePointData() # Создаем актера для куба актер = vtk.vtkActor() актер.SetMapper(сопоставитель) актер.SetTexture(текстура) # Создаём рендерер и окно рендеринга рендерер = vtk.vtkRenderer() рендерер.AddActor(актер) рендерер.SetBackground(0.1, 0.2, 0.4) renderWindow = vtk.vtkRenderWindow() renderWindow.AddRenderer(рендерер) renderWindow.SetSize(640, 480) # Создаем интерактор интерактор = vtk.vtkRenderWindowInteractor() Interactor.SetRenderWindow(renderWindow) # Инициализируем и запускаем визуализацию рендерWindow.Render() интерактор.Старт()