Coder Social home page Coder Social logo

null-mc / pixelgraph Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 0.0 11.74 MB

An application for publishing Minecraft resource packs; specifically designed for use with Optifine and PBR textures.

Dockerfile 0.05% C# 83.66% HLSL 5.28% Batchfile 0.01% Shell 0.02% Rich Text Format 10.99%
minecraft pbr publish

pixelgraph's Introduction

  PixelGraph  Actions Status Actions Status

PixelGraph is an application for publishing Minecraft resource packs, specially tooled for PBR materials. It allows you to work in a "raw" texture space and automates publishing to one or more encodings, rather than trying to directly encode your textures as design-time. Yaml configuration files can also be used to apply final adjustments to your compiled textures. A cross-platform command-line version is also available, allowing you to completely automating your publishing process from your remote content repository.

⚠️ PixelGraph is now licensed for commercial usage! For authors with a combined total income over $30/month from Pixel-Graph published projects, please see Licensing. For personal projects or authors not meeting the license criteria, usage is completely free.


User Interface

  • Simplify your workflow by adjusting text instead of pixels. Getting image-based material values just right can be tedious, time consuming, and destructive.

  • Preserve Quality by adjusting material values through text rather than altering the original image data. Repeatedly scaling the integer-based channels of your image slowly destroys quality. Save the gradients!

  • Support more users by publishing multiple packs with varying quality. The resolution and included textures can be altered using either the command-line or Publishing Profiles to create multiple distributions.

  • Automate Normal & AO generation, resizing, and channel-swapping so that you can spend more time designing and less time repeating yourself.

PBR Workflow

Normal-Map Generation

Allows normal-map textures to be created from height-maps as needed during publishing, or by prerendering them beforehand. Strength, blur, and wrapping can be managed using the textures matching pbr-properties file.

Normal-Map from Height-Map

Occlusion-Map Generation

Allows ambient-occlusion textures to be created from height-maps as needed during publishing, or by prerendering them beforehand. Quality, Z-scale, step-count, and wrapping can be managed using the materials properties.

Occlusion-Map from Height-Map

Installation

For manual installation, download the latest standalone executable from the Releases page. For automated usage see Docker Usage. Visit the wiki for more information.

Manual Usage

A single Pack-Input file lives in the root of the workspace (~/input.yml) which specifies the default formatting of all content. The example below uses a 'raw' encoding which manages each channel in a different texture; The 'height' channel has been set to inverted.

# ~/input.yml
format: raw
height:
  invert: true

One or more Pack-Profiles are used to describe a publishing routine; they also live in the project root and should match the naming convention ~/<name>.pack.yml. Each profile can specify pack details, encoding, format, resizing, etc; this allows a single set of content to be published for multiple resolutions and encodings, ie pbr-lab1.3-64x or default-128x

# ~/pbr-lab13-x64.yml
output:
  format: default
texture-scale: 0.5

Material files are used to desribe a collection of textures that compose a single game "item". For more details, see the Wiki.

# ~/assets/minecraft/textures/block/lantern.mat.yml
smooth:
  scale: 1.2
metal:
  scale: 0.8
emissive:
  scale: 0.2

Sample Repository

Oversized - A high-resolution texture pack made primarily using stock textures and CTM.

Textureless - A low-resolution pack using solid colors, material values, and alpha-masking to provide a smooth visual base for shader testing. Also good for toon/outline style.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Support

Ask about PixelGraph in the ShaderLabs Discord under #pixelgraph.

pixelgraph's People

Contributors

null511 avatar jessie-lc avatar papachefcool avatar zoclhas avatar

Stargazers

 avatar Kosstow avatar Aiman Haqimi avatar DominoKorean avatar Mohamed Jiyath Khan Ibn Ibramsha avatar  avatar

Watchers

 avatar  avatar  avatar

pixelgraph's Issues

Bedrock NON-RTX Publish

The publisher for Bedrock edition is always using the RTX format. However some MCPE shaders are now using Bedrock and LabPbr together, so a standard LabPbr export should be possible.

Bedrock Grass-Side Texture

[Thanks to Fayer3 for figuring out]

Bedrock handles the grass_side & grass_side_overlay very different from Java. They need to be combined, layering the overlay on top of the side texture. The final opacity data should also come directly from the overlay, as it's used to control which parts are tinted.

Normal Noise uses Roughness

Expand the "Normal Noise" feature to use the materials smoothness/roughness as a scale for how much noise to apply.

UI Measure Tool

Add a feature to the UI version showing the value of the texture at the current mouse position.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.