threepipe
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GLTFKHRMaterialVariantsPlugin.md 1.7KB

1 jaar geleden
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. ---
  2. prev:
  3. text: 'ThreeFirstPersonControlsPlugin'
  4. link: './ThreeFirstPersonControlsPlugin'
  5. next:
  6. text: 'Rhino3dmLoadPlugin'
  7. link: './Rhino3dmLoadPlugin'
  8. ---
  9. # GLTFKHRMaterialVariantsPlugin
  10. [//]: # (todo: image)
  11. [Example](https://threepipe.org/examples/#gltf-khr-material-variants-plugin/) —
  12. [Source Code](https://github.com/repalash/threepipe/blob/master/src/plugins/extras/GLTFKHRMaterialVariantsPlugin.ts) —
  13. [API Reference](https://threepipe.org/docs/classes/GLTFKHRMaterialVariantsPlugin.html)
  14. GLTFKHRMaterialVariantsPlugin adds support for importing and exporting glTF models with the `KHR_materials_variants` extension to load the model with different material variants/combinations. It also provides API and UI to change the current material variant.
  15. The plugin automatically adds support for the extension when added to the viewer.
  16. The materials are stored in `object.userData._variantMaterials` and are automatically loaded and saved when using the `GLTFLoader`.
  17. Sample Usage
  18. ```typescript
  19. import {ThreeViewer, GLTFKHRMaterialVariantsPlugin, Mesh2} from 'threepipe'
  20. const viewer = new ThreeViewer({...})
  21. const variantsPlugin = viewer.addPluginSync(GLTFKHRMaterialVariantsPlugin)
  22. // load some model
  23. await viewer.load(model_url)
  24. // list of all variants in the model (names and objects)
  25. console.log(variantsPlugin.variants)
  26. // change the selected variant
  27. variantsPlugin.selectedVariant = 'beach'
  28. ```
  29. ## Links
  30. - https://www.khronos.org/blog/blender-gltf-i-o-support-for-gltf-pbr-material-extensions
  31. - https://www.khronos.org/blog/streamlining-3d-commerce-with-material-variant-support-in-gltf-assets
  32. - https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_variants/README.md