Closed erich666 closed 3 years ago
I just tried making my own terrain file with ChannelMixer and TileMaker. This output contains a lot of useful information. Thanks! It looks like my current working directory doesn't produce the errors you've encountered when I run it through the CLI utilities; however, I still get a bunch of warnings like:
WARNING: The file 'chain1.png' is not recognized and so is not used.
WARNING: The file 'chain1_mer.png' is not recognized and so is not used.
WARNING: The file 'chain1_normal.png' is not recognized and so is not used.
WARNING: The file 'chain2.png' is not recognized and so is not used.
WARNING: The file 'chain2_mer.png' is not recognized and so is not used.
WARNING: The file 'chain2_normal.png' is not recognized and so is not used.
WARNING: The file 'double_plant_fern_carried.png' is not recognized and so is not used.
WARNING: The file 'double_plant_grass_carried.png' is not recognized and so is not used.
WARNING: The file 'element_006_c.png' is not recognized and so is not used.
WARNING: The file 'element_006_c_mer.png' is not recognized and so is not used.
...WARNING: The file 'mood_block.png' is not recognized and so is not used.
WARNING: The file 'mood_block_mer.png' is not recognized and so is not used.
WARNING: The file 'mood_block_normal.png' is not recognized and so is not used.
...
How does ChannelMixer/TileMaker recognize textures?
Some of these texture file names match the names found in the vanilla pack template. Some are from the Education Edition. I'm toying around with custom texture names too. Minecraft is able to find them because I've either specified the texture's file path in the textures/terrain_texture.json
file, or I've set the custom name within the .texture_set.json
layer names.
This is unrelated to Mineways, but may help explain the method to my madness.
I'm not sure which aforementioned method (if either) is the best way to squeeze "custom" texture names into the Bedrock Edition. The terrain_texture.json
file allows me to create a namespace for textures. The .texture_set.json
file allows reusing/sharing texture files between different texture sets. I assume both approaches could be used together too.
I'm working on a web app to assist in making Minecraft resource packs – particularly for those which support raytracing. I want to know how to implement unique, custom texture names so users of the app can arbitrarily assign textures to blocks.
I feel like Minecraft does a better job of rendering transparencies through alpha channels. Transparencies in PNG files tend to show a bit of matte background and the anti-aliasing around opaque edges is poor-quality. I'll see if there are any TGA files that can be cleanly converted to PNG.
I can easily export a PNG alongside the TGA files, though I'm not quite sure how I can share those without cluttering the resource pack. I think I might have to provide dist
and src
directories in the repository so I can still provide something optimal for Minecraft. I'm open to suggestions!
ChannelMixer and TileMaker use the default Minecraft texture names (which occasionally change), along with some common variants. The list is here: https://github.com/erich666/Mineways/blob/master/Win/tiles.h#L77 - I even include some common misspellings and more variants at the end of this file. But, I can only go so far...
One (of many) problem with parsing any JSON files is that Mineways does not support modded blocks. It also does not support modded or custom texture layouts, such as putting different textures on the top and sides of a stone block. Basically, if there's no reason to change a texture's name, I wouldn't. Naming it the same as Minecraft's directly helps anyone looking at these textures, vs. them having to try to decode a JSON file.
Is there a list of the "alternate" Education Edition texture names somewhere? I'd like to make sure I have covered all these. Google's turned up nothing.
Could you tell me how to reproduce or show me an example of the TGA vs. PNG problem within Minecraft? Which texture(s) show this? In Bedrock or Java Editions? Or RTX? I would like to see this in action and try to understand how that could happen. I know about fringing and interpolation problems that can occur, I wrote about it here, and the second half of this article gives more on the problem and how to solve it with dilation filters and similar. But that's mostly a DCC program problem, where nearest neighbor texture sampling is not used. Minecraft uses nearest neighbor (giving the blocky look) - or is there a way for mods to turn that off?
Mineways avoids the problem when exporting its PNG textures by doing dilation around the immediate fringes and averaging elsewhere (a full dilation on high-res textures would take a lot of passes, but for your textures would need to be done only once).
So the only thing I can imagine is that Targa files have white (say) wherever alpha is 0, while the PNGs have black, so giving different fringing artifacts. That sounds like a function of Minecraft itself, an unfortunate one, if that's what's going on. The solution on your end is to dilate your textures into the cutout regions, as I mentioned. Aha, there's even a Photoshop plugin for this, and some other tools out there. This article notes "To avoid those artifacts a better solution is to use Solidify (see also Photoshop plug-in) or Dilation filter." Seriously consider using them on completed cutouts and see if that improves things.
I stand corrected! I switched the double tall grass from a TGA to a PNG and did not see an apparent difference. I think my other misgivings over PNGs are simply due to textures without any dilation. I'm very new to 3D in general and am unaware of many common or best practices.
You'll notice there's still a bunch of TGAs in the last release. I wanted to get another release out ASAP, so I just uploaded everything in its current format. But yes, I will certainly use PNG over TGA now. Thank you for the advice.
I didn't have time to test this release with ChannelMixer and TileMaker. I'm going to close this issue with this comment, because the repository should be a bit cleaner now to avoid some of those older warning messages. I wouldn't be surprised if this last release comes with a new batch of problems though, so please feel free to post another issue.
The Education Edition blocks use the following naming convention:
element_
001
_h
Put it together for: element_001_h
Thank you to KellyTheDerg in the Minecraft RTX community for figuring this out.
Here is a list for you and Googlers of the future:
element_001_h
element_002_he
element_003_li
element_004_be
element_005_b
element_006_c
element_007_n
element_008_o
element_009_f
element_010_ne
element_011_na
element_012_mg
element_013_al
element_014_si
element_015_p
element_016_s
element_017_cl
element_018_ar
element_019_k
element_020_ca
element_021_sc
element_022_ti
element_023_v
element_024_cr
element_025_mn
element_026_fe
element_027_co
element_028_ni
element_029_cu
element_030_zn
element_031_ga
element_032_ge
element_033_as
element_034_se
element_035_br
element_036_kr
element_037_rb
element_038_sr
element_039_y
element_040_zr
element_041_nb
element_042_mo
element_043_tc
element_044_ru
element_045_rh
element_046_pd
element_047_ag
element_048_cd
element_049_in
element_050_sn
element_051_sb
element_052_te
element_053_i
element_054_xe
element_055_cs
element_056_ba
element_057_la
element_058_ce
element_059_pr
element_060_nd
element_061_pm
element_062_sm
element_063_eu
element_064_gd
element_065_tb
element_066_dy
element_067_ho
element_068_er
element_069_tm
element_070_yb
element_071_lu
element_072_hf
element_073_ta
element_074_w
element_075_re
element_076_os
element_077_ir
element_078_pt
element_079_au
element_080_hg
element_081_tl
element_082_pb
element_083_bi
element_084_po
element_085_at
element_086_rn
element_087_fr
element_088_ra
element_089_ac
element_090_th
element_091_pa
element_092_u
element_093_np
element_094_pu
element_095_am
element_096_cm
element_097_bk
element_098_cf
element_099_es
element_100_fm
element_101_md
element_102_no
element_103_lr
element_104_rf
element_105_db
element_106_sg
element_107_bh
element_108_hs
element_109_mt
element_110_ds
element_111_rg
element_112_cn
element_113_nh
element_114_fl
element_115_mc
element_116_lv
element_117_ts
element_118_og
Feedback Lookin' good overall! Keep up the cool work.
Feature Requests Here are a number of warnings that Mineways' ChannelMixer and TileMaker utilities pop up when processing JG-RTX. I thought you might find them useful in figuring out what blocks are not quite complete, e.g., rails and prismarine don't have RGB(A) color textures for them, AFAIK, just the PBR ones:
DUP WARNING: Duplicate file ignored; file 'netherrack_mer.png' is a different name for the same texture 'netherack_mer.png'. DUP WARNING: Duplicate file ignored; file 'stonebrick_mossy.png' is a different name for the same texture 'mossy_stone_brick.png'. DUP WARNING: Duplicate file ignored; file 'stonebrick_mossy_mer.png' is a different name for the same texture 'mossy_stone_brick_mer.png'. DUP WARNING: Duplicate file ignored; file 'stonebrick_mossy_normal.png' is a different name for the same texture 'mossy_stone_brick_normal.png'. WARNING: the grass_block_side_overlay texture does not exist, so the grass_block_side texture replaces it. RGB MISSING WARNING: File 'rail_normal_normal.png' exists but there is no corresponding color file. Perhaps the color file is in a TGA file? You'll need to convert it to a PNG file. and RGB MISSING WARNING: File 'rail_normal_m.png' exists but there is no corresponding color file. and RGB MISSING WARNING: File 'rail_normal_r.png' exists but there is no corresponding color file. RGB MISSING WARNING: File 'prismarine_rough_normal.png' exists but there is no corresponding color file. Perhaps the color file is in a TGA file? You'll need to convert it to a PNG file. and RGB MISSING WARNING: File 'prismarine_rough_r.png' exists but there is no corresponding color file. WARNING: File 'grass_side.png' has texels that are fully transparent, but grass block side images should be in a pair: a fully opaque grass_block_side.png image, and a grayscale grass with alpha cutout image grass_block_side_overlay.png WARNING: File 'grass_side_snowed.png' has texels that are fully transparent, but the image is not identified as having cutout geometry, being a decal, or being an overlay.
There are also a pile of warnings about TGA files existing without PNG equivalents - my utilities don't convert from TGA. You might want to save all images in PNG format, as these are more compact (e.g. acacia_trapdoor is 257 KB TGA, 119 KB PNG when I convert).
I don't actually know a heck of a lot about what Minecraft "expects" and how you modify those expectations. My goal is to use your textures as direct substitutes. So, I find myself making grass_side.png and grass_side_snowed.png by hand in paint.net, compositing your versions over dirt. Being lazy, I'd be happier if these match what Minecraft's look like.