Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Ancientkingg/fancyPants
Fancy Pants is a shader for 1.17+ vanilla minecraft that allows datapack developers to add custom armor to minecraft by using leather armor
https://github.com/Ancientkingg/fancyPants
mc minecraft shaders texture
Last synced: about 1 month ago
JSON representation
Fancy Pants is a shader for 1.17+ vanilla minecraft that allows datapack developers to add custom armor to minecraft by using leather armor
- Host: GitHub
- URL: https://github.com/Ancientkingg/fancyPants
- Owner: Ancientkingg
- License: mit
- Created: 2021-06-12T07:59:33.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-07-04T08:07:52.000Z (over 1 year ago)
- Last Synced: 2024-08-03T03:01:46.622Z (5 months ago)
- Topics: mc, minecraft, shaders, texture
- Language: GLSL
- Homepage:
- Size: 12.5 MB
- Stars: 164
- Watchers: 10
- Forks: 18
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-mcje-vanilla-tech - Ancientkingg/fancyPants - Creating not only the armor item but also the armor texture by modifying shader. (Custom Items / Armor)
- awesome-mcc - FancyPants - allows datapack devs to add custom textured armor to the game with coloured leather armor with core shaders (Uncategorized / Uncategorized)
README
# Fancy Pants
Fancy Pants is a 1.17 vanilla core shader that allows datapack developers to add custom armor to the game with custom coloured leather armor.
If you want a more optimized version of fancy pants that supports far more armor textures use [lessfancypants](https://github.com/Godlander/lessfancypants).
*Disclaimer: It does not support custom assignable colors and it does not support automatically animating armor.***Annotation**
Any pixel coordinates prefixed with `~` will be relative to the armor texture itself and will not be absolute. For example `~(0,0)` in absolute coordinates could refer to `(64,0)`, `(128,0)` etc. Otherwise, assume the pixel coordinate is absolute.
**\*** The default speed is (roughly) 24 seconds per frame. So to get 1 frame per second the speed must be set to 24.
**\*\*** This is a boolean and only has two states: on (`> 0`) and off (`0`).
###### Requirements
- `leather_layer_1_overlay` and `leather_layer_2_overlay` must at all times remain completely transparent.
- Fancy Pants supports different texture resolution, but it must be specified in the shader. To change the texture resolution from the default `16` to something else, go to `assets/minecraft/shaders/core/rendertype_armor_cutout_no_cull.fsh`; go to line 3 and change the value of `TEX_RES`. The texture resolution is equal to the width of a **single** armor texture divided by 4. It is not possible to set different texture resolutions per armor texture, but you can however just upscale the textures in the png.
- The pixel located at `(0, 1)` in `leather_layer_1.png` and `leather_layer_2.png` must at all times be white (`rgba(255,255,255,255)`).
- The pixel located at `~(0,0)` will be the color assigned to the armor texture. If two armor textures have the same color, only the most left one will be recognized.
- An animated armor texture requires a marker pixel at `~(1,0)` of the armor texture. This pixel contains `rgb(amount of frames, speed*, interpolation**)`.See `leather_layer_1.png` in `assets/minecraft/textures/models/armor/`.
- The pixel located at `~(2,0)` contains information about extra texture properties. Currently this shader supports: toggling color tinting (by default disabled) and emissivity (both partial and full). `rgb(emissivity, tint, N/A)`. Emissivity** can be set to 1 to allow for partial emissivity and `> 1` to enable full emissivity.
- If partial emissivity is enabled the armor texture to the right will be treated as an emissivity map, where the alpha of the pixel will be treated as the amount of emissivity.
## **Important**
Core shaders (what this pack uses) are not supported by alternative rendering engines, such as Iris and Optifine. They will be incompatible and display wrong and there is nothing I can do and nothing the creators of Optifine and Iris can do to fix it.
## How to use
You are able to interact with the shader through the `leather_layer_1.png` and `leather_layer_2.png` located in `assets/minecraft/textures/models/armor`. An example of how those files could look is added to this example pack. To add new armor types you simply insert your armor texture to the right in the aforementioned png files, as shown in this pack.
The shader supports 2 formats: non-animated and animated.
### Non-animated
Add an armor texture to the right in `leather_layer_1.png` and/or `leather_layer_2.png`, add a custom color with `255` alpha at `~(0,0)` and you're done. To access the newly added custom armor texture, you simply equip the corresponding colored leather armor with the color. (Formula for that is `r << 16 + g << 8 + b`)
### Animated
Fancy Pants supports animated textures (*wow no-one expected that with the heading name*). To add an animated texture, simply add frames below the corresponding armor texture (See `leather_layer_1.png`). Secondly, it is required to add some information for the shader at `~(1,0)`: `rgb(amount of frames, speed*, interpolation**)`.
### Emissivity map
Fancy Pants supports an emissivity map, meaning you can partially make your armor texture emissive. If partial emissivity is enabled the armor texture to the right will be treated as an emissivity map, where the alpha of the pixel will be treated as the amount of emissivity.
If you have any questions feel free to ping me in any discord or message me `Ancientkingg#0420`. Also let me know what your favourite ice cream flavour is when you message me so I know you've fully read the documentation. :)
![Images](https://media.discordapp.net/attachments/157097006500806656/853186114017558558/unknown.png)
### Tutorial Video by VelVoxelRaptor
![Tutorial Video by VelVoxelRaptor](https://user-images.githubusercontent.com/27242001/141520994-5b5e99e7-f0ac-4cb4-9a01-faaf750fa569.gif)### Youtube Tutorial by TheMoneyRaider
https://youtu.be/3tHByk8N9Zw