All Projects → septag → Atlasc

septag / Atlasc

Licence: bsd-2-clause
Builds atlas texture from a bunch of input images.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Atlasc

Nova Custom Email Sender
A Laravel Nova tool that sends ad-hoc email messages from the dashboard.
Stars: ✭ 62 (-6.06%)
Mutual labels:  tool
Align
A general purpose application and library for aligning text.
Stars: ✭ 63 (-4.55%)
Mutual labels:  tool
09 Zombierunner Original
First person shooter with Unity terrain and AI pathfinding (http://gdev.tv/cudgithub)
Stars: ✭ 64 (-3.03%)
Mutual labels:  game-development
Mthawkeye
Profiling / Debugging assist tools for iOS. (Memory Leak, OOM, ANR, Hard Stalling, Network, OpenGL, Time Profile ...)
Stars: ✭ 1,119 (+1595.45%)
Mutual labels:  tool
Fungen
A lightweight, cross-platform, OpenGL-based 2D game engine in Haskell
Stars: ✭ 62 (-6.06%)
Mutual labels:  game-development
Game Jam Tools Resources
A list of many game dev/jam tools & resources.
Stars: ✭ 63 (-4.55%)
Mutual labels:  game-development
Fsq
A tool for querying the file system with a SQL-like language.
Stars: ✭ 60 (-9.09%)
Mutual labels:  tool
Neutron
Neutron is a CLI developed to help developers create new react projects with Redux + Redux Saga and offers well-structured code standardization.
Stars: ✭ 65 (-1.52%)
Mutual labels:  tool
Laravel Cadillac
🍺 A database tool for laravel.
Stars: ✭ 63 (-4.55%)
Mutual labels:  tool
3 Modifiers And Abilities
Customise character abilities, weapons, characters and enemies. This includes multiple damage types, modifiers, sounds, animations. By the end you can create your core combat experience. (REF MA_RPG) http://gdev.tv/rpggithub
Stars: ✭ 64 (-3.03%)
Mutual labels:  game-development
Bytepath
A replayable arcade shooter with a focus on build theorycrafting made using Lua and LÖVE.
Stars: ✭ 1,119 (+1595.45%)
Mutual labels:  game-development
Nebula Trifid
Nebula Trifid
Stars: ✭ 62 (-6.06%)
Mutual labels:  game-development
Q3lite
Q3lite, an OpenGL ES port of Quake III Arena for embedded Linux systems.
Stars: ✭ 64 (-3.03%)
Mutual labels:  game-development
Ving
🐸 A ping utility with nice output, with powerful traceroute and port probe.
Stars: ✭ 62 (-6.06%)
Mutual labels:  tool
Tetris Tutorial
From rags to riches; building Tetris with no programming experience.
Stars: ✭ 64 (-3.03%)
Mutual labels:  game-development
Slickermaster Rev4
NSA Hacking Tool Recreation UnitedRake
Stars: ✭ 62 (-6.06%)
Mutual labels:  tool
Unity Scene Query
A library to traverse and query the Unity scene to find particular objects, uses something similar to CSS selectors to identify game objects.
Stars: ✭ 63 (-4.55%)
Mutual labels:  game-development
Minecraft Armorstand
This tool generates a summon command, to summon an armorstand in a desired pose.
Stars: ✭ 65 (-1.52%)
Mutual labels:  tool
Datawrapper
An open source data visualization platform helping everyone to create simple, correct and embeddable charts in minutes.
Stars: ✭ 1,133 (+1616.67%)
Mutual labels:  tool
Sycophant
Numerous Ninjas: Beta stage mobile game written in Unity
Stars: ✭ 64 (-3.03%)
Mutual labels:  game-development

Build Status

Atlasc

@septag

atlasc is a command-line program that builds atlas texture from a bunch of input images.

Main Features

  • Cross-platform. Runs on linux/macOS/windows.
  • No dependencies
  • Outputs atlas description to human-readable json format. Generated images are png.
  • Alpha trimming.
  • Mesh sprites.
  • Scaling
  • Can build as static library

drawsprite-wire
screenshot taken from rizz sprite example

Build

It has built and tested on the following platforms:

  • Windows: Tested on Windows10 with visual studio 14 2015 update 3 (Win64).
  • Linux: Tested on ubuntu 16 with clang (6.0.0) and gcc (7.3.0). Package requirements:
  • MacOS: Tested on MacOS High Sierra - AppleClang 9.1.0

Usage

atlasc image1.png image2.png -o output.json [extra args]

Arguments:

-h --help                           - Print help text
-V --version                        - Print version
-i --input=<Filepath>               - Input image file(s)
-o --output=<Filepath>              - Output file
-W --max-width(=Pixels)             - Maximum output image width (default:1024)
-H --max-height(=Pixels)            - Maximum output image height (default:1024)
-B --border(=Pixels)                - Border size for each sprite (default:2)
-2 --pot                            - Make output image size power-of-two
-P --padding(=Pixels)               - Set padding for each sprite (default:1)
-m --mesh                           - Make sprite meshes
-M --max-verts(=Number)             - Set maximum vertices for each generated sprite mesh (default:25)
-A --alpha-threshold(=Number)       - Alpha threshold for cropping (0..255)
-s --scale(=Number)                 - Set scale for individual images (default:1.0)

Static Library

To build atlasc as static library instead of command-line tool, set STATC_LIB in cmake options.

cmake . -DSTATIC_LIB=1

There are three methods for creating atlases using the library:

  • Load from image files and output to image file: atlasc_make
  • Load from image files and return atlas in memory: atlasc_make_inmem
  • Load from images loaded in memory and return atlas in memory: atlasc_make_inmem_fromem

For more information, read the header file atlasc.h

TODO

  • Support for islands. currently, there is a limitation that individual images should not have islands of pixels
  • Optimizations. It's a very early implementation and probably some parts of it has to be optimized

Open-Source libraries used

  • sx: Portable base library
  • sjson: Fast and portable single-header C file Json encoder/decoder
  • stb: stb single-file public domain libraries for C/C++
  • sproutline: A small single-file library for sprite outline extraction and simplification
  • delanuay: Relatively Robust Divide and Conquer 2D Delaunay Construction Algorithm

License (BSD 2-clause)

Copyright 2019 Sepehr Taghdisian. All rights reserved.

https://github.com/septag/atlasc

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

   1. Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.

   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].