Export or save detailed textures from UV

I have been following Blender tutorials with great interest, in particular those referring to the production of rotating globes with a climate textured surface. I have extended these to other textures (countries, gravity, anomalies etc) and all work well within the Blender context, but when they are exported to any file format (dae, abc,3ds, fbx, ply, obj, x3d, stl, raw) they lose their textured surface. They can be saved in png format and then loaded into an android app which can scan forwards or backwards via timer or touch/move strokes, but this is limited to only the png files which have been saved. It would be helpful if they could be saved/exported to an independent file format which includes texture and coordinate information, and then manipulated independently with the touch/move facilities within android using all three degrees of freedom, as can be done within Blender.

I don’t know if this is too specialized a requirement of Blender, or if it is generally used and I am missing the references.

I look forward to reading any advice or suggestions you can offer.

Regards

Definitely a highly specialised process and not likely to occur with any normal exporter, from any software.
I come from Lightwave and have used several other 3D packages and they all have their own method for texturing, which never translates well. Even when UV’d, the mapping procedure varies from product to product. So taking the mesh then re-applying the images via the respective procedure can’t be avoided.

Technically, I suppose someone could write an add-on which did this, assuming the details of how to code the material setup in the target software exists. Even then, it would be a question of whether it was worth the effort in terms of how often it would be required and by how many people.

Thank you for your reply colkai.

I suppose this is a more artists’ community and my enquiry may be more technical (scientific, even).

If it’s not required here by others, I’ll try elsewhere.

Regards

There is a coding section to the forums, but not sure if it would be better asking in the forums for the target app, in case someone has tried this before.

Hi Colkai

Thanks for the reply.

Where within the forum should I ask about target app, and how should this be phrased? The android app that I would like to use is my own design, but I could modify it to make it compatible with the file(s) produced. I just need the file(s) to contain high resolution texture (pixel colour) info and coordinate info, just as blender must use to manipulate the 3D View on screen, with multiple degrees of freedom.

I’ll look at the coding section; I didn’t know it existed…

Regards
Peter Turner

Not sure which sub-section you should use, the mods will move it to where they think if they feel it’s not in the right place. Yeah, there’s a whole section dedicated to coding, very handy when you want to dabble with building your own scripts and addons.

Hi Colkai

There have been no replies in Coding/Beginning Blender Code and Development section after 2 days, and it’s not been moved by the mods. Should I change the phrasing or location of the question?

Regards
Peter Turner

If I understand you correctly, you wish to dynamically change the texture on the globe based on programmatic inputs from an app?

What you’re looking for is a shader you can change the paramters of within an app. You’re not going to find any DCC that can export that for you. You need your rendering target (the app on the device) to use whatever shader model it has to create this effect.

Some viable options: Unreal Engine 4, Godot, Unity, something that can take GLSL code?

You can use blender to create base textures or masks you wish to use, but to manipulate parameters to say, dynamically change the clouds in some sort of simulation you’ll have to use the shader model your render engine (app) supports.

Odds are, to get the real-time performance you want you’ll have to use several textures and manipulate how they’re mixed and their texture coordinates, exposing those controls as parameters to your code and user interface.

2 Likes

Could be simply no-one has an answer for you, as I say, it’s a specific task, so unless someone else is doing the same thing, it’s difficult to give an solid reply. Sometimes, as frustrating as it feels, it just happens that way. Though I think sirmaxim has pretty much the gist of it.

Thank you for your reply sirmaxim.

I’m not sure if I’ve explained what’s needed correctly. I have already created the texture on the globe by unwrapping a sphere in Edit Mode onto a map image in UV space, and then re-formed it back to a sphere in the shape of a globe with the required image on its surface. What I am now trying to do is to export or save that globe so that my own app can rotate the globe with three degrees of freedom (about all three xyz axes) outside Blender, just as Blender does within its own context.

If this is what you said in your reply, then I misunderstood you.

Regards
Peter Turner

Oh, you just want to rotate the mesh? You can do that many ways. Export as glTF, stl, or obj and you can use the likes of three.js, Unity, Godot 3, Kivy, or any number of things to accomplish that. You’ll need to make the textures work with whatever shader model, but if it supports glTF, that should be easy to do.

I want to rotate the globe in my own designed android app. I need to keep the exact texture of the globe map, but an exported file only contains colour information of each vertex, of which there are currently 2019 (and 2048 faces) which would produce a very low resolution texture image. Is there a way to export/save a file with the same image quality as Blender sees in its own context? Would I need to modify the number of vertices to a million in order to create a file of the correct resolution (1000 x 1000) which would require a massive file?

Regards
Peter Turner

This is what shaders are for. You need a shader that uses the UV map to put the textures on the faces.

Depending on the format you export with, vertex colors or uv map coordinates are stored within the file. It’s in your department what you are about to read out of the file and do with it, but each vertex has a uv coordinate assigned, as well as a vertex color if the exported mesh has them set and the file format allow for it. To have good looking textures, you need to design textures based on your target engine, not “for blender”. Keep the PPI of mobile displays in mind and set up your APP scene with specific metrics and the texel density requirements. You will have then set blenders metrics to follow your app to have a proper preview.

If your planet has a 1024 pixels wide texture wrapped “around”, it cannot have a 1:1 ratio if you see it on a 2190px landscape mode.

http://www.learnopengles.com/tag/vertex-shader/
http://glslsandbox.com/