Yes the principled shader is certainly the way to go.. It's becoming the default "all-in-one" shader in 2.80, and works in both eevee and cycles. I added it already to the exporter, and all that would be needed to extend would be a) detect if an object has a texture, b) create corresponding blender textures, c) bind them to the principled material
There might be some mapping issues between freecad and blender, though
It's really time to host that exporter to a better place than that gist...
Texturing Architectural Objects
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: Texturing Architectural Objects
i have created a github repository for the importer plugin:
https://github.com/s-light/io_import_fcstd
and already started to 'split up' the code, so it is easier readable / understandable -
or at least that is my hope
i created a feature-request for this:
https://github.com/s-light/io_import_fcstd/issues/1
if someone has more info how to do it please add it there
(i did not try the WB myself yet..)
sunny greetings
stefan
https://github.com/s-light/io_import_fcstd
and already started to 'split up' the code, so it is easier readable / understandable -
or at least that is my hope
i created a feature-request for this:
https://github.com/s-light/io_import_fcstd/issues/1
if someone has more info how to do it please add it there
(i did not try the WB myself yet..)
sunny greetings
stefan
Re: Texturing Architectural Objects
Great job @s-light! I am delighted if someone would help carrying and maintaining this importer further.
I want to start working on an exporter too, that would produce Shape-based geometry right from the blender meshes... I think that could be very useful
I want to start working on an exporter too, that would produce Shape-based geometry right from the blender meshes... I think that could be very useful
Re: Texturing Architectural Objects
thanks yorik i will do my best
would you mind take a look at my questions regarding 'missing body objects with external scripts' at
https://forum.freecadweb.org/viewtopic. ... 34#p338634 ?
i made good progress with the 'App::Part' and 'Array' things and will write about it tomorrow in that thread...
regarding the exporter - i like the idea - what about doing it as importer in FreeCAD?
this way you do not need to write to some not visible files... → only read from external..
let us continue this in the other thread so we do not 'spam' this topic here to much..
on topic:
if anyone has or can create a simple example FreeCAD file with the Texturing thing
and some explanations what is expected so i can test and experiment with this would be great!
post it here or add it to the repository with a pull request
sunny greetings
stefan
would you mind take a look at my questions regarding 'missing body objects with external scripts' at
https://forum.freecadweb.org/viewtopic. ... 34#p338634 ?
i made good progress with the 'App::Part' and 'Array' things and will write about it tomorrow in that thread...
regarding the exporter - i like the idea - what about doing it as importer in FreeCAD?
this way you do not need to write to some not visible files... → only read from external..
let us continue this in the other thread so we do not 'spam' this topic here to much..
on topic:
if anyone has or can create a simple example FreeCAD file with the Texturing thing
and some explanations what is expected so i can test and experiment with this would be great!
post it here or add it to the repository with a pull request
sunny greetings
stefan
Re: Texturing Architectural Objects
Observations on Arch Textures in FC 0.19:
First: Big Ups for latest FC version. seems much more stable than three weeks ago version...
Also I'm liking the ArchTexturesWB tools - easy to use.
However a few points on ArchTexture WB tools.
1.
It seems you need to allocate a new ArchMaterial to each instance of ArchTexture required.
This is a bit different to the help (https://github.com/furti/FreeCAD-ArchTextures), which suggests one material can be allocated to many textures (which makes sence).
However, doing this made my model crash.
This is perhaps because in my model there are a lot of separate (unconnected) walls etc, whilst in the Help it looks like the very few walls are based on a polyline - perhaps...?
This may be a bug that just hasn't manifested in tests with a few simple continuous walls. I am interested in others experiences.
2.
When you allocate material and Texture, a TextureConfig Object appears at the bottom of the Tree.
So far so normal.
But the TextureObject is not referenced in the Properties of the structure which has had a Texture added (ie a wall), and I cant Drag-and-drop it as a Child into the Structure in question (ie into the wall parent). (i tried groups, parts etc - It just wont go)
I assume this is something to do with the preceding discussion threads (which I tried but failed to follow).
However it means a lot of random Texture objects sitting in the lost objects graveyard at the end of the tree.
As a temp solution would it not be possible to be able to drag it up and have it sit as a child of the relevant structure (wall, roof etc) - a bit like a CutVolume does?
That at least would be consistent with the usual heirarchy (even if it wasn't active).
3.
I tried exporting the .IFC model (with Textures) into Blender and BimVision.
Unfortunately, neither application wants to acknowledge my beautiful brick and tile-work!!
which brings me to a general question: is this because IFC's don' t have texture info, or is it because the texture info needs to be allocated to a specific IFC-related property attribute location? The online discussion is uninformative on this point except for learning that there may be an ifc attribute called IFCSURFACESTYLEWITHTEXTURES.
(On this, I noticed that in Properties / IFC / IfcType; if I select BuildingStories for my Floor levels, then the exported .IFC when opened in BimVision will recognise my FreeCAD Levels and be able to separate them spatially - on demand.
Is it the same with textures? If you allocate them to the correct .IFC Attribute location will they display in an texture-enabled IFC reader?
cheers,
OS: Windows 8.1 (6.3)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22960 (Git)
Build type: Release
Branch: master
Hash: c5a4b01d2e4218bcc0eb6650337650a6c65ef0e4
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United Kingdom (en_GB)
First: Big Ups for latest FC version. seems much more stable than three weeks ago version...
Also I'm liking the ArchTexturesWB tools - easy to use.
However a few points on ArchTexture WB tools.
1.
It seems you need to allocate a new ArchMaterial to each instance of ArchTexture required.
This is a bit different to the help (https://github.com/furti/FreeCAD-ArchTextures), which suggests one material can be allocated to many textures (which makes sence).
However, doing this made my model crash.
This is perhaps because in my model there are a lot of separate (unconnected) walls etc, whilst in the Help it looks like the very few walls are based on a polyline - perhaps...?
This may be a bug that just hasn't manifested in tests with a few simple continuous walls. I am interested in others experiences.
2.
When you allocate material and Texture, a TextureConfig Object appears at the bottom of the Tree.
So far so normal.
But the TextureObject is not referenced in the Properties of the structure which has had a Texture added (ie a wall), and I cant Drag-and-drop it as a Child into the Structure in question (ie into the wall parent). (i tried groups, parts etc - It just wont go)
I assume this is something to do with the preceding discussion threads (which I tried but failed to follow).
However it means a lot of random Texture objects sitting in the lost objects graveyard at the end of the tree.
As a temp solution would it not be possible to be able to drag it up and have it sit as a child of the relevant structure (wall, roof etc) - a bit like a CutVolume does?
That at least would be consistent with the usual heirarchy (even if it wasn't active).
3.
I tried exporting the .IFC model (with Textures) into Blender and BimVision.
Unfortunately, neither application wants to acknowledge my beautiful brick and tile-work!!
which brings me to a general question: is this because IFC's don' t have texture info, or is it because the texture info needs to be allocated to a specific IFC-related property attribute location? The online discussion is uninformative on this point except for learning that there may be an ifc attribute called IFCSURFACESTYLEWITHTEXTURES.
(On this, I noticed that in Properties / IFC / IfcType; if I select BuildingStories for my Floor levels, then the exported .IFC when opened in BimVision will recognise my FreeCAD Levels and be able to separate them spatially - on demand.
Is it the same with textures? If you allocate them to the correct .IFC Attribute location will they display in an texture-enabled IFC reader?
cheers,
OS: Windows 8.1 (6.3)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22960 (Git)
Build type: Release
Branch: master
Hash: c5a4b01d2e4218bcc0eb6650337650a6c65ef0e4
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United Kingdom (en_GB)
Re: Texturing Architectural Objects
@furti develop this as Add-on but seems not have development recently.
Maybe someone can help developing, fixing bug, adding features ?
Maybe someone can help developing, fixing bug, adding features ?