Git Product home page Git Product logo

reptile's Introduction

Reptile

Reptile

Reptile is a cross-platform voxel art authoring tool built and integrated with Unity to make creating voxel art for game environments quick and painless.

It provides many of the core features that other voxel art programs do and a few uncommon features, including:

Cube, sphere, and diamond brushes

Brushes

Per-color metallic, emissive, and translucent properties

Materials

Three-axis symmetry

Symmetry

Isometric camera

Isometric

Orthographic camera

Orthographic

Perspective camera

Perspective

Layers and guides

Layers

MagicaVoxel import and export

MagicaVoxel

reptile's People

Contributors

hawkbat avatar

Watchers

 avatar  avatar

Forkers

alan-baylis

reptile's Issues

Expandable UI Boxes

Replace the current box labels with toggle buttons that show or hide the rest of the box's contents.

Plane Lock Toggle Button

Add a toggle to the tool UI for switching plane locking on or off, with holding the key temporarily flipping the value.

Flood-Fill Tool (aka Bucket Tool)

The tool should perform a flood-fill, replacing contiguous regions of the clicked-on voxel's color with the currently selected palette color. A tool option should be added allowing the flood-fill to optionally cross diagonals. The Alt mode should use the zero-index color instead of the current palette color.

Eyedropper Tool

Add a tool that selects the color of the voxel clicked-on in the palette. The alt-mode could replace the current color with a copy of the picked color instead of simply selecting it.

Separate Random Color Button

Instead of having newly added palette colors be a random color, have them be white, and add a separate button for randomizing the current color.

Visual Color Sliders

For the color sliders where it makes sense, display a gradient showing how the values affect the color.

Proportional Resizing

Add a toggle for scaling each axis by the same amount when resizing any individual one.

OBJ Exporter

The ability to export tiles as OBJ files. A direct importer is not possible, for hopefully obvious reasons.

Transparent and Outline Layer Modes

Currently these toggle buttons do nothing. They should cause the layer's associated chunks to render transparently or as a wireframe, respectively.

Box Tool

Like the standard tool in MagicaVoxel; fills a 3D region between the voxel initially clicked on and the voxel released over. Alt mode fills zero-index while the normal mode fills the currently selected color.

Box Select Tool

Add a tool for selecting a rectangular region, which acts as a mask for other tools so they only affect the voxels within the box.

Orthographic Toggle and View Snapping

The ability to toggle the camera between perspective and orthographic views would be useful, as would being able to snap the camera at 45-degree increments for viewing on the standard and isometric axes.

XYZ Symmetry

Individual toggles for X, Y, and Z axes that cause paint tools to also paint the mirrored voxel along that axis.

Move Tool

Add a tool for moving voxels around. The drag offset should be based on the initially selected voxel. There should also be an option toggle for wrapping the voxels around if the move outside the bounds of the tile.

If the Box Select tool is being used, the selection box should move with the voxels, which should be the only ones affected.

Fix Transparent Rendering

As of v0.1.0, even transparent pixels write to the Z buffer, which is messing up transparency rendering. To fix, split into both opaque and transparent submeshes, and create separate opaque and transparent shaders. Opaque should have ZWrite On, while transparent should do multiplicative blending.

Split Meshes Over 65k Vertices

Currently going over 65k vertices on a single chunk causes a soft crash, which is very likely on tile sizes larger than 16x16x16. This is due to a Unity limitation of 65,535 vertices per Mesh instance. There are a few optimizations that can be made to alleviate this (such as merging adjacent faces) but Chunks should support generating a list of Meshes. This will also require generating a set of MeshFilters, MeshRenderers, and MeshColliders.

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.