[Plugin] Slender - Baking textures in Sketchup with Blender
-
I just started developing this plugin. The most importent question at this stage is whether it's worth developing having Unity etc. around.
Note: I've been away for some time, so please move this topic, if it's in the wrong place.
Please also note I'm not a professional programmer, any help cleaning up the code is appreciated.Info
- Description: Exports SketchUp model do Collada file, in command-line mode imports into Blender scene, bakes textures, exports Collada file from and finally imports to SketchUp
- System: Windows 10 64-bit
- SketchUp version: 2017
- Blender version: 2.78c
Installation and running:
-
Download and install latest Blender https://www.blender.org/download
-
Download attached zip file and decompress it anywhere
-
Open slender.skp file in SketchUp (any file will do, but this one is fail-safe, check: issues)
-
Load slender.rb (with correct path) in SketchUp console
Functionality (all files are saved in plugin's folder): -
slender.rb:
- exports model to slender.dae file with materials
- updates slender.log file
- exports sun direction to slender.sun file
- runs slender.bat
- waits for Blender to finish (reading log file) or stop in 30s
- imports slender.dae
- slender.bat:
- opens slender.blend scene (with enviroment lighting set up) in command-line Blender
-
imports slender.dae file
-
imports sun direction from slender.sun file and rotates the sun
-
creates new UV layers with blank images
-
bakes full render to textures
-
creates new materials using baked textures and UV layers
-
exports and overwrites slender.dae
-
overwrites slender.log file
Issues to fix or add: -
SketchUp:
-
textures on both sides of faces cause z-fighting issue
-
no textures cause Blender error -
multiple component instances cause no texture issue -
Blender:
-
add plugin menu/buttons
-
add support for sun -
add shadows on/off detection
-
add support for various types of materials
-
add support for Cycles engine (GPU)
-
I haven't downloaded the file, but the idea is to have this plugin baking Ambient Occlusion into sketchup textures?
I really like the idea of sending the model to Blender, doing something automatically there and reloading it back into Sketchup with the added effect.
I'll love see how this develops.
-
Yes and no, the idea is to bake rendered scene in Blender and bring it back to SU.
I started with simple Environment Lighting (not exactly Ambient occlusion), but I plan on baking realistic sun shadows and possibly all kinds of lighting and materials (except live reflections and caustics). What I posted is just a couple days of work, re-learning Ruby and catching up on new SU API plus learning Blender and Python (amazing progress, I think the last time I looked at it was ca 10 years ago).
I just wonder if Unity or Unreal (haven't used them yet) are easy enough to make such plugin obsolete.
-
@qpik said:
Yes and no, the idea is to bake rendered scene in Blender and bring it back to SU.
I started with simple Environment Lighting (not exactly Ambient occlusion), but I plan on baking realistic sun shadows and possibly all kinds of lighting and materials (except live reflections and caustics). What I posted is just a couple days of work, re-learning Ruby and catching up on new SU API plus learning Blender and Python (amazing progress, I think the last time I looked at it was ca 10 years ago).
I just wonder if Unity or Unreal (haven't used them yet) are easy enough to make such plugin obsolete.
I've been investigating Unity and Unreal latelly from time to time.
What it seems to me is that Blender is capable of exporting 3d objects but the same is not happening with render engines.
You can have a baked lighting model inside Unity and Unreal for a great experience, but it would be very nice to have a baked lighting model inside Sketchup and use that in Layout for instance.
We have Lightup which is capable of a texture atlas and I believe it also can bake light in the model. However, Cycles is much more realistic.
There is also a plugin called BlendUp which seamlessly exports from SU to Blender and it does it very well. It doesn't bring back the model to SU though that can probably be done easily enough (I was never able to bring back a textured model myself...)
-
@jql said:
You can have a baked lighting model inside Unity and Unreal for a great experience, but it would be very nice to have a baked lighting model inside Sketchup and use that in Layout for instance.,
I guess it's worth a shot then.
@jql said:
We have Lightup which is capable of a texture atlas and I believe it also can bake light in the model. However, Cycles is much more realistic.
I've been using LightUp some time ago, but I also found it not realistic enough and the lightmap wasn;t actually baked into the SU model.
@jql said:
There is also a plugin called BlendUp which seamlessly exports from SU to Blender and it does it very well. It doesn't bring back the model to SU though that can probably be done easily enough (I was never able to bring back a textured model myself...)
I read about it but haven't tried. I always had the idea of Blender as this old, unfriendly Linux program and always used Kerkythea export. Cycles GPU was the thing that drew me to Blender now.
I added sun export/render.
-
So tell me one thing. Slender exports to blender does it all by itself and imports it back baked?
That is very cool.
I wonder if it is compatible with Thea for Blender.
-
@jql said:
So tell me one thing. Slender exports to blender does it all by itself and imports it back baked?
Exactly.
@jql said:
I wonder if it is compatible with Thea for Blender.
If only it can bake textures then I'd say yes. The plugin uses existing importers/exporters, so its main purpose is to automate unwrapping meshes and creating materials.
-
And how will you make the material assignement?
Material code names? Like Glass, Metal, Wood and the likes? Or you won't get into material properties?
-
@jql said:
And how will you make the material assignement?
Material code names? Like Glass, Metal, Wood and the likes? Or you won't get into material properties?
I don't know yet, maybe. Or a class for managing materials in SU and exported to COLLADA. Probably the first solution would be easier to extend with external material libraries.
Specularity/bump etc. are worth supporting but reflections/refraction can't be really baked, so its no use going too much into detail.
-
Well, I think it'll be nice if you pull it off. I wish you good luck and I'm following the thread.
-
@jql said:
Well, I think it'll be nice if you pull it off. I wish you good luck and I'm following the thread.
+1
Ciao,
Gio -
Hi qpik, this will definetely be a useful plugin and worth developing i believe.
Couple of things to note; i didn't know how to load a plugin via SU Console (assuming you meant Ruby Console?) and i found out i needed to type this with inverted commas: Load 'slender.rb'
You may consider to add info considering newbies to plugin world like me even at this stage to be able to test.@qpik said:
@jql said:
So tell me one thing. Slender exports to blender does it all by itself and imports it back baked?
Exactly.
That just didn't work for me.
I opened your file and run the plugin via Ruby console and received the 'true' result but there is no COLLADA (.dae) file in the folder (there are textures exported though). And seems nothing happened.
Am i doing something wrong? If you could demonstrate with .gif or video, that would be great. -
Have you unpacked the whole 'slender' folder from the zip file?
Do you have blender installed? Maybe the installation path is different than mine (C:\Program Files\Blender Foundation\Blender\blender.exe), check slender.bat in the 'slender' folder.
In sketchup open Ruby Console and typeload 'C;/../../slender/slender.rb'
with the actual path.
-
@qpik said:
Have you unpacked the whole 'slender' folder from the zip file?
Do you have blender installed? Maybe the installation path is different than mine (C:\Program Files\Blender Foundation\Blender\blender.exe), check slender.bat in the 'slender' folder.
In sketchup open Ruby Console and typeload 'C;/../..slender/slender.rb'
with the actual path.
Yes, unpacked, have Blender (2.78c) on default location.
But i found out that .dae and .log files are in my default plugin location (...\AppData\Roaming\SketchUp\SketchUp 2017\SketchUp\Plugins). So appearently my problem was copying 'slender.rb' file to that location in order to make the command (load 'slender.rb') work.Now i tried your new code line with my path and it did some CMD stuff and received 'true' result on Ruby Console. But seems there is no imported result in SU. I tried importing that 'overwritten' .dae file but they seem identical. What should i expect at this point? Is it going to import baked result to side of the original model (as you show in first post)?
-
@filibis said:
What should i expect at this point? Is it going to import baked result to side of the original model (as you show in first post)?
The result should be the same as after importing COLLADA, a model ready to be placed in SU, but with shadows baked.
If you addpause
at the end of slender.bat you should be able to see any blender errors.
-
Well, i got home and i tried on my laptop, it worked like a charm!
I will see tomorrow what causes problem in the office computer (only difference is that's Windows 7 64-bit).
Then i created my own scene, it worked pretty well too.
Except when i tried to experiment with some interior scenes. See attachment for faulty result. It's completely dark inside (with some light artifacts).
-
Simple triangulation issue in slender.rb (you should see HOLES NOT SUPPORTED in Blender console).
triangulated_faces => true
Fixed and reuploaded whole package. Result:
baked_result_comparison_v2013_qpik.skp
After tweaking slender.blend scene (Environment Lighting Raytrace -> Approximate) which you can try with your own settings:
baked_result_comparison_v2013_qpik_1.skp -
Hmm, i see now better.
So, can we say it's not that suitable for interior stuff? Or is it possible to add other light types in addition to sun into baking process? -
@filibis said:
Hmm, i see now better.
So, can we say it's not that suitable for interior stuff? Or is it possible to add other light types in addition to sun into baking process?It's all a matter of translating objects from SU to Blender, then everything is possible.
-
qpik, you're using cycles or is this blender internal?
Advertisement