Can i use the object's reflection value of imported to stl file in MATLAB?

2 vues (au cours des 30 derniers jours)
Yoojung Moon
Yoojung Moon le 8 Mai 2023
Modifié(e) : DGM le 21 Juil 2025
I was desined 3D indoor model using Blender, and i exported the model to STL file for using the design in MATLAB.
And i imported that file in MATLAB for ray tracing simualtion.
I've been looking at imported 3D models in MATLAB, and it seems that the model doesn't set each object's reflection value, but rather sets all objects' reflections to the deflalt value.
The 'reflection of objects' in simulation is very important to me.
So, I want to know answer about below questions.
  1. Is the reflection value of the objects set in Blender saved, when import as an STL file in matlab?
  2. if no way about question 1, is there any way, i can set the reflection value of each object in Matlab?
Thank you for your attention. Have a good day-!

Réponses (1)

Sarthak
Sarthak le 16 Mai 2023
Hi Yoojung,
STL(Standard Tessellation Language) contains only the geometry information of the model and no material or texture information. Instead of setting the reflection values of each object in MATLAB, I would recommend you to export the model with reflection values from Blender itself in a file format that does save material properties like FBX file format. You can then import this FBX file in MATLAB for your ray tracing simulation.
  3 commentaires
Muhammad Kamran
Muhammad Kamran le 23 Juin 2025
@Yoojung Moon, Have you solved this problem ? Kindly let me know, I am following the same question.
DGM
DGM le 23 Juin 2025
Modifié(e) : DGM le 21 Juil 2025
STL is still what STL is. A base STL contains no color, material, or scale information. There are encoders which will embed proprietary data in a binary STL, but most decoders won't read it. To be specific, the STL decoder used by MATLAB, and the STL decoders for MATLAB that are published on the FEX do not read any proprietary embedded data*.
Does Blender actually put anything in the STL other than the standard geometry data? I don't know for sure, but unless I see an example, I'm assuming no. Even if it did, you'd have to write a decoder for it -- or at least something to extract the nonstandard data (probably either in the header or the attribute bytes at the end of each triangle block).
FBX can be imported using this, but that's a different toolbox, and might not be helpful.
Is there a way to split the geometry and material data into separate files during export? I don't know.
FOOTNOTE:
After a more thorough review, I was wrong (well, more wrong than I expected).
FEX #6678, #13253, #29906, #36771, #41910 and the decoder from the IFIT toolbox can ostensibly read some proprietary embedded VisCAM color data, but this comes with the caveats:
  • Out of those six decoders, only #36771 decodes the color data correctly.
  • All of these decoders have problems with other aspects of functionality.
  • Reading VisCAM color probably doesn't solve the problem anyway.
The more egregious mistake is not knowing that the built-in stlread() can read this data. I missed it because I was expecting them to be described as "color", but it's not specific to VisCAM. It just reads the attribute bytes raw, so you'll have to figure out what's supposed to be packed in each 16b word.
FWIW, I added an example at the end of this answer:

Connectez-vous pour commenter.

Catégories

En savoir plus sur Image Segmentation and Analysis dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by