Texture transfer Windows - Mac Rhino (not...)

As a test, in Windows Rhino, I create a cube and plunk a texture on it via dragging and dropping an image file from a folder in my Dropbox onto a Rhino object. (why can’t you DnD textures like that on Mac??)  I have “Save support files in 3dm file” checked, I save the file.  If I re-open it later on a Windows Rhino, even if I have moved/deleted the original texture image, the texture still shows up, as it has been saved in the file.

However, opening the file on Mac, the cube comes in as gray, no texture to be seen.  I select the object, and in Properties>Material, neither Layer, nor Parent nor Object is checked.  I click Object, but the panel below is blank.  I click Layer and then back to Object and the panel shows up. “Texture” is already checked, with the path to the texture file, indicating that the object has had a texture applied. Obviously it’s the path from Windows, so it’s wrong for the Mac.  But the texture has been saved in the file!  It’s in there!  RhinoMac can’t find it.

OK, let’s go the other way – create a copy of the file on the Mac, go in and re-reference the textures from the Mac side so they show up, then save and quit.  Open the copied file in Windows or Mac and bingo! - the texture is there.  Delete the original image, it’s still there.  So the Mac is capable of saving the texture in the file – in fact, I don’t see any way to NOT have it do that – so why isn’t it capable of reading the texture already in the file that has been saved under Windows?

–Mitch

@marlin Something seriously wrong here with bitmap transfers between Windows and Mac Version…

Open the attached file with a picture frame - that also has an alpha channel map - on MacRhino. The image shows up correctly. Now, close that and open the same file on Windows. The image also shows up correctly. Now, with the file still open in Windows, without modifying the file, save it under a new name. Open the newly saved file in MacRhino. The surface is there, but the image is gone…

The file was originally created in Windows, so something got broken here.

–Mitch

PFTransMac.3dm (612.2 KB)

hey mitch,

i agree that this should be implemented prior to final release (or, at least the ability to drag/drop an image to a viewport which in turn triggers _PictureFrame …or something like that)

that said, i just came across an in between method that allows you to not navigate the file structure and bring in textures via drag/drop.

select object(s)–> properties> material> texture

you can drag&drop a file onto the ‘map file’ field and it will come into rhino… same goes for the other material files (environment, bump, etc.)

so, that’s pretty cool.

Anybody able to test this?

–Mitch

Still looking at this.

@marlin

A lot of the functionality described by @Helvetosaur is RDK stuff.

  • Andy

Hi Andy,

Including the textures being saved in the file? It does seem to work going from Mac to Windows (at least in my tests). That’s what I’m mostly concerned about, as I am handing out files with picture frames in them made on Windows and the images are not showing up on Mac; a normal texture applied to an object doesn’t show up either. For my class of half Macs, this is a bad situation…

Thanks, --Mitch

–Mitch

Some textures - specifically those attached to picture frames are saved in the file without the RDK.

well, it doesn’t work going mac to mac either… not entirely.

pictureFrame images will stay in the file with the Embed Bitmap option… textures (object->material) however, won’t transfer.
as far as i can gather…

i sorta got bit by this last night during a design meeting… i updated a few objects in the drawing with a new concrete & wood texture prior to heading out… put it in the dropbox and opened it on my laptop at the site… no textures :frowning:

but then again, i’m well aware i’m using beta software for my real work so-- whatever :smile:

OK, that’s bad - I did some tests here last week and the textures seemed to have been saved in the file and they did transfer to Windows. I assumed they were because there’s no place in MacRhino where you can actually specify that they should be saved. I only own one Mac, so I will have to try again tonight by creating a test file and then completely deleting the file off the Mac, then trying to re-open it from some other location.

This is critical because my students are going to be turning in textured models next week… 150 of them… more than half Mac. :cold_sweat:

–Mitch

what happens if you open this file:

material_test.3dm (390.9 KB)

it’s a single plane with a brick texture applied:

that aside, the .3dm is 390KB… the texture jpg is 98KB …if i draw the same plane without applying a texture then save, the .3dm is 41KB…

so judging off that, it seems as the jpg is in the .3dm somewhere… more than once even :wink:

(edit-- this amateur file size analysis of mine is misleading and it may be pointing at another weirdness with the current texture situation… if i make a new file, add an image, save it – the file size seems right… if i reopen, draw a line, save it… the file size grows a lot… reopen again, delete the line, save-- the file gets even bigger.

that doesn’t happen if there’s not textures involved in the equation.

it seems at this point, i’ll just keep doing my texturing on .3ds exports to sketchUp…

:confounded:

Here’s another thing to try (if you can for me):

In the same file: Leave the texture on the surface as before. Create a new layer and make it active. Re-import the same texture as a picture frame on that layer (embed=yes!). Turn the layer with the picture frame off, leave the layer with the original textured surface on. Save the file. Post it here…

Thanks,
–Mitch

it’s going to be a couple of hours but I’ll do it when I get back to a computer.

I did some more testing here and the following are my conclusions:

  1. Textures are NOT saved in the file in Mac Rhino (and there is no
    apparent option to do so). If you add one or more textures to
    objects, save and close the file, delete the texture files from the
    computer, then re-open the file in Mac or Win Rhino, the textures are absent.
    You get the little text on the surface indicating the missing path.

  2. Textures ARE saved in the file in Win Rhino - if you check the option
    to do so. If you add one or more textures to objects, save and
    close the file checking “Save textures”, delete the texture files from the
    computer, then re-open the file in Win Rhino, the textures are still there.

  3. Textures saved in a file on Win Rhino as in #2 above and then
    transferred to Mac will NOT show up
    .  The path shows up in the
    texture editor, but the texture doesn’t show on the object and there
    isn’t even the little line of text on the surface indicating the path to
    the missing texture.

  4. You can “force” textures to be saved in the file in either version
    by adding them manually to the bitmap table.
    This is a neat old
    trick I learned from either Andy or Jeff and it can be a lifesaver…

    For all textures applied to objects in the file, add a picture frame object
    (embed=yes!) with the same texture. Just put them any old way all on
    one layer that you can turn off, where they are or how they look doesn’t
    matter. Then save the file. If the external textures are deleted, Rhino
    will still find them in the internal bitmap table because they have the
    same name, and will use them.

#4 is the workaround I will be forced to tell my students to use.

I don’t know if you can confirm any of the conclusions above, if someone finds something different with other workarounds, I would be interest in hearing about them…

–Mitch

Mitch

4 - almost certainly Jeff. It adds them to the bitmap table which means that the display will find them, but probably not a renderer.

  • Andy

Dunno… Tested with both the Rhino render as well as Flamingo here and it seems to work…

–Mitch

that’s actually (sort of) the way I’m used to it working (in sketchup) though the implementation is different .

or-- in sketchup, you don’t have the option to link to textures such as the case with rhino. (with some of the render plugins, you can link to images so you don’t have to bring a bunch of hi-res files into the working file but that’s an exception to the rule)

once you bring in an image (similar to picture frame but it automatically embeds), you can then explode it into a texture which creates a .skm (sketchup material)… that .skm can be added to a library on your drive or only stay in the file you’re working on but either way, the .skm goes with the file where ever you send it to.

point being, it seems like rhino for mac has most of what’s needed in place (your workaround #4)… it’s just the UI side of things isn’t ‘right’ yet.

still didn’t make it to a computer but I’m now wondering what happens with a non-image based material… like- just setting a color and changing glossiness or transparency… iirc, that won’t go with the file and you couldn’t apply your workaround to it.
so what’s the current workaround for that scenario?

[edit]-- just checked some noted 2d exports in my email from the meeting the other night-- those are showing transparent objects (windows) which are non-image based materials…and they came through mac-to-mac… does that work going from mac to windows?

Hi Jeff,

Well, more testing and now I’m more or less done - unfortunately the results are not encouraging - especially on the Mac side…

So, first I wrote a quickie Python script that adds any external textures found to the bitmap table in the document - like the adding the picture frame trick, but you don’t actually have to add anything, just run the script. The script runs on both Mac and Windows Rhino.

In Windows Rhino, both Rhino and Flamingo renderers pick up the bitmap stored in the file even if the original texture file has been deleted. V-Ray does not, however - and I assume Brazil/Neon will be similar.

On the Mac side, although the textures show up in the rendered display even after deletion off the computer (proving they are stored in the bitmap table), neither Toucan nor Rhino renderers see them.

So @andy was mostly right, the exceptions being Rhino and Flamingo renderers running in Windows Rhino, which seem to have been programmed to check for missing textures there before giving up.

Oddly enough, when sending a file from the Mac to Windows with textures that have been embedded on the Mac side, the Rhino render in Windows does NOT find the texture - but Flamingo does… Bizarre.

Unfortunately, none of this solves my problem, in that next week 80-90 students (out of 155) working on Mac Rhino will turn in files with missing textures… Fortunately, we’re judging on the rendered images - the original file is mostly for checking how they set their renders up in case there is a question…

The whole system of saving/transporting textures is painful, but most painful is the incompatibility Windows/Mac… Something I have to deal with daily now.

–Mitch

Hello everyone… just download the newest rhino Mac WIP
I wonder if there is any changes now… does the “save texture” when doing “save as” works for transporting from rhino mac to rhino windows Or vise versa?