Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

210 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ashton

Description

Add extra visual effects to the Gosu game-development library, utilising OpenGL shaders (using shader model 1.0, for maximum compatibility) and frame-buffers.

"Ashton" is named after Clark Ashton Smith, an fantasy/horror author with a particularly colourful imagination.

Usage

gem install ashton --pre

Features

  • Gosu extensions

    • {Gosu::Color} - Converting to and from opengl values.

    • {Gosu::Font} - Apply shader to draw operations.

    • {Gosu::Image} - Apply shader to each draw operation or group of draws. Manipulation, such as flipping and scaling.

    • {Gosu::Window} - Post-processing with shaders. Converting to image.

  • Ashton

    • {Ashton::Texture} - Single texture (compared to Gosu::Image which uses a spritesheet) which can be drawn directly onto and drawn to the Window.

    • {Ashton::Lighting::Manager} - Manages and combines the lighting from {Ashton::Lighting::LightSource} objects.

    • {Ashton::Lighting::LightSource} - A single light-source that illuminates and whose can be blocked by shadow-casting objects.

    • {Ashton::ParticleEmitter} - Generates, manages and displays particles.

    • {Ashton::PixelCache} - Cached image data attached to an {Ashton::Texture} or {Gosu::Image}.

    • {Ashton::SignedDistanceField} - A signed distance field based on a an image mask.

    • {Ashton::Shader} - Wrapper around a GLSL shaders, Supports vertex and fragment shaders. Small shader/function library.

    • {Ashton::WindowBuffer} - Texture that is the same size as the Gosu Window that can capture the contents of the screen.

Requirements

  • OSX/Linux: Requires OpenGL library be installed.

  • {Ashton::Shader} and {Ashton::Lighting} or anything else using shaders, require OpenGL 2.0.

Similar Libraries

  • TexPlay - Deals with Gosu::Image manipulation, such as per-pixel editing and drawing. It is compatible with, and complementary to, this gem.

Third party

  • OpenGL static library (in Windows binary gem) and headers.

  • GLee source.

  • Various trivial shaders - "randomly found on the Internet" :$

  • Classic and Simplex noise functions - Copyright (C) 2011 Ashima Arts - MIT license.

    • classicnoise2d.glsl - 2D Classic Perlin noise implementation - cnoise(vec2)
    • classicnoise3d.glsl - 3D Classic Perlin noise implementation - cnoise(vec3)
    • classicnoise4d.glsl - 4D Classic Perlin noise implementation - cnoise(vec4)
    • noise2d.glsl - 2D Simplex noise implementation - snoise(vec2)
    • noise3d.glsl - 3D Simplex noise implementation - snoise(vec3)
    • noise4d.glsl - 4D Simplex noise implementation - snoise(vec4)
  • Bloom filter by myheroics

    • bloom.frag
  • Shockwave by Crystalin

    • shockwave.frag
  • Radial Blur by gamerendering.com

    • radial_blur.frag
  • Lighting based on, but much optimised from, Catalin Zima's shader based dynamic shadows system.

About

Special graphical effects and other extensions for the Ruby/Gosu game library.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages