Texture mapping with HiFi .fbx files


In the last few months I’ve had problems with texture mapping when importing .fbx files made with Blender.

Some of them have seemed to have solved themselves but they usually have one thing in common.

I make something in Blender. Import it into HiFi, and the mapping of the texture is very different than it renders in HiFi.

Example one. Blender render of a model (yes I know it is a crappy texture):

Example two. FBX Review:

Example three: HiFi import snapshot:

Same model/file… etc.

Because of this and issues with avatars and AC scripts, I guess what I’d really like to know is if I am wasting my time using Blender here in HiFi for now?.. If HiFi is only going to support Maya until after March or May… It would be nice to know.

And although we were told that some kind of post would be made detailing importing of translucent, shiny and bump mapped textures (as in physics rendering) I’ve seen nothing and only Judas has seemed to be able to get some stuff like that working here.

And same goes for AC scripts. Sound, avatar/bot/etc. recordings and domain/AC/entity script loading seems to have all broken with no notice or work around from HiFi.

Or is it just me?

Oh… and while I’ve got my tinfoil hat on, I think that some here might be miffed if DDE, LeapMotion and FaceShift support, Polyvoxels and other stuff show up in other (unmentionable) VW places before they end up back here in HiFi.

And yes, I regret every post I make but…


Good question
Ask piper he both single handedly fixed the avatar and is a close personal friend of stanly kubrick
He’s ur man :slight_smile:


The Blender support is there, most of the issue are actually just related to the export process (and mostly just avatars, and that also has already been solved, but entities have for quite a long time worked out of box). I can attest to that as I’ve already imported quite a few models in.

Here is a couple of pointers:

Make sure the models all have UV maps defined. You can’t use the world generated UV coordinates.

When exporting, you have to keep the relative tree to the textures same from the exported models.

Alternatively, rather than linking directly to the model, you can define a .fst file (may change in the future to json) to package the model and the textures, so that you may dump all the related textures to a single texture directory. As long as your naming is meticulous. .

Here is an example packaged file you can rez that has been made in Blender, and contains Normal, Specular and Albedo Diffuse maps. No linking of Roughness unfortunately because we do not have that capability yet.



Googles the difference between Albedo texture and diffuse texture

then regrets it
ignorance is a great thing


Yeah the “Albedo” in this case is exported from Quixel as is with UE4 settings, but applied to as Diffuse on the model (which is odd because Albedo is actually reflectance, even in UE4…). Specular is an inverted and tightened version of roughness from Quixel. This because you can only map Normal, Specular, Emit and Diffuse when you export from blender.
Corrected the post to say Diffuse instead to clear up confusion.


Nice torch btw… so are you packaging all your models with the viewer? oh lod models.
Do they work in world I know the old ron avatar used them but I never could see them change on it so never bothered to try.


They do not seem to apply for anything else but avatars as of this moment, but I hope they implement at it at somepoint. I try to make every model optimized as much as possible through LOD and compress the textures as small as I can without losing too much detail. This is especially important if they want the HMD’s to run properly in the environments without excessively losing detail.


love it
All we need now is a set of animations


Was planning to experiment with adding particles next for it :slight_smile:


Sorry to bump this thing up to the top again but I have to try to close it out, hide head in shame and thank @Judas and @Menithal for showing me that I suck at blender.

I could have sworn that what I was trying to do worked before but even if it did… it works now… so… never mind… don’t mind me… like I’ve said… I regret every post I make.

And as soon as I get around to testing it I will probably be doing the same for my last script post. But that is a bit different because they did used (ugh… probably should be edited to “use to”) to work here… I guess I did not notice the changes that were made to entity .js api.