Skip to content

KonstantinKondratenko/Pybullet_Texture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Добавление текстуры в симуляцию

Добавление текстуры при помощи ChangeVisualShape в коде симуляции

c = p.loadURDF('cube.urdf',

					[-.1, 0, .1],
					
					p.getQuaternionFromEuler([0, 0, 0]),
					
					globalScaling=1,
					
					physicsClientId=PYB_CLIENT
					
					)

x = p.loadTexture('tag.png')

p.changeVisualShape(c, -1, textureUniqueId=x)

# -1 value is "link index"

#(link index has something to do with "joints", of which the cube apparently has none)

Данный способ работает не со всеми изображениями, причина такого поведения пока неизвестна

При таком способе добавления текстуры изображение будет добавлено на все стороны куба

Cube_with_texture_ChangeVisualShape

Добавление текстуры при помощи связки URDF+OBJ+MTL

  1. В блендере нужно открыть вкладку материалов Opening_materials_tab

  2. Нажать New чтобы создать новый материал

  3. Нажать на кружок рядом с Base color и выбрать texture image Choosing_image_texture

  4. При помощи open открыть нужное изображение Open_button_on_screenshot

  5. Убедиться, что Display mode выставлен на Material Preview (иначе текстуру не будет видно, по умолчанию отображаются лишь геометрические формы)

    Checking_display_mode

  6. Кликнув на левый верхний угол и задерживая кнопку мыши, тянуть вправо чтобы раздвоить экран.

  7. Сменить editor type в левом верхнем углу на UV editor Opening_UV_editor

  8. Выбрать добавленное изображение в UV editor Opening_image_in_UV_editor UV_editor_opened_with_image

  9. В 3д редакторе выделить куб и нажать Tab, в результате слева должно появиться разделение изображения на области, которые будут видны на гранях куба.

    Если граней не видно, см п.9 Cube_face_selector

  10. Убедиться, что включена синхронизация и режим выбора граней Enabling_face_selector

  11. Расположить желаемую часть изображение на одной из граней (Связи между областями можно разорвать при помощи Rip region).

    Image_on_face_adjusted

    Обратите внимание на ориентацию куба на следующем скриншоте Correct_face_example

    Обратите внимание на ориентацию куба в пространстве в правом верхнем углу, (верхняя грань в блендере не будет являться верхней гранью куба в симуляции).

    Нужно изменять текстуру на грани, нормалью которой будет вектор -oY, именно эта грань будет верхней гранью в симуляции

  12. Экспортировать в качестве obj файла (убедитесь, что выбрано Export Materials) Exporting_obj

  13. В urdf файле в mesh filename указать имя obj файла, в Material указать такое же имя материала как в Блендере, в texture filename указать имя изображения

    Urdf файл загружен в репозиторий Changing_urdf

  14. В симуляции загрузить созданный urdf file

c = p.loadURDF('cube_copy.urdf',

					[-.1, 0, .1],
					
					p.getQuaternionFromEuler([0, 0, 0]),
					
					globalScaling=1,
					
					physicsClientId=PYB_CLIENT
					
					)

About

pybullet texture adding manual

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published