Header image

Using Textures in Mineways

If you want to make your own terrain file(s) from some resource pack, start here.

You can apply resource packs that modders have developed to models you export from Mineways. To select a terrain file, use "Open | Choose Terrain File" or "Open Terrain File" and pick a PNG of the form "terrainExt_*.png". Read more about this program feature (and how to set a default terrain file on startup) here.

Pre-Built Terrain Files

The larger Mineways download comes with the following five terrain files, plus one physically based terrain file set. The physically based material renderings were done with the free Omniverse USD Composer program.

Here are some of the terrain file sets downloadable (with permission from their creators) for use with Mineways, displayed with G3D. Note that some tiles in these resource packs may be missing or distorted in the terrainExt*.png files that come with Mineways, due to differing naming conventions and texture layouts.

Click on an image for the larger version.

default textures Default Minecraft textures  View on Sketchfab

Two physically based material terrain file sets are also included: JG-RTX and LunaHD.

JG RTX

Provided at two resolutions. Released under Creative Commons. The version with Mineways is the core resource pack. I have a few shots using it here.

Here's an example of the core pack, rendered using the free Omniverse USD Composer program:

JG RTX

LunaHD

The LunaHD developer provides this free low-res 32x32 version his work. With his permission, we made this terrain file set. When used with USDA export, I recommend turning off the "Custom Material" setting (having this setting on gives the default blocky Minecraft look). See the LunaHD site for details on getting higher resolution versions of these textures, which can then be used within Mineways by substituting them into the USDA output textures directory, or by making your own terrainExt set of files.

Some of LunaHD shown alongside some unmodified classic Minecraft textures:

LunaHD

Additional Terrain File Downloads

So as to not bloat the Mineways distribution too much, we've put more pre-made terrain files on our site for download. These currently include special purpose default terrain files, and potentially other resource packs converted to Mineways terrain files. Download, unzip if needed, and put the files into the same directory as your mineways.exe program.

Specialized files (you will need to right click and select "Save link as..."): The terrainExt1024.png and terrainExt8192.png files can be used to make the default Minecraft textures look sharp and pixel-like, in renderer that do not support "nearest neighbor" filtering. See here for more information. If you don't know what I'm talking about, you likely don't need these.

Introduction to Terrain Files

Don't like reading? Here's a video showing how to most easily use ChannelMixer and TileMaker to make your own terrain file(s) and how to then use it.

Mineways relies on a single, giant texture (the "terrain file") that contains all the block face textures ("tiles"). This single "terrain file" image has roots in the early design of Minecraft itself, which used to use the same exact single texture. Minecraft now uses a separate texture tile for each block face; Mineways has kept with the single, giant texture of doom for input, but can output separate textures by using the "Export individual textures" option.

This terrain file that Mineways reads has some advantages, such as being a single PNG image vs. a giant set of individual texture images. By looking at one image, and knowing where to look, you can see all the textures Mineways will use. (Where to look? Here. All the tiles are listed by their column and row positions, e.g., gravel is at column 3, row 1 of the terrain image, starting counting from the upper left as 0,0.)

Making Your Own Terrain Files

Making your own terrain file for Mineways takes only a few steps. You do have to know how to use the command line, but that's not hard. Knowing how to create a batch file is also useful and easy enough. A batch file can store and rerun your commands to Mineways' tools.

All set? Watch the video for the process or follow the instructions below.

There are two ways to make a terrainExt image file of your own. One is to use just TileMaker. To start, unzip your resource pack into the Mineways "TileMaker" directory into a subdirectory, let's call it resource_pack_directory. Then, in a command window, go to the Mineways TileMaker subdirectory, then run TileMaker.exe itself:

cd c:\...wherever you put mineways...\mineways\TileMaker
TileMaker.exe -d resource_pack_directory -o terrainExtYours.png
Running TileMaker produces a terrainExtYours.png terrain file, which you can then use in Mineways. The program looks for terrainBase.png being in the same directory you are running from. If it's missing, you can copy the terrainExt.png from the directory above TileMaker's to this directory and rename it terrainBase.png (terrainBase.png and terrainExt.png are the same file).

However, you'll often get warnings about textures or you'll want to check things over and modify them before making your terrainExtYours.png file. To do this, use ChannelMixer, which copies all the images from your resource pack into a directory for processing, check over that directory's contents, then use TileMaker to read that directory and make your terrainExt image file.

As before, unzip your resource pack into some directory under the TileMaker directory, then in the TileMaker directory run:

ChannelMixer.exe -i resource_pack_directory -o blocks_of_yours
TileMaker.exe -d blocks_of_yours -o terrainExtYours.png
That's it! Read over any warnings and decide how you want to fix them. For example, if ChannelMixer says it's not using a texture you think it should, look for that file in the resource_pack_directory and copy to your blocks_of_yours directory, which is created and filled by ChannelMixer.

What follows are more detailed instructions, in case these didn't make sense or didn't work for you.

The general flow is:

  1. Download and unzip a resource pack to some directory.
  2. Point the ChannelMixer program at this resource-pack directory for input, and some other directory for output (we'll call this the "block-and-chest directory"). ChannelMixer copies over the relevant files to the output directory.
  3. Point the TileMaker program at the newly-filled block-and-chest directory and give a name for the terrain file to be created.

Resource pack texture flow

Put your terrainExt image file wherever mineways.exe is located and start Mineways up. You then can load the terrainExt_yourNameHere.png file you've created by using "File -> Choose Terrain File". You can even make it the default terrain you always use when starting up Mineways, as explained here.

Why two separate processes? Because resource pack makers do all sorts of things, so along the way you may need to modify their input textures. ChannelMixer copies the textures Mineways cares about into a directory (and a "chests" subdirectory). For example, for basic Minecraft the block textures are found in "\assets\minecraft\textures\blocks" and chest textures in "\assets\minecraft\textures\entity\chest".

TileMaker then puts all these tiles into a single terrain file (or a set of terrain files, if physically based materials are supported by the resource pack). Each program may issue warnings or errors when run, which is where you come in. You can blithely ignore these messages, or you can look them over and take corrective actions, such as renaming, resizing, or otherwise modifying the resource pack's textures. I recommend the free paint.net program if you are just getting started, but any image manipulation tool you like is fine.

What TileMaker does by default is simple: it reads in the terrainBase.png file Mineways provides (or ../terrainExt.png, if terrainBase.png is not found), overlays it with any tiles in the "blocks" directory (replacing the originals), extracts the chests from the "chest" subdirectory, then writes out this new image as terrainExt.png. The "chest" subdirectory normally has three chest tiles, as available - ender.png, normal.png, and normal_double.png (or similar names) - to generate chest tiles.

Mineways' two tools work with both Minecraft Classic resource packs and with Minecraft Bedrock MCPack files. You can find resource packs on such sites as this NVIDIA RTX-related page, this LabPBR page, this PlanetMinecraft page, this CurseForge page, this MCPEDL page (and also this RTX search there), and this site. Or google around for way too many more. Best ones? Here's what PC Gamer thinks. Want to make your own PBR resource pack? This post gives some tools and steps for making normal maps, etc.

ChannelMixer

After downloading and unzipping whatever resource pack or MCPack you like, you then want to run ChannelMixer. As an example, I'll use the free (and quite nice) JG RTX resource pack as an example. IMPORTANT NOTE: JG-RTX has evolved considerably since writing the following; for the full set of commands to make it nowadays, see the file scripting/build_jgrtx_terrain_files.bat.

Go to the release page and look at the latest release listed. It will say "Assets" underneath. Click that to open the list, then download the zip:

downloading JG RTX

Unzip the jg-rtx-0.7.0-alpha.zip (or newer!) file somewhere, say "C:\temp" to keep it short and sweet. I'm using the 0.7.0-alpha version here as an example, since it shows off some common problems.

C:\Users\ehaines\Documents\_documents\Github\Mineways\docs\images

You should now see something like this:

unzipped JG RTX directory

Open a command window by using "CMD" in the Windows search window. Then type as follows:

cd c:\temp
C:\Users\ehaines\Documents\_documents\GitHub\Mineways\ChannelMixer\x64\Release\ChannelMixer.exe -i "jg-rtx-0.7.0-alpha" -o "jg-rtx-channelmixer"
The first line takes you to the c:\temp directory. The second line is insanely long, I know. The first part you'll have to modify - you're pointing at wherever your copy of ChannelMixer.exe is located. Which is wherever you unzipped Mineways, in the TileMaker directory. Much easier is to just copy everything in that directory - ChannelMixer.exe, TileMaker.exe, and terrainBase.png to your c:\temp directory. After doing that, this second line then becomes just:
cd c:\temp
ChannelMixer.exe -i "jg-rtx-0.7.0-alpha" -o "jg-rtx-channelmixer"
and will look like this when run:

running ChannelMixer

You will usually get a gajillion warnings. These are usually of two major types: "not recognized" and "DUP WARNING". You might take a look at "not recognized" files, as these are ones Mineways' tools will ignore and not use. If you see something you'd like to use, you'll have to find that file and rename it to a standard name. That code file I link to gives one or two standard names for each block tile, e.g., the top of the grass block is usually called "grass_block_top" or "grass_top". All other variants are ignored. That said, you can ignore "not recognized" unless you feel like digging in.

A duplicate file name warning is likely of more interest to you. What this means is that two tile images have been found that are for a specific block face. This happens for any number of reasons. Typically, as in this case, the creator has a number of variations of the same Minecraft block, and they save these all. It's up to you to decide which one you want. I usually do this by digging into the unzipped resource pack area, usually in the assets\blocks directory or below, and comparing the two files. Whichever one I don't want, I rename it, adding an "_IGNORE_" prefix to it. It will then give a "not recognized" warning, but the duplicate warning is then gone.

There is a defective duplicate file you can do this to in 0.7.0 (removed in 0.8.0). I've reported it here. In assets\blocks\dirt is a file "grass-tuft.png". This is yet another file name for "grass", and these alternate names are put in yet another part of the Mineways code as I encounter them. This particular file is defective, in that it is missing an alpha channel. The "grass-tuft.png" file in assets\blocks\grass_block is OK, though. So, the fix is to rename the one in assets\blocks\dirt to "_IGNORE_grass-tuft.png" and then rerun ChannelMixer again. Pro tip: if you use the up-arrow in the CMD window, you will bring up previous lines you've typed, so you can run them again.

One other warning that you'll sometimes see is "TGA WARNING: The file 'iron_trapdoor.tga' is a TGA file (and there may be no corresponding PNG). Please convert it to PNG, as TileMaker does not process TGA files." Use some image manipulation program to convert this Targa file to PNG format, using the same name and location. Now ChannelMixer and TileMaker will find the proper PNG file (though each program may still warn you about the TGA; you can delete or hide the TGA file if you like).

Once you're done messing with warnings (which you absolutely don't have to do, to start), ChannelMixer has created a directory in c:\temp called "jg-rtx-channelmixer" and copied over all the files it thinks will be useful. That's what the two command-line arguments did for you:

-i "jg-rtx-0.7.0-alpha"
says the input directory is "jg-rtx-0.7.0-alpha", and
-o "jg-rtx-channelmixer"
says the output directory is "jg-rtx-channelmixer".

TileMaker

Once you have a directory full of the textures you want to turn into a terrain file, the next step is to run TileMaker:

TileMaker.exe -d "jg-rtx-channelmixer" -o terrainExt_JG-RTX.png -t 256
TileMaker will take all the images ChannelMixer copied over and glue them up into one giant terrain file. It will also process chest images, turning them into (admittedly old-school) tiles. It will also attempt to make any missing tiles, either by copying tiles that do exist or manufacturing them (such as shulker boxes).

When you run TileMaker on JG-RTX 0.7.0-alpha, you will again get some warnings and errors:

running TileMixer

Most errors are not as dire as they sound. TileMaker is warning you that a few input textures are not a standard powers-of-two size, such as 16x16 or 256x256. In Mineways, all tiles it uses are the same size, and are powers of two (2 raised to some power: 2, 4, 8, 16, etc.). If you want to make these textures get used in Mineways, you need to resize them to be a power of two, such as 256x256. Note that all errors are repeated at the end of the run, in a group, as these are usually important to work on.

The warnings note that a few files appear to have no effect, so have been ignored. This is fairly common for physically based textures such as heightfields, where the creator made a heightfield texture but didn't modify it and add bumps.

The command line options mean the following:

-d "jg-rtx-channelmixer"
This is the input directory of textures created by ChannelMixer. The double apostrophes are needed if there are spaces in the directory's name, so are not critical here (but don't hurt).
-o terrainExt_JG-RTX.png
This is the output file name. Once TileMaker finishes, you should (barring any serious errors) have a terrainExt_JG-RTX.png file in your current directory that you can apply to your models exported from Mineways.
-t 256
This option says to force all textures to be 256x256 in size. This is an important option for high resolution textures, and you'll get a warning if you don't set it. TileMaker looks at all the incoming textures and finds the largest. A large input texture will cause all textures to be increased to that size. This can be a serious problem, as the resulting terrain PNG file will become so large that it will be unusable by programs such as Blender, or may simply crash TileMaker itself. The "-t 256" option says to force this resolution. If you truly want to use larger textures, you can try to do so (fingers crossed). Also, if you are exporting individual tiles from Mineways, each texture is put separately into a directory, so you can manually copy these larger resolution textures there.

With TileMaker you can also do time-saving tricks such as setting "-t 64" or "-t 32", making a much smaller terrain PNG texture that will look fine for previews. Using a smaller terrain file makes for much faster Mineways exports.

One last trick: you can use TileMaker to read multiple directories (block-and-chest or original resource pack, if you're daring) and soak up all the textures it finds for terrain file creation. So, for example, you might like the Fancy pack, but if Fancy is missing something, then you might be happy with VanillaPBR instead. This looks something like "TileMaker.exe -d FancyDir -d VanillaPBRDir -o terrainExt_MySuperPack.png". By importing both directories in the order of preference, TileMaker will pull in whatever it finds for Fancy, then fill in (and will not warn you of duplicates) with VanillaPBR.

There are other options for ChannelMixer and TileMaker, but these are the major ones. See the reference section at the end for all command-line options for each.

Physically Based Textures

"PBR" stands for "physically based rendering", a term meaning that the program rendering the image attempts to adhere to physical principles for materials. You can find many of these for Minecraft listed at this site. If you want to learn about rendering in general, there's even a free Oscar-winning book on the subject. In a Minecraft context, "PBR" in part means improving block materials by adding new textures and parameters that influence their appearance, such as bump, shine/roughness, and more.

If you run through the tutorial above and look at your c:\temp at this point, you should have terrainExt_JG-RTX.png, plus four other textures of the form terrainExt_JG-RTX_*.png, that is, each with a suffix. These additional terrain files contain physically based material information. If you look at these additional terrain file textures, you'll usually see just a few spots filled in. These represent the textures found in the resource pack.

Each suffix stands for a different type of additional texture:

These are the suffixes of files that TileMaker produces and that Mineways uses. When you select a terrain file in Mineways, if there is a corresponding "_n.png" terrain file (i.e., normals maps), then this terrain file will also be used when exporting models to the Wavefront OBJ and USDA formats. Sadly, this isn't terribly useful for Wavefront OBJ. For example, only a very few applications support having normal maps applied in an OBJ material file, as it's a non-standard extension of the ancient OBJ format. See this documentation for more information on the OBJ extensions added over the past decades. However, normal maps are useful for USDA export, as explained in the next section. In addition to normals, the emissive, metallic, and roughness terrain files are also used when exporting using USDA.

Applying these textures can give marvelous results, as shown earlier.

Mineways comes with this set of JG RTX textures at 64x64 and 256x256, massaged and cleaned up. Jason J. Gardner's JG RTX uses a non-commercial Creative Commons license. If you like it and use it, consider contributing to the charity he lists on his webpage, UNICEF (his idea inspired me to ask the same: if you like Mineways, consider giving a donation to GiveWell or whichever charity you prefer).

Mod makers over the years have developed a wide variety of these additional file types. ChannelMixer and TileMaker do their best to process these into the emissive/metallic/normals/roughness textures that Mineways uses. Here are some other file type suffixes you may encounter in various resource packs:

ChannelMixer main task is to seek out relevant files and copies them over, splitting them up into separate textures as needed. It searches the directory structure, looking for textures it needs in areas such as the "\assets\minecraft\textures\block(s)" and "\assets\minecraft\textures\entity\chest" directories of the resource pack. It copies over the RGB, _n, and _normal textures, unmodified. It also converts _mer and _s files into the _m/_e/_r files used as input by TileMaker. As an aside, I've opted with Mineways to go with separate _m/_e/_r textures for clarity, to understand what each texture does. For example, if I instead used an _mer texture, it would not be clear if the author had all three textures, or just the roughness, or roughness and metallic, etc. ChannelMixer will attempt to figure out which of the channels in _mer and _s textures have meaning, i.e., have truly been set. A texture will not be used if it is default, i.e., if roughness is always 1.0, metallic is always 0.0, or emissive is always 0.0.

However, ChannelMixer is not perfect, so you can give ChannelMixer commands for what types of textures to ignore. For example, if you find your flowers are all glowing, bogus emissive textures may be at fault. You could delete these by hand from the block-and-chest directory where ChannelMixer puts it files. Or, if all emissive textures are useless, setting "-k e" on the command line of ChannelMixer says to ignore the _e emissive textures. This is often useful for labPBR textures (and ChannelMixer currently does not pay attention to the alpha channel as emissive, as labPBR specifies, as I have not yet found a resource pack that uses the emissive channel in this way). Setting "-k me" kills output of the metallic and emissive terrain files. To kill everything except the main, color terrain file, use "-k mern". In testing, I have found "-k e" useful for the FaithfulPBR, Flows Photorealism, Hodilton, Miejojo, and Ultimate Immersion resource packs, and "-k me" useful for the LunaHD, Meteor, UMSOEA, R3DCraft, and Tesellax resource packs.

Pro tip: if you want to see what blocks have what roughness, normals, or other textures directly, choose that texture when you use "File -> Choose Terrain File" in Mineways. With our JG RTX example, you could see the roughness textures by picking terrainExt_JG-RTX_r.png, the roughness texture. Most objects will be black, which means no texture applied. For example, here's Vanilla PBR's roughness textures applied to QMAGNET's test world. By the way, RestWorld is another nice, comprehensive test world for textures.

Vanilla PBR roughness textures

And, one last trick: I picked and chose a little with the JG RTX resource pack, as there were a few variant brick patterns and I didn't like the default (everyone's a critic...). If you use the JG RTX terrain set, but wish a few block faces were different, there are two ways to make that happen. You can always edit the resulting USDA file in Omniverse USD Composer, by hand or by using a Python script (and I have no idea how to do that). If you want to make a more permanent change to a terrain file, you can do so pretty easily. You put the new block textures in some directory, say it's "new_blocks". You then do:

TileMaker.exe -i terrainExt_JG-RTX.png -d new_blocks -o terrainExt_JG-RTX_improved.png
The "-i terrainExt_JG-RTX.png" command says to use terrainExt_JG-RTX.png as your input texture, "new_blocks" as your new input block textures, and the result should go into your new output file terrainExt_JG-RTX_improved.png.

Resource Packs

There are literally thousands of these, and I've only begun to explore these myself. If you know of great PBR packs, let me know. If they're free to use non-commercially, I'm game to convert them to a Mineways terrain file set and put them up for people to download.

There is an extensive page listing PBR shaders and others - it may be all you need. There are other useful sites:

Here are more resource pack previews, which are not that fascinating from a distance (it's the details that are cool), but give you some idea of what these packs look like. Click on an image to increase its size a bit.

If you want to make your own simple pack, this set of instructions works and is thorough. Some notes: In step 9 it says to put a pack format number. The numbers for newer version of Minecraft are here. Step 10 "Save your text file as a ".mcmeta" file." has a small error in the animation above it. That file save shows the file going into the directory above the numbered directory (such as 1.16.1) - see the file path shown. Follow the instructions in step 9 and put this file in the numbered subdirectory, just to make it easier to select it and the assets directory.

Reference Section

Here we list the command line options for ChannelMixer and TileMaker.

ChannelMixer Reference

ChannelMixer's purpose is to find relevant block and chest textures inside an unzipped resource pack (or Minecraft itself) and copy these over to an intermediate directory. TileMaker then processes these textures. See the tutorial at the top of this page. Note: currently the program works only on the PC. I have heard you can run it through WINE or some emulator (which should work but costs money).

Here is a reference for all ChannelMixer options. To get a reminder of these, type:

ChannelMixer -?
on the command line.

Usage: ChannelMixer [-v] [-i inputTexturesDirectory] [-o outputTexturesDirectory] [-m] [-k {m|e|r|n}] [-u]

TileMaker Reference

TileMaker is a command-line utility for making a terrainExt.png file, which is the file that Mineways uses to add textures to surfaces. Note: currently the program works only on the PC. I have heard you can run it through WINE or some emulator (which should work but costs money).

TileMaker works by using a few different textures from Minecraft and from a texture pack to create a new texture to feed to Mineways. See the tutorial at the top of this page.

Here is a reference for all TileMaker options. To get a reminder of these, type:

TileMaker -?
on the command line.

Usage: TileMaker [-v] [-i terrainBase.png] [-d blocks] [-o terrainExt.png] [-t tileSize] [-h #] [-c chosenTile] [-nb] [-nt] [-r] [-m] [-s] [-S] [-dcn] [-u]