All Projects → greggman → Hsva Unity

greggman / Hsva Unity

A Hue Saturation Value adjustment shader for Unity. Useful for making lots of character colors.

Labels

Projects that are alternatives of or similar to Hsva Unity

Glsl Sdf Primitives
A bunch of distance field primitives for ray marching
Stars: ✭ 152 (-14.12%)
Mutual labels:  glsl
Starwars.android
This component implements transition animation to crumble view into tiny pieces.
Stars: ✭ 1,942 (+997.18%)
Mutual labels:  glsl
Shader Printf
Simple printf functionality for GLSL.
Stars: ✭ 170 (-3.95%)
Mutual labels:  glsl
Reshade
A generic post-processing injector for games and video software.
Stars: ✭ 2,285 (+1190.96%)
Mutual labels:  glsl
Soicbite
A compact PCB footprint which allows SOIC test clips to be used as a space-efficient programming and debugging connector
Stars: ✭ 161 (-9.04%)
Mutual labels:  glsl
Shadertoy lab
✏️ Test some shadertoy examples in Unity.
Stars: ✭ 164 (-7.34%)
Mutual labels:  glsl
Wombat
An efficient texture-free GLSL procedural noise library
Stars: ✭ 149 (-15.82%)
Mutual labels:  glsl
React Regl
React Fiber Reconciler Renderer for Regl WebGL
Stars: ✭ 171 (-3.39%)
Mutual labels:  glsl
Gaiasky
Mirror of Gaia Sky repository hosted on Gitlab: https://gitlab.com/langurmonkey/gaiasky
Stars: ✭ 162 (-8.47%)
Mutual labels:  glsl
Glsltuto
GLSL shaders tutorial
Stars: ✭ 168 (-5.08%)
Mutual labels:  glsl
Glsl
VSIX Project that provides GLSL language integration.
Stars: ✭ 155 (-12.43%)
Mutual labels:  glsl
Graphite
A parallel, distributed simulator for multicores.
Stars: ✭ 157 (-11.3%)
Mutual labels:  glsl
Fragment
Live Code Graphics via GLSL Fragment Shaders
Stars: ✭ 166 (-6.21%)
Mutual labels:  glsl
Processingstuff
Various pretty-ish Processing sketches by Blokatt. About 50% shaders.
Stars: ✭ 153 (-13.56%)
Mutual labels:  glsl
Gpu.js
GPU Accelerated JavaScript
Stars: ✭ 13,427 (+7485.88%)
Mutual labels:  glsl
Twigl
twigl.app is an online editor for One tweet shader, with gif generator and sound shader, and broadcast live coding.
Stars: ✭ 145 (-18.08%)
Mutual labels:  glsl
Sparkle
🎇 A modern particle engine running on GPU, using c++14 and OpenGL 4.4.
Stars: ✭ 162 (-8.47%)
Mutual labels:  glsl
Filters4processing
Useful GLSL filters adapted for Processing
Stars: ✭ 177 (+0%)
Mutual labels:  glsl
Spirv Vm
Virtual machine for executing SPIR-V
Stars: ✭ 173 (-2.26%)
Mutual labels:  glsl
Processing Shader Examples
A collection of GLSL shaders and how to use them in Processing sketches
Stars: ✭ 167 (-5.65%)
Mutual labels:  glsl

HSV Shader for Unity

This is a selective hue saturation value adjuster for Unity.

I've used it in a couple of unity projects to generate different color characters rather than use different textures. I'm sure there are other maybe even better ways but this worked for me.

It works by letting you set a hue, saturation, value, and alpha adjustment. Each value goes from -1 to 1. So for example setting the saturation to 1 would make everything the maximum saturation. Setting it 0 means leave it as is. Setting to -1 means remove all saturation.

You can think of hue as a color wheel going from 0 to 1 (normally it would go from 0 to 360 degrees but shaders work better with numbers that go form 0 to 1).

So, setting the hue adjustment to 0.5 moves all the colors half way around the color wheel. Setting it to -0.2 would move them backward 20% of the way around the color wheel.

Finally you can set an affect range by hue. Only colors inside that range will be effected. This let's you take a character, like the bird at the top, figure out what hue range is body is in, and only effect his body. His beak and his outline are not effected.

This should work with more complex characters as well as long as the area you want to affect can be isolated by hue range.

The easist way to find a range is to load up a sprite, set the hue adjust to 0.5 (half way around the color wheel) and then adjust the min and max until only the part of the sprite you want adjusted matches the range. Once you have that figured out you be good to go

You can download or copy and paste the shader from here.

HSL version

There is an HSL version of this shader as well. It uses the HSL color space instead of the HSV color space. The results are different. For example saturating a yellow gradient seems to work better with this shader.

You can download or copy and paste the shader from here.

License

MIT License

Copyright 2015, Gregg Tavares. All rights reserved.

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

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

  • 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.

  • Neither the name of Gregg Tavares. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT OWNER 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.

Attribution for the art


Bird


Super Miyamoto

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].