Surface with multiple textures#

This example demonstrates one possible method for displaying a 3D surface with multiple textures.

Thanks to Emmanuel Reynaud and Luis Gutierrez for providing the gorgeous coral model for this demo. You can find the data on FigShare: https://zenodo.org/records/13380203

More information on the methods used to generate this model can be found in L. Gutierrez-Heredia, C. Keogh, E. G. Reynaud, Assessing the Capabilities of Additive Manufacturing Technologies for Coral Studies, Education, and Monitoring. Front. Mar. Sci. 5 (2018), doi:10.3389/fmars.2018.00278.

A bit about 3D models#

A standard way to define a 3D model (mesh, or Surface in napari) is by listing vertices (3D point coordinates) and faces (triplets of vertex indices - each face is a triangle in 3D space). Meshes are often stored in “Wavefront” (.obj) files, which may have companion material (.mtl) files that describe some shading properties (base color, shinyness, etc.) for different parts of the model.

In some cases, the color of a vertex is given by a single point value that is then colormapped on the fly (vertex_values). In other cases, each vertex or face may be assigned a specific color (vertex_colors). These methods are demonstrated in Surface with texture and vertex_colors.

In the case of “photorealistic” models, the color of each vertex is instead determined by mapping a vertex to a point in an image called a texture using 2D texture coordinates in the range [0, 1]. The color of each individual pixel is smoothly interpolated (sampled) on the fly from the texture (the GPU makes this interpolation very fast).

Napari does not (yet) support models with multiple textures or materials. If the textures don’t overlap, you can display them on separate meshes as shown in this demo. If the textures do overlap, you may instead be able to combine the textures as images. This relies on textures having the same texture coordinates, and may require resizing the textures to match each other.

Tags: visualization-nD

import os

import matplotlib.pyplot as plt
import pooch
from vispy.io import imread, read_mesh

import napari

Download the model#

download = pooch.DOIDownloader(progressbar=True)
doi = '10.5281/zenodo.13380203'
tmp_dir = pooch.os_cache('napari-surface-texture-example')
os.makedirs(tmp_dir, exist_ok=True)
data_files = {
    'mesh': 'PocilloporaDamicornisSkin.obj',
    # "materials": "PocilloporaVerrugosaSkinCrop.mtl",  # not yet supported
    'Texture_0': 'PocilloporaDamicornisSkin_Texture_0.jpg',
    'GeneratedMat2': 'PocilloporaDamicornisSkin_GeneratedMat2.png',
}
print(f'downloading data into {tmp_dir}')
for file_name in data_files.values():
    if not (tmp_dir / file_name).exists():
        print(f'downloading {file_name}')
        download(
            f'doi:{doi}/{file_name}',
            output_file=tmp_dir / file_name,
            pooch=None,
        )
    else:
        print(f'using cached {tmp_dir / file_name}')
downloading data into /home/runner/.cache/napari-surface-texture-example
downloading PocilloporaDamicornisSkin.obj

  0%|                                              | 0.00/93.8M [00:00<?, ?B/s]
  0%|                                   | 2.05k/93.8M [00:00<1:59:20, 13.1kB/s]
  0%|                                      | 38.9k/93.8M [00:00<11:29, 136kB/s]
  0%|                                      | 78.8k/93.8M [00:00<08:18, 188kB/s]
  0%|                                       | 156k/93.8M [00:00<05:18, 294kB/s]
  0%|                                       | 241k/93.8M [00:00<04:10, 373kB/s]
  0%|▏                                      | 305k/93.8M [00:00<04:06, 379kB/s]
  0%|▏                                      | 380k/93.8M [00:01<03:52, 402kB/s]
  1%|▏                                      | 527k/93.8M [00:01<02:47, 557kB/s]
  1%|▎                                      | 625k/93.8M [00:01<02:44, 567kB/s]
  1%|▎                                      | 707k/93.8M [00:01<02:50, 545kB/s]
  1%|▎                                      | 805k/93.8M [00:01<02:46, 560kB/s]
  1%|▍                                      | 936k/93.8M [00:01<02:27, 630kB/s]
  1%|▍                                     | 1.03M/93.8M [00:02<02:29, 618kB/s]
  1%|▍                                     | 1.12M/93.8M [00:02<02:39, 581kB/s]
  1%|▍                                     | 1.23M/93.8M [00:02<02:31, 612kB/s]
  1%|▌                                     | 1.31M/93.8M [00:02<02:40, 576kB/s]
  1%|▌                                     | 1.39M/93.8M [00:02<02:47, 551kB/s]
  2%|▌                                     | 1.49M/93.8M [00:02<02:43, 563kB/s]
  2%|▋                                     | 1.59M/93.8M [00:03<02:41, 572kB/s]
  2%|▋                                     | 1.67M/93.8M [00:03<02:48, 546kB/s]
  2%|▋                                     | 1.84M/93.8M [00:03<02:15, 678kB/s]
  2%|▊                                     | 1.92M/93.8M [00:03<02:27, 623kB/s]
  2%|▊                                     | 2.02M/93.8M [00:03<02:29, 614kB/s]
  2%|▊                                     | 2.11M/93.8M [00:03<02:30, 607kB/s]
  2%|▉                                     | 2.20M/93.8M [00:04<02:39, 574kB/s]
  2%|▉                                     | 2.28M/93.8M [00:04<02:46, 549kB/s]
  3%|▉                                     | 2.36M/93.8M [00:04<02:51, 532kB/s]
  3%|█                                     | 2.51M/93.8M [00:04<02:22, 639kB/s]
  3%|█                                     | 2.59M/93.8M [00:04<02:33, 595kB/s]
  3%|█                                     | 2.67M/93.8M [00:04<02:41, 565kB/s]
  3%|█                                     | 2.77M/93.8M [00:05<02:39, 572kB/s]
  3%|█▏                                    | 2.85M/93.8M [00:05<02:45, 548kB/s]
  3%|█▏                                    | 2.96M/93.8M [00:05<02:33, 591kB/s]
  3%|█▎                                    | 3.11M/93.8M [00:05<02:13, 679kB/s]
  3%|█▎                                    | 3.26M/93.8M [00:05<02:01, 742kB/s]
  4%|█▎                                    | 3.39M/93.8M [00:05<01:59, 754kB/s]
  4%|█▍                                    | 3.49M/93.8M [00:06<02:07, 706kB/s]
  4%|█▍                                    | 3.57M/93.8M [00:06<02:20, 642kB/s]
  4%|█▍                                    | 3.65M/93.8M [00:06<02:30, 598kB/s]
  4%|█▌                                    | 3.75M/93.8M [00:06<02:30, 597kB/s]
  4%|█▌                                    | 3.83M/93.8M [00:06<02:39, 564kB/s]
  4%|█▌                                    | 3.93M/93.8M [00:06<02:37, 571kB/s]
  4%|█▋                                    | 4.06M/93.8M [00:07<02:20, 637kB/s]
  4%|█▋                                    | 4.16M/93.8M [00:07<02:23, 623kB/s]
  5%|█▋                                    | 4.24M/93.8M [00:07<02:33, 584kB/s]
  5%|█▊                                    | 4.34M/93.8M [00:07<02:32, 585kB/s]
  5%|█▊                                    | 4.42M/93.8M [00:07<02:40, 557kB/s]
  5%|█▊                                    | 4.50M/93.8M [00:07<02:45, 538kB/s]
  5%|█▊                                    | 4.58M/93.8M [00:08<02:49, 525kB/s]
  5%|█▉                                    | 4.66M/93.8M [00:08<02:52, 516kB/s]
  5%|█▉                                    | 4.76M/93.8M [00:08<02:45, 538kB/s]
  5%|█▉                                    | 4.84M/93.8M [00:08<02:50, 523kB/s]
  5%|█▉                                    | 4.93M/93.8M [00:08<02:57, 501kB/s]
  5%|██                                    | 5.02M/93.8M [00:08<02:48, 527kB/s]
  5%|██                                    | 5.15M/93.8M [00:09<02:26, 605kB/s]
  6%|██                                    | 5.24M/93.8M [00:09<02:34, 572kB/s]
  6%|██▏                                   | 5.38M/93.8M [00:09<02:12, 665kB/s]
  6%|██▏                                   | 5.48M/93.8M [00:09<02:17, 641kB/s]
  6%|██▎                                   | 5.63M/93.8M [00:09<02:03, 715kB/s]
  6%|██▎                                   | 5.71M/93.8M [00:09<02:15, 649kB/s]
  6%|██▎                                   | 5.81M/93.8M [00:10<02:19, 632kB/s]
  6%|██▍                                   | 5.94M/93.8M [00:10<02:09, 677kB/s]
  6%|██▍                                   | 6.04M/93.8M [00:10<02:14, 652kB/s]
  7%|██▍                                   | 6.14M/93.8M [00:10<02:18, 634kB/s]
  7%|██▌                                   | 6.22M/93.8M [00:10<02:27, 592kB/s]
  7%|██▌                                   | 6.37M/93.8M [00:10<02:08, 681kB/s]
  7%|██▋                                   | 6.50M/93.8M [00:11<02:02, 712kB/s]
  7%|██▋                                   | 6.59M/93.8M [00:11<02:08, 676kB/s]
  7%|██▋                                   | 6.69M/93.8M [00:11<02:13, 651kB/s]
  7%|██▊                                   | 6.84M/93.8M [00:11<02:00, 721kB/s]
  7%|██▊                                   | 6.91M/93.8M [00:11<02:16, 637kB/s]
  7%|██▊                                   | 6.99M/93.8M [00:11<02:29, 579kB/s]
  8%|██▉                                   | 7.10M/93.8M [00:12<02:21, 613kB/s]
  8%|██▉                                   | 7.18M/93.8M [00:12<02:29, 578kB/s]
  8%|██▉                                   | 7.26M/93.8M [00:12<02:36, 551kB/s]
  8%|██▉                                   | 7.36M/93.8M [00:12<02:33, 564kB/s]
  8%|███                                   | 7.44M/93.8M [00:12<02:39, 543kB/s]
  8%|███                                   | 7.53M/93.8M [00:12<02:43, 526kB/s]
  8%|███                                   | 7.62M/93.8M [00:13<02:37, 546kB/s]
  8%|███                                   | 7.71M/93.8M [00:13<02:42, 530kB/s]
  8%|███▏                                  | 7.84M/93.8M [00:13<02:21, 608kB/s]
  8%|███▏                                  | 7.93M/93.8M [00:13<02:22, 604kB/s]
  9%|███▎                                  | 8.08M/93.8M [00:13<02:04, 688kB/s]
  9%|███▎                                  | 8.18M/93.8M [00:13<02:09, 659kB/s]
  9%|███▎                                  | 8.31M/93.8M [00:14<02:02, 698kB/s]
  9%|███▍                                  | 8.43M/93.8M [00:14<02:02, 695kB/s]
  9%|███▍                                  | 8.51M/93.8M [00:14<02:14, 635kB/s]
  9%|███▌                                  | 8.64M/93.8M [00:14<02:05, 679kB/s]
  9%|███▌                                  | 8.74M/93.8M [00:14<02:10, 653kB/s]
  9%|███▌                                  | 8.83M/93.8M [00:14<02:13, 634kB/s]
 10%|███▌                                  | 8.93M/93.8M [00:15<02:16, 622kB/s]
 10%|███▋                                  | 9.06M/93.8M [00:15<02:05, 672kB/s]
 10%|███▋                                  | 9.16M/93.8M [00:15<02:10, 647kB/s]
 10%|███▊                                  | 9.26M/93.8M [00:15<02:14, 630kB/s]
 10%|███▊                                  | 9.34M/93.8M [00:15<02:23, 589kB/s]
 10%|███▊                                  | 9.50M/93.8M [00:15<01:58, 709kB/s]
 10%|███▉                                  | 9.59M/93.8M [00:16<02:10, 645kB/s]
 10%|███▉                                  | 9.67M/93.8M [00:16<02:20, 598kB/s]
 10%|███▉                                  | 9.75M/93.8M [00:16<02:28, 567kB/s]
 11%|███▉                                  | 9.85M/93.8M [00:16<02:25, 575kB/s]
 11%|████                                  | 9.93M/93.8M [00:16<02:32, 550kB/s]
 11%|████                                  | 10.0M/93.8M [00:16<02:28, 563kB/s]
 11%|████                                  | 10.2M/93.8M [00:17<02:12, 629kB/s]
 11%|████▏                                 | 10.2M/93.8M [00:17<02:21, 588kB/s]
 11%|████▏                                 | 10.4M/93.8M [00:17<02:14, 619kB/s]
 11%|████▎                                 | 10.5M/93.8M [00:17<01:59, 700kB/s]
 11%|████▎                                 | 10.6M/93.8M [00:17<01:59, 697kB/s]
 12%|████▍                                 | 10.8M/93.8M [00:17<01:38, 840kB/s]
 12%|████▍                                 | 10.9M/93.8M [00:18<01:51, 741kB/s]
 12%|████▍                                 | 11.0M/93.8M [00:18<02:04, 662kB/s]
 12%|████▍                                 | 11.1M/93.8M [00:18<02:15, 612kB/s]
 12%|████▌                                 | 11.1M/93.8M [00:18<02:23, 577kB/s]
 12%|████▌                                 | 11.2M/93.8M [00:18<02:22, 580kB/s]
 12%|████▌                                 | 11.4M/93.8M [00:18<02:08, 643kB/s]
 12%|████▋                                 | 11.5M/93.8M [00:19<02:11, 628kB/s]
 12%|████▋                                 | 11.5M/93.8M [00:19<02:19, 588kB/s]
 12%|████▋                                 | 11.6M/93.8M [00:19<02:19, 589kB/s]
 13%|████▊                                 | 11.8M/93.8M [00:19<02:01, 677kB/s]
 13%|████▊                                 | 11.9M/93.8M [00:19<02:11, 622kB/s]
 13%|████▊                                 | 12.0M/93.8M [00:19<02:13, 613kB/s]
 13%|████▉                                 | 12.1M/93.8M [00:20<02:21, 577kB/s]
 13%|████▉                                 | 12.2M/93.8M [00:20<02:20, 582kB/s]
 13%|████▉                                 | 12.3M/93.8M [00:20<02:13, 613kB/s]
 13%|█████                                 | 12.4M/93.8M [00:20<02:02, 666kB/s]
 13%|█████                                 | 12.5M/93.8M [00:20<02:06, 644kB/s]
 13%|█████                                 | 12.6M/93.8M [00:20<01:53, 717kB/s]
 14%|█████▏                                | 12.8M/93.8M [00:21<01:54, 710kB/s]
 14%|█████▏                                | 12.9M/93.8M [00:21<01:46, 761kB/s]
 14%|█████▎                                | 13.0M/93.8M [00:21<02:00, 671kB/s]
 14%|█████▎                                | 13.1M/93.8M [00:21<02:08, 628kB/s]
 14%|█████▎                                | 13.2M/93.8M [00:21<02:18, 580kB/s]
 14%|█████▎                                | 13.2M/93.8M [00:21<02:17, 584kB/s]
 14%|█████▍                                | 13.3M/93.8M [00:22<02:24, 556kB/s]
 14%|█████▍                                | 13.4M/93.8M [00:22<02:14, 596kB/s]
 14%|█████▍                                | 13.5M/93.8M [00:22<02:14, 595kB/s]
 15%|█████▌                                | 13.6M/93.8M [00:22<02:14, 594kB/s]
 15%|█████▌                                | 13.7M/93.8M [00:22<02:21, 564kB/s]
 15%|█████▌                                | 13.8M/93.8M [00:22<02:19, 573kB/s]
 15%|█████▋                                | 13.9M/93.8M [00:23<02:25, 547kB/s]
 15%|█████▋                                | 14.0M/93.8M [00:23<02:30, 531kB/s]
 15%|█████▋                                | 14.1M/93.8M [00:23<02:33, 519kB/s]
 15%|█████▋                                | 14.1M/93.8M [00:23<02:35, 511kB/s]
 15%|█████▊                                | 14.3M/93.8M [00:23<01:51, 713kB/s]
 15%|█████▊                                | 14.4M/93.8M [00:23<02:03, 645kB/s]
 16%|█████▉                                | 14.6M/93.8M [00:24<01:50, 718kB/s]
 16%|█████▉                                | 14.7M/93.8M [00:24<01:42, 768kB/s]
 16%|█████▉                                | 14.8M/93.8M [00:24<01:55, 686kB/s]
 16%|██████                                | 14.9M/93.8M [00:24<01:45, 745kB/s]
 16%|██████                                | 15.0M/93.8M [00:24<01:57, 670kB/s]
 16%|██████▏                               | 15.1M/93.8M [00:24<02:01, 646kB/s]
 16%|██████▏                               | 15.2M/93.8M [00:25<02:10, 601kB/s]
 16%|██████▏                               | 15.3M/93.8M [00:25<02:11, 598kB/s]
 16%|██████▏                               | 15.4M/93.8M [00:25<02:18, 567kB/s]
 17%|██████▎                               | 15.5M/93.8M [00:25<02:24, 543kB/s]
 17%|██████▎                               | 15.6M/93.8M [00:25<02:28, 528kB/s]
 17%|██████▎                               | 15.7M/93.8M [00:25<02:22, 547kB/s]
 17%|██████▍                               | 15.8M/93.8M [00:26<02:19, 561kB/s]
 17%|██████▍                               | 15.8M/93.8M [00:26<02:23, 542kB/s]
 17%|██████▍                               | 15.9M/93.8M [00:26<02:19, 557kB/s]
 17%|██████▌                               | 16.1M/93.8M [00:26<01:58, 655kB/s]
 17%|██████▌                               | 16.2M/93.8M [00:26<02:08, 606kB/s]
 17%|██████▌                               | 16.3M/93.8M [00:26<02:02, 631kB/s]
 17%|██████▋                               | 16.4M/93.8M [00:27<02:11, 588kB/s]
 18%|██████▋                               | 16.5M/93.8M [00:27<02:11, 589kB/s]
 18%|██████▋                               | 16.5M/93.8M [00:27<02:18, 559kB/s]
 18%|██████▋                               | 16.6M/93.8M [00:27<02:15, 569kB/s]
 18%|██████▊                               | 16.7M/93.8M [00:27<02:21, 546kB/s]
 18%|██████▊                               | 16.8M/93.8M [00:27<02:10, 589kB/s]
 18%|██████▊                               | 16.9M/93.8M [00:28<02:10, 590kB/s]
 18%|██████▉                               | 17.0M/93.8M [00:28<02:17, 559kB/s]
 18%|██████▉                               | 17.1M/93.8M [00:28<02:14, 569kB/s]
 18%|██████▉                               | 17.2M/93.8M [00:28<02:00, 635kB/s]
 18%|███████                               | 17.3M/93.8M [00:28<02:02, 623kB/s]
 19%|███████                               | 17.4M/93.8M [00:28<02:17, 555kB/s]
 19%|███████                               | 17.5M/93.8M [00:29<02:30, 508kB/s]
 19%|███████                               | 17.6M/93.8M [00:29<02:23, 531kB/s]
 19%|███████▏                              | 17.7M/93.8M [00:29<01:59, 638kB/s]
 19%|███████▏                              | 17.8M/93.8M [00:29<02:07, 596kB/s]
 19%|███████▎                              | 17.9M/93.8M [00:29<02:07, 595kB/s]
 19%|███████▎                              | 18.0M/93.8M [00:29<02:07, 595kB/s]
 19%|███████▎                              | 18.1M/93.8M [00:30<02:21, 534kB/s]
 19%|███████▎                              | 18.2M/93.8M [00:30<02:17, 550kB/s]
 19%|███████▍                              | 18.2M/93.8M [00:30<02:21, 534kB/s]
 20%|███████▍                              | 18.4M/93.8M [00:30<01:57, 640kB/s]
 20%|███████▌                              | 18.5M/93.8M [00:30<01:50, 684kB/s]
 20%|███████▌                              | 18.6M/93.8M [00:30<01:45, 714kB/s]
 20%|███████▌                              | 18.7M/93.8M [00:31<01:55, 648kB/s]
 20%|███████▋                              | 18.8M/93.8M [00:31<01:58, 631kB/s]
 20%|███████▋                              | 19.0M/93.8M [00:31<01:50, 678kB/s]
 20%|███████▋                              | 19.0M/93.8M [00:31<01:59, 623kB/s]
 20%|███████▊                              | 19.2M/93.8M [00:31<01:46, 701kB/s]
 21%|███████▊                              | 19.3M/93.8M [00:31<01:46, 697kB/s]
 21%|███████▊                              | 19.4M/93.8M [00:32<01:42, 725kB/s]
 21%|███████▉                              | 19.5M/93.8M [00:32<01:53, 656kB/s]
 21%|███████▉                              | 19.7M/93.8M [00:32<01:42, 724kB/s]
 21%|████████                              | 19.8M/93.8M [00:32<01:48, 684kB/s]
 21%|████████                              | 19.9M/93.8M [00:32<01:52, 657kB/s]
 21%|████████                              | 19.9M/93.8M [00:32<02:01, 608kB/s]
 21%|████████▏                             | 20.1M/93.8M [00:33<01:46, 692kB/s]
 22%|████████▏                             | 20.2M/93.8M [00:33<01:56, 632kB/s]
 22%|████████▏                             | 20.2M/93.8M [00:33<02:04, 589kB/s]
 22%|████████▎                             | 20.4M/93.8M [00:33<01:58, 619kB/s]
 22%|████████▎                             | 20.5M/93.8M [00:33<02:00, 610kB/s]
 22%|████████▎                             | 20.6M/93.8M [00:33<02:01, 604kB/s]
 22%|████████▎                             | 20.7M/93.8M [00:34<02:01, 601kB/s]
 22%|████████▍                             | 20.7M/93.8M [00:34<02:08, 567kB/s]
 22%|████████▍                             | 20.8M/93.8M [00:34<02:13, 546kB/s]
 22%|████████▍                             | 20.9M/93.8M [00:34<02:17, 530kB/s]
 22%|████████▌                             | 21.0M/93.8M [00:34<02:12, 549kB/s]
 23%|████████▌                             | 21.1M/93.8M [00:34<02:02, 591kB/s]
 23%|████████▌                             | 21.2M/93.8M [00:35<02:02, 591kB/s]
 23%|████████▋                             | 21.3M/93.8M [00:35<01:57, 619kB/s]
 23%|████████▋                             | 21.5M/93.8M [00:35<01:43, 700kB/s]
 23%|████████▋                             | 21.6M/93.8M [00:35<01:53, 638kB/s]
 23%|████████▊                             | 21.6M/93.8M [00:35<02:01, 594kB/s]
 23%|████████▊                             | 21.7M/93.8M [00:35<02:01, 593kB/s]
 23%|████████▊                             | 21.9M/93.8M [00:36<01:45, 680kB/s]
 23%|████████▉                             | 22.0M/93.8M [00:36<01:54, 625kB/s]
 24%|████████▉                             | 22.0M/93.8M [00:36<02:02, 585kB/s]
 24%|████████▉                             | 22.1M/93.8M [00:36<02:08, 558kB/s]
 24%|█████████                             | 22.2M/93.8M [00:36<02:12, 539kB/s]
 24%|█████████                             | 22.3M/93.8M [00:36<02:09, 554kB/s]
 24%|█████████                             | 22.4M/93.8M [00:37<02:06, 565kB/s]
 24%|█████████                             | 22.5M/93.8M [00:37<02:10, 544kB/s]
 24%|█████████▏                            | 22.6M/93.8M [00:37<02:00, 589kB/s]
 24%|█████████▏                            | 22.7M/93.8M [00:37<02:00, 589kB/s]
 24%|█████████▎                            | 22.9M/93.8M [00:37<01:36, 736kB/s]
 25%|█████████▎                            | 23.0M/93.8M [00:37<01:38, 720kB/s]
 25%|█████████▎                            | 23.1M/93.8M [00:38<01:35, 740kB/s]
 25%|█████████▍                            | 23.2M/93.8M [00:38<01:37, 725kB/s]
 25%|█████████▍                            | 23.3M/93.8M [00:38<01:47, 656kB/s]
 25%|█████████▍                            | 23.4M/93.8M [00:38<01:56, 605kB/s]
 25%|█████████▌                            | 23.5M/93.8M [00:38<02:02, 572kB/s]
 25%|█████████▌                            | 23.6M/93.8M [00:38<02:01, 579kB/s]
 25%|█████████▌                            | 23.7M/93.8M [00:39<02:06, 553kB/s]
 25%|█████████▌                            | 23.7M/93.8M [00:39<02:10, 536kB/s]
 25%|█████████▋                            | 23.8M/93.8M [00:39<02:13, 524kB/s]
 25%|█████████▋                            | 23.9M/93.8M [00:39<02:16, 513kB/s]
 26%|█████████▋                            | 24.0M/93.8M [00:39<02:09, 537kB/s]
 26%|█████████▊                            | 24.1M/93.8M [00:39<02:05, 554kB/s]
 26%|█████████▊                            | 24.2M/93.8M [00:40<02:03, 565kB/s]
 26%|█████████▊                            | 24.3M/93.8M [00:40<02:01, 573kB/s]
 26%|█████████▉                            | 24.4M/93.8M [00:40<01:59, 578kB/s]
 26%|█████████▊                           | 24.8M/93.8M [00:40<00:58, 1.18MB/s]
 27%|█████████▉                           | 25.3M/93.8M [00:40<00:41, 1.66MB/s]
 29%|██████████▌                          | 26.7M/93.8M [00:40<00:17, 3.80MB/s]
 30%|██████████▉                          | 27.7M/93.8M [00:41<00:15, 4.38MB/s]
 31%|███████████▎                         | 28.7M/93.8M [00:41<00:13, 4.82MB/s]
 32%|███████████▋                         | 29.6M/93.8M [00:41<00:12, 5.17MB/s]
 33%|████████████                         | 30.6M/93.8M [00:41<00:11, 5.45MB/s]
 34%|████████████▍                        | 31.7M/93.8M [00:41<00:10, 5.69MB/s]
 35%|████████████▊                        | 32.4M/93.8M [00:41<00:11, 5.17MB/s]
 35%|█████████████                        | 33.0M/93.8M [00:42<00:12, 4.74MB/s]
 36%|█████████████▎                       | 33.7M/93.8M [00:42<00:13, 4.62MB/s]
 37%|█████████████▌                       | 34.4M/93.8M [00:42<00:13, 4.55MB/s]
 37%|█████████████▊                       | 35.2M/93.8M [00:42<00:13, 4.48MB/s]
 38%|██████████████▏                      | 35.9M/93.8M [00:42<00:12, 4.49MB/s]
 39%|██████████████▍                      | 36.7M/93.8M [00:42<00:12, 4.48MB/s]
 40%|██████████████▋                      | 37.3M/93.8M [00:43<00:12, 4.38MB/s]
 41%|███████████████                      | 38.0M/93.8M [00:43<00:13, 4.29MB/s]
 41%|███████████████▎                     | 38.7M/93.8M [00:43<00:11, 4.71MB/s]
 43%|███████████████▋                     | 39.9M/93.8M [00:43<00:10, 5.30MB/s]
 44%|████████████████▏                    | 41.1M/93.8M [00:43<00:08, 5.88MB/s]
 45%|████████████████▋                    | 42.3M/93.8M [00:43<00:08, 6.28MB/s]
 46%|█████████████████▏                   | 43.5M/93.8M [00:43<00:07, 6.64MB/s]
 48%|█████████████████▋                   | 44.7M/93.8M [00:44<00:07, 6.88MB/s]
 49%|██████████████████                   | 45.9M/93.8M [00:44<00:06, 7.04MB/s]
 50%|██████████████████▌                  | 47.2M/93.8M [00:44<00:06, 7.18MB/s]
 52%|███████████████████                  | 48.4M/93.8M [00:44<00:06, 7.31MB/s]
 52%|███████████████████▍                 | 49.2M/93.8M [00:44<00:06, 6.38MB/s]
 53%|███████████████████▋                 | 49.8M/93.8M [00:45<00:10, 4.35MB/s]
 54%|███████████████████▊                 | 50.3M/93.8M [00:45<00:10, 4.03MB/s]
 54%|████████████████████                 | 50.8M/93.8M [00:45<00:11, 3.68MB/s]
 55%|████████████████████▏                | 51.2M/93.8M [00:45<00:12, 3.43MB/s]
 55%|████████████████████▎                | 51.6M/93.8M [00:45<00:13, 3.07MB/s]
 55%|████████████████████▍                | 51.9M/93.8M [00:45<00:14, 2.82MB/s]
 56%|████████████████████▋                | 52.5M/93.8M [00:46<00:14, 2.94MB/s]
 56%|████████████████████▉                | 53.0M/93.8M [00:46<00:13, 2.94MB/s]
 57%|█████████████████████                | 53.5M/93.8M [00:47<00:40, 1.01MB/s]
 57%|█████████████████████▏               | 53.7M/93.8M [00:47<00:38, 1.04MB/s]
 57%|█████████████████████▎               | 53.9M/93.8M [00:47<00:35, 1.11MB/s]
 58%|█████████████████████▍               | 54.4M/93.8M [00:48<00:28, 1.38MB/s]
 58%|█████████████████████▋               | 54.8M/93.8M [00:48<00:23, 1.63MB/s]
 59%|█████████████████████▊               | 55.3M/93.8M [00:48<00:19, 1.93MB/s]
 59%|██████████████████████               | 55.8M/93.8M [00:48<00:17, 2.16MB/s]
 60%|██████████████████████▏              | 56.3M/93.8M [00:48<00:15, 2.37MB/s]
 61%|██████████████████████▍              | 56.7M/93.8M [00:48<00:14, 2.50MB/s]
 61%|██████████████████████▌              | 57.1M/93.8M [00:49<00:14, 2.48MB/s]
 61%|██████████████████████▋              | 57.5M/93.8M [00:49<00:15, 2.36MB/s]
 62%|██████████████████████▉              | 58.0M/93.8M [00:49<00:14, 2.53MB/s]
 62%|██████████████████████▉              | 58.3M/93.8M [00:49<00:15, 2.31MB/s]
 63%|███████████████████████▏             | 58.8M/93.8M [00:49<00:13, 2.50MB/s]
 63%|███████████████████████▍             | 59.2M/93.8M [00:49<00:13, 2.61MB/s]
 64%|███████████████████████▌             | 59.7M/93.8M [00:50<00:13, 2.62MB/s]
 64%|███████████████████████▋             | 60.1M/93.8M [00:50<00:12, 2.63MB/s]
 65%|███████████████████████▉             | 60.6M/93.8M [00:50<00:12, 2.75MB/s]
 65%|████████████████████████             | 60.9M/93.8M [00:50<00:13, 2.46MB/s]
 65%|████████████████████████▏            | 61.4M/93.8M [00:50<00:12, 2.61MB/s]
 66%|████████████████████████▍            | 61.9M/93.8M [00:50<00:11, 2.77MB/s]
 67%|████████████████████████▋            | 62.4M/93.8M [00:51<00:11, 2.79MB/s]
 67%|████████████████████████▊            | 62.8M/93.8M [00:51<00:11, 2.69MB/s]
 68%|█████████████████████████            | 63.4M/93.8M [00:51<00:10, 2.86MB/s]
 68%|█████████████████████████▏           | 63.9M/93.8M [00:51<00:10, 2.97MB/s]
 69%|█████████████████████████▍           | 64.4M/93.8M [00:51<00:09, 2.96MB/s]
 69%|█████████████████████████▌           | 64.9M/93.8M [00:51<00:09, 2.99MB/s]
 70%|█████████████████████████▊           | 65.4M/93.8M [00:52<00:09, 3.00MB/s]
 70%|█████████████████████████▉           | 65.9M/93.8M [00:52<00:09, 2.93MB/s]
 71%|██████████████████████████▏          | 66.3M/93.8M [00:52<00:09, 2.90MB/s]
 71%|██████████████████████████▍          | 66.8M/93.8M [00:52<00:09, 2.95MB/s]
 72%|██████████████████████████▌          | 67.2M/93.8M [00:52<00:09, 2.74MB/s]
 72%|██████████████████████████▋          | 67.5M/93.8M [00:52<00:10, 2.51MB/s]
 73%|██████████████████████████▊          | 68.0M/93.8M [00:53<00:09, 2.64MB/s]
 73%|███████████████████████████          | 68.5M/93.8M [00:53<00:09, 2.68MB/s]
 73%|███████████████████████████▏         | 68.9M/93.8M [00:53<00:09, 2.58MB/s]
 74%|███████████████████████████▍         | 69.4M/93.8M [00:53<00:08, 2.72MB/s]
 75%|███████████████████████████▌         | 69.9M/93.8M [00:53<00:08, 2.81MB/s]
 75%|███████████████████████████▊         | 70.4M/93.8M [00:53<00:08, 2.82MB/s]
 76%|███████████████████████████▉         | 70.9M/93.8M [00:54<00:07, 2.95MB/s]
 76%|████████████████████████████         | 71.3M/93.8M [00:54<00:08, 2.71MB/s]
 77%|████████████████████████████▎        | 71.8M/93.8M [00:54<00:07, 2.87MB/s]
 77%|████████████████████████████▍        | 72.2M/93.8M [00:54<00:08, 2.69MB/s]
 77%|████████████████████████████▋        | 72.7M/93.8M [00:54<00:07, 2.74MB/s]
 78%|████████████████████████████▊        | 73.1M/93.8M [00:54<00:07, 2.75MB/s]
 78%|█████████████████████████████        | 73.6M/93.8M [00:55<00:07, 2.75MB/s]
 79%|█████████████████████████████▏       | 74.1M/93.8M [00:55<00:07, 2.81MB/s]
 80%|█████████████████████████████▍       | 74.6M/93.8M [00:55<00:06, 2.85MB/s]
 80%|█████████████████████████████▌       | 75.1M/93.8M [00:55<00:06, 2.90MB/s]
 81%|█████████████████████████████▉       | 76.0M/93.8M [00:55<00:04, 3.75MB/s]
 82%|██████████████████████████████▍      | 77.3M/93.8M [00:55<00:03, 4.90MB/s]
 84%|███████████████████████████████      | 78.6M/93.8M [00:56<00:02, 5.85MB/s]
 85%|███████████████████████████████▌     | 80.0M/93.8M [00:56<00:02, 6.59MB/s]
 87%|████████████████████████████████     | 81.4M/93.8M [00:56<00:01, 7.14MB/s]
 88%|████████████████████████████████▋    | 82.8M/93.8M [00:56<00:01, 7.53MB/s]
 90%|█████████████████████████████████▏   | 84.2M/93.8M [00:56<00:01, 7.82MB/s]
 91%|█████████████████████████████████▋   | 85.4M/93.8M [00:56<00:01, 7.60MB/s]
 92%|█████████████████████████████████▉   | 86.1M/93.8M [00:57<00:01, 6.65MB/s]
 93%|██████████████████████████████████▏  | 86.8M/93.8M [00:57<00:01, 5.85MB/s]
 93%|██████████████████████████████████▍  | 87.4M/93.8M [00:57<00:01, 5.15MB/s]
 94%|██████████████████████████████████▋  | 87.9M/93.8M [00:57<00:01, 3.52MB/s]
 94%|██████████████████████████████████▊  | 88.3M/93.8M [00:57<00:01, 3.26MB/s]
 96%|███████████████████████████████████▍ | 89.7M/93.8M [00:58<00:00, 4.59MB/s]
 96%|███████████████████████████████████▋ | 90.5M/93.8M [00:58<00:00, 3.63MB/s]
 98%|████████████████████████████████████▎| 91.9M/93.8M [00:58<00:00, 4.74MB/s]
100%|████████████████████████████████████▊| 93.4M/93.8M [00:58<00:00, 5.79MB/s]
  0%|                                              | 0.00/93.8M [00:00<?, ?B/s]
100%|██████████████████████████████████████| 93.8M/93.8M [00:00<00:00, 437GB/s]
downloading PocilloporaDamicornisSkin_Texture_0.jpg

  0%|                                              | 0.00/17.3M [00:00<?, ?B/s]
  0%|                                     | 9.22k/17.3M [00:00<06:03, 47.6kB/s]
  0%|                                      | 32.8k/17.3M [00:00<02:18, 124kB/s]
  0%|▏                                     | 77.8k/17.3M [00:00<01:25, 202kB/s]
  1%|▎                                      | 166k/17.3M [00:00<00:55, 306kB/s]
  2%|▌                                      | 269k/17.3M [00:00<00:40, 425kB/s]
  2%|▊                                      | 366k/17.3M [00:00<00:34, 484kB/s]
  3%|█▏                                     | 513k/17.3M [00:01<00:26, 627kB/s]
  3%|█▎                                     | 595k/17.3M [00:01<00:28, 591kB/s]
  4%|█▌                                     | 693k/17.3M [00:01<00:27, 600kB/s]
  4%|█▋                                     | 775k/17.3M [00:01<00:28, 575kB/s]
  5%|██                                     | 922k/17.3M [00:01<00:24, 681kB/s]
  6%|██▎                                   | 1.04M/17.3M [00:01<00:23, 694kB/s]
  6%|██▍                                   | 1.12M/17.3M [00:02<00:25, 641kB/s]
  7%|██▋                                   | 1.20M/17.3M [00:02<00:26, 604kB/s]
  8%|██▊                                   | 1.30M/17.3M [00:02<00:26, 609kB/s]
  8%|███▏                                  | 1.44M/17.3M [00:02<00:22, 703kB/s]
  9%|███▍                                  | 1.54M/17.3M [00:02<00:23, 678kB/s]
  9%|███▌                                  | 1.63M/17.3M [00:02<00:24, 630kB/s]
 10%|███▋                                  | 1.71M/17.3M [00:03<00:26, 596kB/s]
 10%|███▉                                  | 1.79M/17.3M [00:03<00:27, 573kB/s]
 11%|████▏                                 | 1.89M/17.3M [00:03<00:26, 587kB/s]
 11%|████▎                                 | 1.95M/17.3M [00:03<00:28, 533kB/s]
 12%|████▌                                 | 2.10M/17.3M [00:03<00:23, 653kB/s]
 13%|████▊                                 | 2.18M/17.3M [00:03<00:24, 612kB/s]
 13%|█████                                 | 2.33M/17.3M [00:03<00:21, 703kB/s]
 14%|█████▎                                | 2.41M/17.3M [00:04<00:23, 647kB/s]
 15%|█████▌                                | 2.54M/17.3M [00:04<00:21, 675kB/s]
 16%|█████▉                                | 2.69M/17.3M [00:04<00:19, 748kB/s]
 16%|██████                                | 2.79M/17.3M [00:04<00:20, 711kB/s]
 17%|██████▎                               | 2.87M/17.3M [00:04<00:22, 654kB/s]
 17%|██████▌                               | 2.97M/17.3M [00:04<00:22, 644kB/s]
 18%|██████▋                               | 3.05M/17.3M [00:05<00:23, 605kB/s]
 18%|███████                               | 3.19M/17.3M [00:05<00:20, 701kB/s]
 19%|███████▏                              | 3.29M/17.3M [00:05<00:20, 677kB/s]
 20%|███████▍                              | 3.38M/17.3M [00:05<00:22, 630kB/s]
 20%|███████▋                              | 3.47M/17.3M [00:05<00:22, 626kB/s]
 21%|███████▊                              | 3.55M/17.3M [00:05<00:23, 591kB/s]
 21%|████████                              | 3.69M/17.3M [00:06<00:20, 662kB/s]
 22%|████████▎                             | 3.78M/17.3M [00:06<00:20, 650kB/s]
 22%|████████▍                             | 3.87M/17.3M [00:06<00:22, 611kB/s]
 23%|████████▋                             | 3.95M/17.3M [00:06<00:22, 583kB/s]
 23%|████████▉                             | 4.05M/17.3M [00:06<00:22, 593kB/s]
 24%|█████████                             | 4.13M/17.3M [00:06<00:23, 569kB/s]
 24%|█████████▎                            | 4.23M/17.3M [00:07<00:22, 584kB/s]
 25%|█████████▍                            | 4.32M/17.3M [00:07<00:21, 596kB/s]
 25%|█████████▋                            | 4.41M/17.3M [00:07<00:22, 573kB/s]
 26%|█████████▊                            | 4.49M/17.3M [00:07<00:23, 556kB/s]
 26%|██████████                            | 4.57M/17.3M [00:07<00:23, 544kB/s]
 27%|██████████▎                           | 4.68M/17.3M [00:07<00:21, 596kB/s]
 28%|██████████▍                           | 4.76M/17.3M [00:07<00:21, 573kB/s]
 28%|██████████▋                           | 4.85M/17.3M [00:08<00:22, 556kB/s]
 28%|██████████▊                           | 4.93M/17.3M [00:08<00:22, 544kB/s]
 29%|███████████                           | 5.01M/17.3M [00:08<00:22, 536kB/s]
 29%|███████████▏                          | 5.09M/17.3M [00:08<00:23, 531kB/s]
 30%|███████████▍                          | 5.19M/17.3M [00:08<00:21, 556kB/s]
 30%|███████████▌                          | 5.27M/17.3M [00:08<00:22, 544kB/s]
 31%|███████████▊                          | 5.40M/17.3M [00:09<00:18, 629kB/s]
 32%|████████████▏                         | 5.55M/17.3M [00:09<00:16, 720kB/s]
 33%|████████████▎                         | 5.63M/17.3M [00:09<00:17, 657kB/s]
 33%|████████████▌                         | 5.73M/17.3M [00:09<00:17, 647kB/s]
 34%|████████████▊                         | 5.81M/17.3M [00:09<00:18, 608kB/s]
 34%|█████████████                         | 5.93M/17.3M [00:09<00:17, 643kB/s]
 35%|█████████████▏                        | 6.02M/17.3M [00:10<00:17, 636kB/s]
 35%|█████████████▍                        | 6.11M/17.3M [00:10<00:18, 601kB/s]
 36%|█████████████▋                        | 6.22M/17.3M [00:10<00:17, 636kB/s]
 37%|█████████████▉                        | 6.32M/17.3M [00:10<00:17, 632kB/s]
 37%|██████████████▏                       | 6.45M/17.3M [00:10<00:15, 691kB/s]
 38%|██████████████▍                       | 6.55M/17.3M [00:10<00:16, 670kB/s]
 38%|██████████████▌                       | 6.65M/17.3M [00:10<00:16, 655kB/s]
 39%|██████████████▊                       | 6.73M/17.3M [00:11<00:17, 611kB/s]
 40%|███████████████▎                      | 6.96M/17.3M [00:11<00:12, 861kB/s]
 41%|███████████████▍                      | 7.04M/17.3M [00:11<00:13, 769kB/s]
 41%|███████████████▋                      | 7.12M/17.3M [00:11<00:14, 684kB/s]
 42%|███████████████▉                      | 7.27M/17.3M [00:11<00:13, 756kB/s]
 42%|████████████████▏                     | 7.35M/17.3M [00:11<00:14, 684kB/s]
 43%|████████████████▍                     | 7.50M/17.3M [00:12<00:12, 758kB/s]
 44%|████████████████▊                     | 7.64M/17.3M [00:12<00:11, 810kB/s]
 45%|████████████████▉                     | 7.73M/17.3M [00:12<00:13, 719kB/s]
 45%|█████████████████▏                    | 7.81M/17.3M [00:12<00:14, 657kB/s]
 46%|█████████████████▍                    | 7.94M/17.3M [00:12<00:13, 708kB/s]
 46%|█████████████████▌                    | 8.02M/17.3M [00:12<00:14, 651kB/s]
 47%|██████████████████                    | 8.22M/17.3M [00:13<00:10, 828kB/s]
 48%|██████████████████▏                   | 8.30M/17.3M [00:13<00:12, 737kB/s]
 49%|██████████████████▍                   | 8.39M/17.3M [00:13<00:12, 697kB/s]
 49%|██████████████████▌                   | 8.48M/17.3M [00:13<00:13, 642kB/s]
 50%|██████████████████▊                   | 8.59M/17.3M [00:13<00:13, 667kB/s]
 51%|███████████████████▏                  | 8.74M/17.3M [00:13<00:11, 746kB/s]
 51%|███████████████████▍                  | 8.84M/17.3M [00:13<00:11, 707kB/s]
 52%|███████████████████▋                  | 8.93M/17.3M [00:14<00:12, 681kB/s]
 52%|███████████████████▉                  | 9.05M/17.3M [00:14<00:11, 694kB/s]
 53%|████████████████████                  | 9.13M/17.3M [00:14<00:12, 641kB/s]
 54%|████████████████████▍                 | 9.28M/17.3M [00:14<00:11, 728kB/s]
 54%|████████████████████▋                 | 9.42M/17.3M [00:14<00:10, 787kB/s]
 55%|████████████████████▉                 | 9.52M/17.3M [00:14<00:10, 737kB/s]
 56%|█████████████████████                 | 9.61M/17.3M [00:15<00:11, 671kB/s]
 56%|█████████████████████▎                | 9.70M/17.3M [00:15<00:11, 656kB/s]
 57%|█████████████████████▌                | 9.82M/17.3M [00:15<00:11, 677kB/s]
 57%|█████████████████████▊                | 9.92M/17.3M [00:15<00:11, 658kB/s]
 58%|█████████████████████▉                | 10.0M/17.3M [00:15<00:11, 616kB/s]
 58%|██████████████████████▏               | 10.1M/17.3M [00:15<00:11, 617kB/s]
 59%|██████████████████████▍               | 10.2M/17.3M [00:16<00:10, 650kB/s]
 59%|██████████████████████▌               | 10.3M/17.3M [00:16<00:11, 610kB/s]
 60%|██████████████████████▊               | 10.4M/17.3M [00:16<00:11, 580kB/s]
 61%|███████████████████████               | 10.5M/17.3M [00:16<00:10, 654kB/s]
 62%|███████████████████████▍              | 10.7M/17.3M [00:16<00:09, 737kB/s]
 62%|███████████████████████▌              | 10.7M/17.3M [00:16<00:09, 671kB/s]
 63%|███████████████████████▊              | 10.8M/17.3M [00:17<00:10, 625kB/s]
 63%|███████████████████████▉              | 10.9M/17.3M [00:17<00:10, 622kB/s]
 64%|████████████████████████▏             | 11.0M/17.3M [00:17<00:10, 591kB/s]
 64%|████████████████████████▍             | 11.1M/17.3M [00:17<00:08, 693kB/s]
 65%|████████████████████████▋             | 11.2M/17.3M [00:17<00:09, 640kB/s]
 65%|████████████████████████▊             | 11.3M/17.3M [00:17<00:09, 634kB/s]
 66%|█████████████████████████             | 11.4M/17.3M [00:17<00:09, 630kB/s]
 66%|█████████████████████████▎            | 11.5M/17.3M [00:18<00:09, 595kB/s]
 67%|█████████████████████████▍            | 11.6M/17.3M [00:18<00:09, 572kB/s]
 68%|█████████████████████████▋            | 11.7M/17.3M [00:18<00:09, 587kB/s]
 68%|█████████████████████████▉            | 11.8M/17.3M [00:18<00:09, 597kB/s]
 69%|██████████████████████████▏           | 11.9M/17.3M [00:18<00:08, 635kB/s]
 69%|██████████████████████████▎           | 12.0M/17.3M [00:18<00:08, 629kB/s]
 70%|██████████████████████████▋           | 12.1M/17.3M [00:19<00:07, 720kB/s]
 71%|██████████████████████████▉           | 12.3M/17.3M [00:19<00:06, 752kB/s]
 72%|███████████████████████████▏          | 12.4M/17.3M [00:19<00:06, 713kB/s]
 72%|███████████████████████████▍          | 12.5M/17.3M [00:19<00:07, 685kB/s]
 73%|███████████████████████████▌          | 12.5M/17.3M [00:19<00:07, 633kB/s]
 73%|███████████████████████████▋          | 12.6M/17.3M [00:19<00:07, 598kB/s]
 74%|████████████████████████████          | 12.8M/17.3M [00:20<00:06, 698kB/s]
 74%|████████████████████████████▎         | 12.9M/17.3M [00:20<00:06, 675kB/s]
 75%|████████████████████████████▍         | 13.0M/17.3M [00:20<00:06, 628kB/s]
 75%|████████████████████████████▋         | 13.1M/17.3M [00:20<00:06, 624kB/s]
 76%|████████████████████████████▉         | 13.2M/17.3M [00:20<00:06, 623kB/s]
 77%|█████████████████████████████▏        | 13.3M/17.3M [00:20<00:06, 654kB/s]
 78%|█████████████████████████████▍        | 13.4M/17.3M [00:20<00:05, 737kB/s]
 78%|█████████████████████████████▋        | 13.5M/17.3M [00:21<00:05, 671kB/s]
 79%|█████████████████████████████▊        | 13.6M/17.3M [00:21<00:05, 655kB/s]
 79%|██████████████████████████████        | 13.7M/17.3M [00:21<00:05, 644kB/s]
 80%|██████████████████████████████▎       | 13.8M/17.3M [00:21<00:05, 637kB/s]
 80%|██████████████████████████████▍       | 13.9M/17.3M [00:21<00:05, 602kB/s]
 81%|██████████████████████████████▋       | 14.0M/17.3M [00:21<00:05, 608kB/s]
 81%|██████████████████████████████▊       | 14.1M/17.3M [00:22<00:05, 581kB/s]
 82%|███████████████████████████████       | 14.2M/17.3M [00:22<00:05, 591kB/s]
 82%|███████████████████████████████▎      | 14.2M/17.3M [00:22<00:05, 569kB/s]
 83%|███████████████████████████████▍      | 14.3M/17.3M [00:22<00:05, 554kB/s]
 83%|███████████████████████████████▋      | 14.4M/17.3M [00:22<00:05, 543kB/s]
 84%|███████████████████████████████▊      | 14.5M/17.3M [00:22<00:04, 567kB/s]
 84%|████████████████████████████████      | 14.6M/17.3M [00:23<00:04, 552kB/s]
 85%|████████████████████████████████▏     | 14.7M/17.3M [00:23<00:04, 571kB/s]
 85%|████████████████████████████████▍     | 14.8M/17.3M [00:23<00:04, 586kB/s]
 86%|████████████████████████████████▋     | 14.9M/17.3M [00:23<00:04, 566kB/s]
 86%|████████████████████████████████▊     | 15.0M/17.3M [00:23<00:04, 582kB/s]
 87%|█████████████████████████████████     | 15.0M/17.3M [00:23<00:04, 562kB/s]
 88%|█████████████████████████████████▎    | 15.1M/17.3M [00:23<00:03, 609kB/s]
 88%|█████████████████████████████████▌    | 15.3M/17.3M [00:24<00:03, 644kB/s]
 89%|█████████████████████████████████▋    | 15.4M/17.3M [00:24<00:03, 637kB/s]
 89%|█████████████████████████████████▉    | 15.5M/17.3M [00:24<00:02, 632kB/s]
 90%|██████████████████████████████████▎   | 15.6M/17.3M [00:24<00:02, 722kB/s]
 91%|██████████████████████████████████▋   | 15.8M/17.3M [00:24<00:01, 843kB/s]
 92%|███████████████████████████████████   | 15.9M/17.3M [00:24<00:01, 900kB/s]
 93%|███████████████████████████████████▎  | 16.1M/17.3M [00:25<00:01, 847kB/s]
 93%|███████████████████████████████████▍  | 16.1M/17.3M [00:25<00:01, 754kB/s]
 94%|███████████████████████████████████▋  | 16.2M/17.3M [00:25<00:01, 707kB/s]
 94%|███████████████████████████████████▊  | 16.3M/17.3M [00:25<00:01, 650kB/s]
 95%|████████████████████████████████████  | 16.4M/17.3M [00:25<00:01, 610kB/s]
 96%|████████████████████████████████████▎ | 16.5M/17.3M [00:25<00:01, 676kB/s]
 96%|████████████████████████████████████▌ | 16.6M/17.3M [00:26<00:01, 628kB/s]
 97%|████████████████████████████████████▊ | 16.8M/17.3M [00:26<00:00, 749kB/s]
 98%|█████████████████████████████████████▏| 16.9M/17.3M [00:26<00:00, 773kB/s]
 99%|█████████████████████████████████████▍| 17.1M/17.3M [00:26<00:00, 821kB/s]
 99%|█████████████████████████████████████▋| 17.2M/17.3M [00:26<00:00, 761kB/s]
100%|█████████████████████████████████████▉| 17.2M/17.3M [00:26<00:00, 687kB/s]
  0%|                                              | 0.00/17.3M [00:00<?, ?B/s]
100%|█████████████████████████████████████| 17.3M/17.3M [00:00<00:00, 95.8GB/s]
downloading PocilloporaDamicornisSkin_GeneratedMat2.png

  0%|                                               | 0.00/120k [00:00<?, ?B/s]
 12%|████▌                                 | 14.3k/120k [00:00<00:01, 76.9kB/s]
 35%|█████████████▋                         | 42.0k/120k [00:00<00:00, 131kB/s]
 88%|███████████████████████████████████▏    | 105k/120k [00:00<00:00, 251kB/s]
  0%|                                               | 0.00/120k [00:00<?, ?B/s]
100%|████████████████████████████████████████| 120k/120k [00:00<00:00, 543MB/s]

Load the model#

Next, read the model data from the .obj file. Currently napari/vispy do not support reading material properties (.mtl files) nor separate texture and vertex indices (i.e. repeated vertices). Normal vectors read from the file are also ignored and re-calculated from the faces.

Notice reading .OBJ: material properties are ignored.

Load the textures#

This model comes with two textures: Texture_0 is generated from photogrammetry of the actual object, and GeneratedMat2 is a generated material to fill in parts of the model lacking photographic texture.

This is what the texture images look like in 2D:

fig, axs = plt.subplots(1, 2)
axs[0].set_title(f'Texture_0 {photo_texture.shape}')
axs[0].imshow(photo_texture)
axs[0].set_xticks((0, photo_texture.shape[1]), labels=(0.0, 1.0))
axs[0].set_yticks((0, photo_texture.shape[0]), labels=(0.0, 1.0))
axs[1].set_title(f'GeneratedMat2 {generated_texture.shape}')
axs[1].imshow(generated_texture)
axs[1].set_xticks((0, generated_texture.shape[1]), labels=(0.0, 1.0))
axs[1].set_yticks((0, generated_texture.shape[0]), labels=(0.0, 1.0))
fig.show()
Texture_0 (8192, 8192, 3), GeneratedMat2 (2048, 2048, 4)

Create the napari layers#

Next create two separate layers with the same mesh - once with each texture. In this example the texture coordinates happen to be the same for each texture, but this is not a strict requirement.

Add the layers to a viewer#

Finally, create the viewer and add the Surface layers. sphinx_gallery_thumbnail_number = 2

surface multi texture

Total running time of the script: (1 minutes 52.198 seconds)

Gallery generated by Sphinx-Gallery