Can i use the object's reflection value of imported to stl file in MATLAB?
2 views (last 30 days)
Show older comments
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.
- Is the reflection value of the objects set in Blender saved, when import as an STL file in matlab?
- 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-!
0 Comments
Answers (1)
Sarthak
on 16 May 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 Comments
Muhammad Kamran
on 23 Jun 2025
@Yoojung Moon, Have you solved this problem ? Kindly let me know, I am following the same question.
DGM
on 23 Jun 2025
Edited: DGM
on 21 Jul 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).
Is there a way to split the geometry and material data into separate files during export? I don't know.
FOOTNOTE:
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:
See Also
Categories
Find more on Image Segmentation and Analysis in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!