I know one way to make a y up cubemap to a z up cubemap, but it requires Ati's cubemap gen and some photoshop. It's also kind of slow. Is there a faster way to do this that I don't know about?
I would assume yes, but programs like UDK and max don't read cubemaps the same way Unity or Maya would. Plus, in UDK, you have to import and place each section of a cubmap manually.
I've used 3ds Max to do this, but you have to be really careful with UV offsets or else it adds seams along the edges.
Best way I found is to make a calibration cubemap, with text and names in it, in your origination app. Load it in your destination app to figure out the transforms you need to do. Then swap/flip the faces in Photoshop as needed. Something like this.
The cubemap face order is sometimes +X -X +Y -Y +Z -Z, which 3ds Max's Reflect/Refract map creates as RT, LF, UP, DN, BK, FR.
Yeah, I was thinking about the Max way too, but Like you said, I'm worried about seams. Not 100 percent sure how to UV the faces like that.
I'll see if I can make a Photoshop action out of this. I don't really have much scripting skills at the moment
Cubemap cross layout, mapped onto a cube in Max. Render to a six-bitmap cubemap by using a Reflect/Refract map in the Material Editor (how to) 3dsmax2010_cubemap-cross_on_a_cube.zip
Both ways allow you to edit the image layout to convert your input into the layout you want, either within the Material Editor or by tweaking the UVs.
The cool thing about setting it up in Max is you can layer a bunch of things together in 3D, because Reflect/Refract uses the POV from the point helper to render the scene, so whatever it sees is what you get.
Sorry for the late reply. School, DW5, and Minecraft have taken control of my time. I'll open these files ASAP and see what I can do. Thank you for you help
I have one more question: In the file with the cross layout, how did you get the UVs to perfectly fill up the space like that. I've tried doing this myself and I feel like I'm missing something simple.
I just use math for this, selecting the verts in the UV editor, and typing in the values.
For a vertical cross layout, on the U axis the seam vertices are at 0, .333, .666, 1. For the V axis, the seams are at 0, .25, .5, .75, 1.
The problem though is that a cross layout will create MIP seams, because you can't prevent it from sampling the dead pixels from the empty space around it.
Better to use a DDS cube in a FX shader... no MIP seams.
The best way to convert from Y-up to Z-up is to rename the files yourself, and use an image editor of some kind to rotate/flip as needed. Rendering in Max requires the program to resample everything, which often creates seams.
Many thanks. And yeah, after much trial and error, I've found that flipping individual face in Photoshop gets me better results. I've even created a few guide files to help me out. Going to try and perfect this so I can make actions for it, so converting a Y-Up vertical cross to a Z-Up horizontal cross will be a breeze in the future.
Replies
Isn't this mainly an code related implementation how you choose to rotate the cube map?
Best way I found is to make a calibration cubemap, with text and names in it, in your origination app. Load it in your destination app to figure out the transforms you need to do. Then swap/flip the faces in Photoshop as needed. Something like this.
The cubemap face order is sometimes +X -X +Y -Y +Z -Z, which 3ds Max's Reflect/Refract map creates as RT, LF, UP, DN, BK, FR.
Some stuff here http://wiki.polycount.com/CubeMap#Photoshop
I'll see if I can make a Photoshop action out of this. I don't really have much scripting skills at the moment
Side note: are you the one who started this website? If so, I'm in your debt.
Cubemap cross layout, mapped onto a cube in Max. Render to a six-bitmap cubemap by using a Reflect/Refract map in the Material Editor (how to)
3dsmax2010_cubemap-cross_on_a_cube.zip
Cubemap six-bitmap layout, mapped onto a cube in Max. Render the same way.
3dsmax2010_cubemap-faces_on_a_cube.zip
Both ways allow you to edit the image layout to convert your input into the layout you want, either within the Material Editor or by tweaking the UVs.
The cool thing about setting it up in Max is you can layer a bunch of things together in 3D, because Reflect/Refract uses the POV from the point helper to render the scene, so whatever it sees is what you get.
If it doesn't make sense, ask...
For a vertical cross layout, on the U axis the seam vertices are at 0, .333, .666, 1. For the V axis, the seams are at 0, .25, .5, .75, 1.
The problem though is that a cross layout will create MIP seams, because you can't prevent it from sampling the dead pixels from the empty space around it.
Better to use a DDS cube in a FX shader... no MIP seams.
Thanks again for everything.